Bug 1287007 - Use frame script to initialize background/popup page
MozReview-Commit-ID: 8Di1nTnwpbU
--- a/toolkit/components/extensions/Extension.jsm
+++ b/toolkit/components/extensions/Extension.jsm
@@ -634,26 +634,23 @@ GlobalManager = {
if (this.extensionMap.size == 0 && this.initialized) {
Management.off("extension-browser-inserted", this._onExtensionBrowser);
this.initialized = false;
}
},
_onExtensionBrowser(type, browser) {
- // TODO(robwu): Move this logic inside a frame script.
- let global = browser.docShell
- .QueryInterface(Ci.nsIInterfaceRequestor)
- .getInterface(Ci.nsIContentFrameMessageManager);
- ExtensionContent.init(global);
- /* eslint-disable mozilla/balanced-listeners */
- global.addEventListener("unload", function() {
- ExtensionContent.uninit(this);
- });
- /* eslint-enable mozilla/balanced-listeners */
+ browser.messageManager.loadFrameScript(`data:,
+ Components.utils.import("resource://gre/modules/ExtensionContent.jsm");
+ ExtensionContent.init(this);
+ addEventListener("unload", function() {
+ ExtensionContent.uninit(this);
+ });
+ `, false);
},
getExtension(extensionId) {
return this.extensionMap.get(extensionId);
},
injectInObject(context, isChromeCompat, dest) {
let apis = {