mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 20:05:49 +00:00
Bug 1367425 - Use DevToolsShim in webextensions codebase;r=mixedpuppy
Use DevToolsShim to access devtools APIs from webextensions code. For webextensions tests using DevTools, tests are accessing DevToolsShim.gDevTools which is fine for test purposes. MozReview-Commit-ID: 66gFV98xvpf --HG-- extra : rebase_source : 05734afae4368c5d7e4682b5fae1b8f3e4417220
This commit is contained in:
parent
e5fa0b8e06
commit
a7015fc300
@ -13,8 +13,8 @@
|
||||
* and the implementation of the `devtools_page`.
|
||||
*/
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "gDevTools",
|
||||
"resource://devtools/client/framework/gDevTools.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "DevToolsShim",
|
||||
"chrome://devtools-shim/content/DevToolsShim.jsm");
|
||||
|
||||
Cu.import("resource://gre/modules/ExtensionParent.jsm");
|
||||
|
||||
@ -142,7 +142,7 @@ class DevToolsPage extends HiddenExtensionPage {
|
||||
extensions.emit("extension-browser-inserted", this.browser, {
|
||||
devtoolsToolboxInfo: {
|
||||
inspectedWindowTabId: getTargetTabIdForToolbox(this.toolbox),
|
||||
themeName: gDevTools.getTheme(),
|
||||
themeName: DevToolsShim.getTheme(),
|
||||
},
|
||||
});
|
||||
|
||||
@ -220,7 +220,7 @@ class DevToolsPageDefinition {
|
||||
|
||||
// If this is the first DevToolsPage, subscribe to the theme-changed event
|
||||
if (this.devtoolsPageForTarget.size === 0) {
|
||||
gDevTools.on("theme-changed", this.onThemeChanged);
|
||||
DevToolsShim.on("theme-changed", this.onThemeChanged);
|
||||
}
|
||||
this.devtoolsPageForTarget.set(toolbox.target, devtoolsPage);
|
||||
|
||||
@ -240,7 +240,7 @@ class DevToolsPageDefinition {
|
||||
|
||||
// If this was the last DevToolsPage, unsubscribe from the theme-changed event
|
||||
if (this.devtoolsPageForTarget.size === 0) {
|
||||
gDevTools.off("theme-changed", this.onThemeChanged);
|
||||
DevToolsShim.off("theme-changed", this.onThemeChanged);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -272,7 +272,7 @@ initDevTools = function() {
|
||||
/* 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) => {
|
||||
DevToolsShim.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).
|
||||
@ -294,7 +294,7 @@ initDevTools = function() {
|
||||
|
||||
// Destroy a devtools page context for a destroyed toolbox,
|
||||
// based on the registered devtools_page definitions.
|
||||
gDevTools.on("toolbox-destroy", (evt, target) => {
|
||||
DevToolsShim.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).
|
||||
|
@ -2,10 +2,8 @@
|
||||
/* vim: set sts=2 sw=2 et tw=80: */
|
||||
"use strict";
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "gDevTools",
|
||||
"resource://devtools/client/framework/gDevTools.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "devtools",
|
||||
"resource://devtools/shared/Loader.jsm");
|
||||
const {DevToolsShim} = Cu.import("chrome://devtools-shim/content/DevToolsShim.jsm", {});
|
||||
const {gDevTools} = DevToolsShim;
|
||||
|
||||
/**
|
||||
* this test file ensures that:
|
||||
@ -91,7 +89,7 @@ add_task(async function test_devtools_inspectedWindow_tabId() {
|
||||
|
||||
let backgroundPageCurrentTabId = await extension.awaitMessage("current-tab-id");
|
||||
|
||||
let target = devtools.TargetFactory.forTab(tab);
|
||||
let target = gDevTools.getTargetForTab(tab);
|
||||
|
||||
await gDevTools.showToolbox(target, "webconsole");
|
||||
info("developer toolbox opened");
|
||||
@ -159,7 +157,7 @@ add_task(async function test_devtools_inspectedWindow_eval() {
|
||||
|
||||
await extension.startup();
|
||||
|
||||
let target = devtools.TargetFactory.forTab(tab);
|
||||
let target = gDevTools.getTargetForTab(tab);
|
||||
|
||||
await gDevTools.showToolbox(target, "webconsole");
|
||||
info("developer toolbox opened");
|
||||
|
@ -6,10 +6,8 @@
|
||||
// on debug test slave, it takes about 50s to run the test.
|
||||
requestLongerTimeout(4);
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "gDevTools",
|
||||
"resource://devtools/client/framework/gDevTools.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "devtools",
|
||||
"resource://devtools/shared/Loader.jsm");
|
||||
const {DevToolsShim} = Cu.import("chrome://devtools-shim/content/DevToolsShim.jsm", {});
|
||||
const {gDevTools} = DevToolsShim;
|
||||
|
||||
// Small helper which provides the common steps to the following reload test cases.
|
||||
async function runReloadTestCase({urlParams, background, devtoolsPage, testCase}) {
|
||||
@ -39,7 +37,7 @@ async function runReloadTestCase({urlParams, background, devtoolsPage, testCase}
|
||||
|
||||
await extension.startup();
|
||||
|
||||
let target = devtools.TargetFactory.forTab(tab);
|
||||
let target = gDevTools.getTargetForTab(tab);
|
||||
|
||||
await gDevTools.showToolbox(target, "webconsole");
|
||||
info("developer toolbox opened");
|
||||
|
@ -2,10 +2,8 @@
|
||||
/* vim: set sts=2 sw=2 et tw=80: */
|
||||
"use strict";
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "devtools",
|
||||
"resource://devtools/shared/Loader.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "gDevTools",
|
||||
"resource://devtools/client/framework/gDevTools.jsm");
|
||||
const {DevToolsShim} = Cu.import("chrome://devtools-shim/content/DevToolsShim.jsm", {});
|
||||
const {gDevTools} = DevToolsShim;
|
||||
|
||||
add_task(async function test_devtools_network_on_navigated() {
|
||||
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, "http://mochi.test:8888/");
|
||||
@ -65,7 +63,7 @@ add_task(async function test_devtools_network_on_navigated() {
|
||||
await extension.startup();
|
||||
await extension.awaitMessage("ready");
|
||||
|
||||
let target = devtools.TargetFactory.forTab(tab);
|
||||
let target = gDevTools.getTargetForTab(tab);
|
||||
|
||||
await gDevTools.showToolbox(target, "webconsole");
|
||||
info("Developer toolbox opened.");
|
||||
|
@ -2,10 +2,8 @@
|
||||
/* vim: set sts=2 sw=2 et tw=80: */
|
||||
"use strict";
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "gDevTools",
|
||||
"resource://devtools/client/framework/gDevTools.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "devtools",
|
||||
"resource://devtools/shared/Loader.jsm");
|
||||
const {DevToolsShim} = Cu.import("chrome://devtools-shim/content/DevToolsShim.jsm", {});
|
||||
const {gDevTools} = DevToolsShim;
|
||||
|
||||
/**
|
||||
* This test file ensures that:
|
||||
@ -67,7 +65,7 @@ add_task(async function test_devtools_page_runtime_api_messaging() {
|
||||
|
||||
await extension.startup();
|
||||
|
||||
let target = devtools.TargetFactory.forTab(tab);
|
||||
let target = gDevTools.getTargetForTab(tab);
|
||||
|
||||
await gDevTools.showToolbox(target, "webconsole");
|
||||
info("developer toolbox opened");
|
||||
|
@ -2,13 +2,12 @@
|
||||
/* vim: set sts=2 sw=2 et tw=80: */
|
||||
"use strict";
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "devtools",
|
||||
"resource://devtools/shared/Loader.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "gDevTools",
|
||||
"resource://devtools/client/framework/gDevTools.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "Preferences",
|
||||
"resource://gre/modules/Preferences.jsm");
|
||||
|
||||
const {DevToolsShim} = Cu.import("chrome://devtools-shim/content/DevToolsShim.jsm", {});
|
||||
const {gDevTools} = DevToolsShim;
|
||||
|
||||
const DEVTOOLS_THEME_PREF = "devtools.theme";
|
||||
|
||||
/**
|
||||
@ -76,7 +75,7 @@ add_task(async function test_theme_name_no_panel() {
|
||||
|
||||
await extension.startup();
|
||||
|
||||
let target = devtools.TargetFactory.forTab(tab);
|
||||
let target = gDevTools.getTargetForTab(tab);
|
||||
await gDevTools.showToolbox(target, "webconsole");
|
||||
info("developer toolbox opened");
|
||||
|
||||
@ -195,7 +194,7 @@ add_task(async function test_devtools_page_panels_create() {
|
||||
|
||||
await extension.startup();
|
||||
|
||||
let target = devtools.TargetFactory.forTab(tab);
|
||||
let target = gDevTools.getTargetForTab(tab);
|
||||
|
||||
const toolbox = await gDevTools.showToolbox(target, "webconsole");
|
||||
info("developer toolbox opened");
|
||||
|
@ -214,7 +214,17 @@ let addonSdkMethods = [
|
||||
"showToolbox",
|
||||
];
|
||||
|
||||
for (let method of addonSdkMethods) {
|
||||
/**
|
||||
* Compatibility layer for webextensions.
|
||||
*
|
||||
* Those methods are called only after a DevTools webextension was loaded in DevTools,
|
||||
* therefore DevTools should always be available when they are called.
|
||||
*/
|
||||
let webExtensionsMethods = [
|
||||
"getTheme",
|
||||
];
|
||||
|
||||
for (let method of [...addonSdkMethods, ...webExtensionsMethods]) {
|
||||
this.DevToolsShim[method] = function () {
|
||||
if (!this.isInstalled()) {
|
||||
throw new Error(`Method ${method} unavailable if DevTools are not installed`);
|
||||
|
Loading…
Reference in New Issue
Block a user