diff --git a/platform/firefox/frameModule.js b/platform/firefox/frameModule.js index ad24e49..8288fcf 100644 --- a/platform/firefox/frameModule.js +++ b/platform/firefox/frameModule.js @@ -153,13 +153,24 @@ const contentObserver = { // so check context.top instead of context if ( context.top && context.location ) { // https://bugzil.la/1092216 - getMessageManager(context).sendRpcMessage(this.cpMessageName, { + let messageManager = getMessageManager(context); + let details = { openerURL: openerURL || null, url: location.spec, type: type, frameId: type === this.MAIN_FRAME ? -1 : (context === context.top ? 0 : 1), parentFrameId: context === context.top ? -1 : 0 - }); + }; + + // TODO: frameId from outerWindowID? + // https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIDOMWindowUtils + + if ( typeof messageManager.sendRpcMessage === 'function' ) { + messageManager.sendRpcMessage(this.cpMessageName, details); + } else { + // Compatibility for older versions + messageManager.sendSyncMessage(this.cpMessageName, details); + } } return this.ACCEPT;