mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-22 09:45:41 +00:00
Bug 1333201: Don't import gDevTools.jsm before necessary. r=rpl
MozReview-Commit-ID: 9bNA3ZEEYD3 --HG-- extra : rebase_source : 5af3af219645e0bee47fd62eb3d35e9be400704b
This commit is contained in:
parent
ebe862c29b
commit
f288b648be
@ -24,6 +24,8 @@ const {
|
||||
// Map[extension -> DevToolsPageDefinition]
|
||||
let devtoolsPageDefinitionMap = new Map();
|
||||
|
||||
let initDevTools;
|
||||
|
||||
/**
|
||||
* Retrieve the devtools target for the devtools extension proxy context
|
||||
* (lazily cloned from the target of the toolbox associated to the context
|
||||
@ -105,6 +107,8 @@ class DevToolsPage extends HiddenExtensionPage {
|
||||
constructor(extension, options) {
|
||||
super(extension, "devtools_page");
|
||||
|
||||
initDevTools();
|
||||
|
||||
this.url = extension.baseURI.resolve(options.url);
|
||||
this.toolbox = options.toolbox;
|
||||
this.devToolsPageDefinition = options.devToolsPageDefinition;
|
||||
@ -246,41 +250,50 @@ class DevToolsPageDefinition {
|
||||
|
||||
/* eslint-disable mozilla/balanced-listeners */
|
||||
|
||||
// Create a devtools page context for a new opened toolbox,
|
||||
// based on the registered devtools_page definitions.
|
||||
gDevTools.on("toolbox-created", (evt, toolbox) => {
|
||||
if (!toolbox.target.isLocalTab) {
|
||||
// Only local tabs are currently supported (See Bug 1304378 for additional details
|
||||
// related to remote targets support).
|
||||
let msg = `Ignoring DevTools Toolbox for target "${toolbox.target.toString()}": ` +
|
||||
`"${toolbox.target.name}" ("${toolbox.target.url}"). ` +
|
||||
"Only local tab are currently supported by the WebExtensions DevTools API.";
|
||||
let scriptError = Cc["@mozilla.org/scripterror;1"].createInstance(Ci.nsIScriptError);
|
||||
scriptError.init(msg, null, null, null, null, Ci.nsIScriptError.warningFlag, "content javascript");
|
||||
let consoleService = Cc["@mozilla.org/consoleservice;1"].getService(Ci.nsIConsoleService);
|
||||
consoleService.logMessage(scriptError);
|
||||
|
||||
let devToolsInitialized = false;
|
||||
initDevTools = function() {
|
||||
if (devToolsInitialized) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (let devtoolsPage of devtoolsPageDefinitionMap.values()) {
|
||||
devtoolsPage.buildForToolbox(toolbox);
|
||||
}
|
||||
});
|
||||
// Create a devtools page context for a new opened toolbox,
|
||||
// based on the registered devtools_page definitions.
|
||||
gDevTools.on("toolbox-created", (evt, toolbox) => {
|
||||
if (!toolbox.target.isLocalTab) {
|
||||
// Only local tabs are currently supported (See Bug 1304378 for additional details
|
||||
// related to remote targets support).
|
||||
let msg = `Ignoring DevTools Toolbox for target "${toolbox.target.toString()}": ` +
|
||||
`"${toolbox.target.name}" ("${toolbox.target.url}"). ` +
|
||||
"Only local tab are currently supported by the WebExtensions DevTools API.";
|
||||
let scriptError = Cc["@mozilla.org/scripterror;1"].createInstance(Ci.nsIScriptError);
|
||||
scriptError.init(msg, null, null, null, null, Ci.nsIScriptError.warningFlag, "content javascript");
|
||||
let consoleService = Cc["@mozilla.org/consoleservice;1"].getService(Ci.nsIConsoleService);
|
||||
consoleService.logMessage(scriptError);
|
||||
|
||||
// Destroy a devtools page context for a destroyed toolbox,
|
||||
// based on the registered devtools_page definitions.
|
||||
gDevTools.on("toolbox-destroy", (evt, target) => {
|
||||
if (!target.isLocalTab) {
|
||||
// Only local tabs are currently supported (See Bug 1304378 for additional details
|
||||
// related to remote targets support).
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
for (let devtoolsPageDefinition of devtoolsPageDefinitionMap.values()) {
|
||||
devtoolsPageDefinition.shutdownForTarget(target);
|
||||
}
|
||||
});
|
||||
for (let devtoolsPage of devtoolsPageDefinitionMap.values()) {
|
||||
devtoolsPage.buildForToolbox(toolbox);
|
||||
}
|
||||
});
|
||||
|
||||
// Destroy a devtools page context for a destroyed toolbox,
|
||||
// based on the registered devtools_page definitions.
|
||||
gDevTools.on("toolbox-destroy", (evt, target) => {
|
||||
if (!target.isLocalTab) {
|
||||
// Only local tabs are currently supported (See Bug 1304378 for additional details
|
||||
// related to remote targets support).
|
||||
return;
|
||||
}
|
||||
|
||||
for (let devtoolsPageDefinition of devtoolsPageDefinitionMap.values()) {
|
||||
devtoolsPageDefinition.shutdownForTarget(target);
|
||||
}
|
||||
});
|
||||
|
||||
devToolsInitialized = true;
|
||||
};
|
||||
|
||||
// Create and register a new devtools_page definition as specified in the
|
||||
// "devtools_page" property in the extension manifest.
|
||||
|
Loading…
Reference in New Issue
Block a user