Bug 1240912 - Support sync messages inner to outer in the tunnel. r=ochameau draft
authorJ. Ryan Stinnett <jryans@gmail.com>
Fri, 05 Aug 2016 13:23:44 -0500
changeset 402166 80142b4687b4c3f8916e62812fb8defbb7cbaa6b
parent 402165 3104a202d72a9d190ecd166e1b812083362c35a6
child 402167 eec7e8b15d9baccc91105f08c526e1a2ed44912d
push id26614
push userbmo:jryans@gmail.com
push dateThu, 18 Aug 2016 01:07:09 +0000
reviewersochameau
bugs1240912
milestone51.0a1
Bug 1240912 - Support sync messages inner to outer in the tunnel. r=ochameau MozReview-Commit-ID: JKmTLNBJxke
devtools/client/responsive.html/browser/tunnel.js
--- a/devtools/client/responsive.html/browser/tunnel.js
+++ b/devtools/client/responsive.html/browser/tunnel.js
@@ -501,24 +501,28 @@ MessageManagerTunnel.prototype = {
       this.outerParentMM.sendAsyncMessage(name, ...args);
       return;
     }
 
     debug(`${name} outer -> inner`);
     this.innerParentMM.sendAsyncMessage(name, ...args);
   },
 
-  receiveMessage({ name, data, objects, principal }) {
+  receiveMessage({ name, data, objects, principal, sync }) {
     if (!this._shouldTunnelInnerToOuter(name)) {
       debug(`Received unexpected message ${name}`);
-      return;
+      return undefined;
     }
 
-    debug(`${name} inner -> outer`);
+    debug(`${name} inner -> outer, sync: ${sync}`);
+    if (sync) {
+      return this.outerChildMM.sendSyncMessage(name, data, objects, principal);
+    }
     this.outerChildMM.sendAsyncMessage(name, data, objects, principal);
+    return undefined;
   },
 
   _shouldTunnelOuterToInner(name) {
     return this.OUTER_TO_INNER_MESSAGES.includes(name) ||
            this.OUTER_TO_INNER_MESSAGE_PREFIXES.some(prefix => name.startsWith(prefix));
   },
 
   _shouldTunnelInnerToOuter(name) {