Bug 1287007 - Move background page API logic to child r=billm
MozReview-Commit-ID: iGROahhkhn
This commit is contained in:
44
toolkit/components/extensions/ext-c-backgroundPage.js
Normal file
44
toolkit/components/extensions/ext-c-backgroundPage.js
Normal file
@@ -0,0 +1,44 @@
|
||||
"use strict";
|
||||
|
||||
global.initializeBackgroundPage = (contentWindow) => {
|
||||
// Override the `alert()` method inside background windows;
|
||||
// we alias it to console.log().
|
||||
// See: https://bugzilla.mozilla.org/show_bug.cgi?id=1203394
|
||||
let alertDisplayedWarning = false;
|
||||
let alertOverwrite = text => {
|
||||
if (!alertDisplayedWarning) {
|
||||
require("devtools/client/framework/devtools-browser");
|
||||
|
||||
let hudservice = require("devtools/client/webconsole/hudservice");
|
||||
hudservice.openBrowserConsoleOrFocus();
|
||||
|
||||
contentWindow.console.warn("alert() is not supported in background windows; please use console.log instead.");
|
||||
|
||||
alertDisplayedWarning = true;
|
||||
}
|
||||
|
||||
contentWindow.console.log(text);
|
||||
};
|
||||
Cu.exportFunction(alertOverwrite, contentWindow, {defineAs: "alert"});
|
||||
};
|
||||
|
||||
extensions.registerSchemaAPI("extension", "addon_child", context => {
|
||||
function getBackgroundPage() {
|
||||
for (let view of context.extension.views) {
|
||||
if (view.viewType == "background") {
|
||||
return view.contentWindow;
|
||||
}
|
||||
}
|
||||
}
|
||||
return {
|
||||
extension: {
|
||||
getBackgroundPage,
|
||||
},
|
||||
|
||||
runtime: {
|
||||
getBackgroundPage() {
|
||||
return context.cloneScope.Promise.resolve(getBackgroundPage());
|
||||
},
|
||||
},
|
||||
};
|
||||
});
|
||||
Reference in New Issue
Block a user