Bug 1434374 - Replace usages of Cu.import in modules (where ChromeUtils isn't defined) r=jdescottes
MozReview-Commit-ID: 8kw2H4R2VIZ
--- a/devtools/client/framework/toolbox-process-window.js
+++ b/devtools/client/framework/toolbox-process-window.js
@@ -138,16 +138,17 @@ function onNewToolbox(toolbox) {
}
}
}
function evaluateTestScript(script, toolbox) {
let sandbox = Cu.Sandbox(window);
sandbox.window = window;
sandbox.toolbox = toolbox;
+ sandbox.ChromeUtils = ChromeUtils;
Cu.evalInSandbox(script, sandbox);
}
function bindToolboxHandlers() {
gToolbox.once("destroyed", quitApp);
window.addEventListener("unload", onUnload);
if (Services.appinfo.OS == "Darwin") {
--- a/devtools/client/framework/toolbox.js
+++ b/devtools/client/framework/toolbox.js
@@ -14,30 +14,31 @@ const HOST_HISTOGRAM = "DEVTOOLS_TOOLBOX
const SCREENSIZE_HISTOGRAM = "DEVTOOLS_SCREEN_RESOLUTION_ENUMERATED_PER_USER";
const CURRENT_THEME_SCALAR = "devtools.current_theme";
const HTML_NS = "http://www.w3.org/1999/xhtml";
var {Ci, Cu, Cc} = require("chrome");
var promise = require("promise");
var defer = require("devtools/shared/defer");
var Services = require("Services");
+var ChromeUtils = require("ChromeUtils");
var {Task} = require("devtools/shared/task");
var {gDevTools} = require("devtools/client/framework/devtools");
var EventEmitter = require("devtools/shared/old-event-emitter");
var Telemetry = require("devtools/client/shared/telemetry");
var { attachThread, detachThread } = require("./attach-thread");
var Menu = require("devtools/client/framework/menu");
var MenuItem = require("devtools/client/framework/menu-item");
var { DOMHelpers } = require("resource://devtools/client/shared/DOMHelpers.jsm");
const { KeyCodes } = require("devtools/client/shared/keycodes");
var Startup = Cc["@mozilla.org/devtools/startup-clh;1"].getService(Ci.nsISupports)
.wrappedJSObject;
const { BrowserLoader } =
- Cu.import("resource://devtools/client/shared/browser-loader.js", {});
+ ChromeUtils.import("resource://devtools/client/shared/browser-loader.js", {});
const {LocalizationHelper} = require("devtools/shared/l10n");
const L10N = new LocalizationHelper("devtools/client/locales/toolbox.properties");
loader.lazyRequireGetter(this, "getHighlighterUtils",
"devtools/client/framework/toolbox-highlighter-utils", true);
loader.lazyRequireGetter(this, "Selection",
"devtools/client/framework/selection", true);
--- a/devtools/client/performance/test/helpers/synth-utils.js
+++ b/devtools/client/performance/test/helpers/synth-utils.js
@@ -48,18 +48,17 @@ exports.synthesizeProfile = () => {
}]
});
};
/**
* Generates a simple implementation for a tree class.
*/
exports.synthesizeCustomTreeClass = () => {
- const { Cu } = require("chrome");
- const { AbstractTreeItem } = Cu.import("resource://devtools/client/shared/widgets/AbstractTreeItem.jsm", {});
+ const { AbstractTreeItem } = require("resource://devtools/client/shared/widgets/AbstractTreeItem.jsm");
const { extend } = require("devtools/shared/extend");
function MyCustomTreeItem(dataSrc, properties) {
AbstractTreeItem.call(this, properties);
this.itemDataSrc = dataSrc;
}
MyCustomTreeItem.prototype = extend(AbstractTreeItem.prototype, {
--- a/devtools/client/performance/test/helpers/tab-utils.js
+++ b/devtools/client/performance/test/helpers/tab-utils.js
@@ -1,16 +1,15 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
/* globals dump */
-const { Cu } = require("chrome");
-const { BrowserTestUtils } = Cu.import("resource://testing-common/BrowserTestUtils.jsm", {});
+const { BrowserTestUtils } = require("resource://testing-common/BrowserTestUtils.jsm");
const Services = require("Services");
const { waitForDelayedStartupFinished } = require("devtools/client/performance/test/helpers/wait-utils");
const { gDevTools } = require("devtools/client/framework/devtools");
/**
* Gets a random integer in between an interval. Used to uniquely identify
* added tabs by augmenting the URL.
*/
--- a/devtools/client/webconsole/webconsole.js
+++ b/devtools/client/webconsole/webconsole.js
@@ -6,18 +6,20 @@
"use strict";
const {Cc, Ci, Cu} = require("chrome");
const {Utils: WebConsoleUtils, CONSOLE_WORKER_IDS} =
require("devtools/client/webconsole/utils");
const { getSourceNames } = require("devtools/client/shared/source-utils");
-const BrowserLoaderModule = {};
-Cu.import("resource://devtools/client/shared/browser-loader.js", BrowserLoaderModule);
+const ChromeUtils = require("ChromeUtils");
+// browser-loader.js is a JSM without .jsm file extension, so it has to be loaded
+// via ChromeUtils.import and not require() which would consider it as a CommonJS module
+const { BrowserLoader } = ChromeUtils.import("resource://devtools/client/shared/browser-loader.js", {});
const promise = require("promise");
const defer = require("devtools/shared/defer");
const Services = require("Services");
const Telemetry = require("devtools/client/shared/telemetry");
const {PrefObserver} = require("devtools/client/shared/prefs");
loader.lazyServiceGetter(this, "clipboardHelper",
@@ -220,17 +222,17 @@ function WebConsoleFrame(webConsoleOwner
this._flushMessageQueue = this._flushMessageQueue.bind(this);
this._onToolboxPrefChanged = this._onToolboxPrefChanged.bind(this);
this._onUpdateListeners = this._onUpdateListeners.bind(this);
this._outputTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
this._outputTimerInitialized = false;
let toolbox = gDevTools.getToolbox(this.owner.target);
- let {require} = BrowserLoaderModule.BrowserLoader({
+ let {require} = BrowserLoader({
window: this.window,
useOnlyShared: true,
// The toolbox isn't available for the browser console.
commonLibRequire: toolbox ? toolbox.browserRequire : null,
});
this.React = require("devtools/client/shared/vendor/react");
this.ReactDOM = require("devtools/client/shared/vendor/react-dom");
--- a/devtools/server/actors/call-watcher.js
+++ b/devtools/server/actors/call-watcher.js
@@ -2,17 +2,20 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
/* global XPCNativeWrapper */
const {Ci, Cu} = require("chrome");
const protocol = require("devtools/shared/protocol");
-const {serializeStack, parseStack} = Cu.import("resource://devtools/shared/base-loader.js", {});
+const ChromeUtils = require("ChromeUtils");
+// base-loader.js is a JSM without .jsm file extension, so it has to be loaded
+// via ChromeUtils.import and not require() which would consider it as a CommonJS module
+const {serializeStack, parseStack} = ChromeUtils.import("resource://devtools/shared/base-loader.js", {});
const { functionCallSpec, callWatcherSpec } = require("devtools/shared/specs/call-watcher");
const { CallWatcherFront } = require("devtools/shared/fronts/call-watcher");
/**
* This actor contains information about a function call, like the function
* type, name, stack, arguments, returned value etc.
*/
--- a/devtools/shared/DevToolsUtils.js
+++ b/devtools/shared/DevToolsUtils.js
@@ -394,19 +394,17 @@ exports.defineLazyGetter = function (obj
enumerable: true
});
};
DevToolsUtils.defineLazyGetter(this, "AppConstants", () => {
if (isWorker) {
return {};
}
- const scope = {};
- Cu.import("resource://gre/modules/AppConstants.jsm", scope);
- return scope.AppConstants;
+ return require("resource://gre/modules/AppConstants.jsm").AppConstants;
});
/**
* No operation. The empty function.
*/
exports.noop = function () { };
let assertionFailureCount = 0;
--- a/devtools/shared/test-helpers/allocation-tracker.js
+++ b/devtools/shared/test-helpers/allocation-tracker.js
@@ -34,17 +34,17 @@
*/
"use strict";
let { Cu } = require("chrome");
// Get a "Debugger" constructor. Can't call `addDebuggerToGlobal`
// on the frame script global, so call it on jsdebugger one...
-let global = Cu.import("resource://gre/modules/jsdebugger.jsm", {});
+let global = require("resource://gre/modules/jsdebugger.jsm");
const {addDebuggerToGlobal} = global;
addDebuggerToGlobal(global);
let { Debugger } = global;
exports.allocationTracker = function () {
dump("DEVTOOLS ALLOCATION: Start logging allocations\n");
let dbg = new Debugger();