Bug 1240912 - Support sync messages inner to outer in the tunnel. r=ochameau
MozReview-Commit-ID: JKmTLNBJxke
--- 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) {