diff --git a/devtools/client/shared/thread-utils.js b/devtools/client/shared/thread-utils.js index 9c29681b91d3..7f3aa4a8ac54 100644 --- a/devtools/client/shared/thread-utils.js +++ b/devtools/client/shared/thread-utils.js @@ -4,8 +4,9 @@ "use strict"; const asyncStoreHelper = require("resource://devtools/client/shared/async-store-helper.js"); -const { validateBreakpointLocation } = ChromeUtils.import( - "resource://devtools/shared/validate-breakpoint.jsm" +const { validateBreakpointLocation } = ChromeUtils.importESModule( + "resource://devtools/shared/validate-breakpoint.sys.mjs", + { global: "contextual" } ); const asyncStore = asyncStoreHelper("debugger", { diff --git a/devtools/server/actors/blackboxing.js b/devtools/server/actors/blackboxing.js index 49dfc8180d5c..8163327b46af 100644 --- a/devtools/server/actors/blackboxing.js +++ b/devtools/server/actors/blackboxing.js @@ -9,9 +9,10 @@ const { blackboxingSpec, } = require("resource://devtools/shared/specs/blackboxing.js"); -const { - SessionDataHelpers, -} = require("resource://devtools/server/actors/watcher/SessionDataHelpers.jsm"); +const { SessionDataHelpers } = ChromeUtils.importESModule( + "resource://devtools/server/actors/watcher/SessionDataHelpers.sys.mjs", + { global: "contextual" } +); const { SUPPORTED_DATA } = SessionDataHelpers; const { BLACKBOXING } = SUPPORTED_DATA; diff --git a/devtools/server/actors/breakpoint-list.js b/devtools/server/actors/breakpoint-list.js index 1f9d6c0bf9e7..a28ffc3f7a0d 100644 --- a/devtools/server/actors/breakpoint-list.js +++ b/devtools/server/actors/breakpoint-list.js @@ -9,9 +9,10 @@ const { breakpointListSpec, } = require("resource://devtools/shared/specs/breakpoint-list.js"); -const { - SessionDataHelpers, -} = require("resource://devtools/server/actors/watcher/SessionDataHelpers.jsm"); +const { SessionDataHelpers } = ChromeUtils.importESModule( + "resource://devtools/server/actors/watcher/SessionDataHelpers.sys.mjs", + { global: "contextual" } +); const { SUPPORTED_DATA } = SessionDataHelpers; const { BREAKPOINTS, XHR_BREAKPOINTS, EVENT_BREAKPOINTS } = SUPPORTED_DATA; diff --git a/devtools/server/actors/target-configuration.js b/devtools/server/actors/target-configuration.js index b6db235143bd..3fec5f4189df 100644 --- a/devtools/server/actors/target-configuration.js +++ b/devtools/server/actors/target-configuration.js @@ -9,9 +9,10 @@ const { targetConfigurationSpec, } = require("resource://devtools/shared/specs/target-configuration.js"); -const { - SessionDataHelpers, -} = require("resource://devtools/server/actors/watcher/SessionDataHelpers.jsm"); +const { SessionDataHelpers } = ChromeUtils.importESModule( + "resource://devtools/server/actors/watcher/SessionDataHelpers.sys.mjs", + { global: "contextual" } +); const { isBrowsingContextPartOfContext } = ChromeUtils.importESModule( "resource://devtools/server/actors/watcher/browsing-context-helpers.sys.mjs", { global: "contextual" } diff --git a/devtools/server/actors/targets/session-data-processors/index.js b/devtools/server/actors/targets/session-data-processors/index.js index 19b7d6930261..72bc769dd146 100644 --- a/devtools/server/actors/targets/session-data-processors/index.js +++ b/devtools/server/actors/targets/session-data-processors/index.js @@ -4,9 +4,10 @@ "use strict"; -const { - SessionDataHelpers, -} = require("resource://devtools/server/actors/watcher/SessionDataHelpers.jsm"); +const { SessionDataHelpers } = ChromeUtils.importESModule( + "resource://devtools/server/actors/watcher/SessionDataHelpers.sys.mjs", + { global: "contextual" } +); const { SUPPORTED_DATA } = SessionDataHelpers; const SessionDataProcessors = {}; diff --git a/devtools/server/actors/thread-configuration.js b/devtools/server/actors/thread-configuration.js index f0c697bb5106..d3b7e229bfbc 100644 --- a/devtools/server/actors/thread-configuration.js +++ b/devtools/server/actors/thread-configuration.js @@ -9,9 +9,10 @@ const { threadConfigurationSpec, } = require("resource://devtools/shared/specs/thread-configuration.js"); -const { - SessionDataHelpers, -} = require("resource://devtools/server/actors/watcher/SessionDataHelpers.jsm"); +const { SessionDataHelpers } = ChromeUtils.importESModule( + "resource://devtools/server/actors/watcher/SessionDataHelpers.sys.mjs", + { global: "contextual" } +); const { SUPPORTED_DATA: { THREAD_CONFIGURATION }, } = SessionDataHelpers; diff --git a/devtools/server/actors/watcher/SessionDataHelpers.jsm b/devtools/server/actors/watcher/SessionDataHelpers.sys.mjs similarity index 82% rename from devtools/server/actors/watcher/SessionDataHelpers.jsm rename to devtools/server/actors/watcher/SessionDataHelpers.sys.mjs index c70df1744f00..4d55ce8d7587 100644 --- a/devtools/server/actors/watcher/SessionDataHelpers.jsm +++ b/devtools/server/actors/watcher/SessionDataHelpers.sys.mjs @@ -2,49 +2,30 @@ * 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"; - /** * Helper module alongside WatcherRegistry, which focus on updating the "sessionData" object. * This object is shared across processes and threads and have to be maintained in all these runtimes. */ -var EXPORTED_SYMBOLS = ["SessionDataHelpers"]; - const lazy = {}; +ChromeUtils.defineESModuleGetters( + lazy, + { + validateBreakpointLocation: + "resource://devtools/shared/validate-breakpoint.sys.mjs", + }, + { global: "contextual" } +); -if (typeof module == "object") { - // Allow this JSM to also be loaded as a CommonJS module - // Because this module is used from the worker thread, - // (via target-actor-mixin), and workers can't load JSMs via ChromeUtils.import. - loader.lazyRequireGetter( - lazy, - "validateBreakpointLocation", - "resource://devtools/shared/validate-breakpoint.jsm", - true +ChromeUtils.defineLazyGetter(lazy, "validateEventBreakpoint", () => { + const { loader } = ChromeUtils.importESModule( + "resource://devtools/shared/loader/Loader.sys.mjs", + { global: "contextual" } ); - - loader.lazyRequireGetter( - lazy, - "validateEventBreakpoint", - "resource://devtools/server/actors/utils/event-breakpoints.js", - true - ); -} else { - ChromeUtils.defineLazyGetter(lazy, "validateBreakpointLocation", () => { - return ChromeUtils.import( - "resource://devtools/shared/validate-breakpoint.jsm" - ).validateBreakpointLocation; - }); - ChromeUtils.defineLazyGetter(lazy, "validateEventBreakpoint", () => { - const { loader } = ChromeUtils.importESModule( - "resource://devtools/shared/loader/Loader.sys.mjs" - ); - return loader.require( - "resource://devtools/server/actors/utils/event-breakpoints.js" - ).validateEventBreakpoint; - }); -} + return loader.require( + "resource://devtools/server/actors/utils/event-breakpoints.js" + ).validateEventBreakpoint; +}); // List of all arrays stored in `sessionData`, which are replicated across processes and threads const SUPPORTED_DATA = { @@ -151,7 +132,7 @@ function idFunction(v) { return v; } -const SessionDataHelpers = { +export const SessionDataHelpers = { SUPPORTED_DATA, /** @@ -235,10 +216,3 @@ const SessionDataHelpers = { return true; }, }; - -// Allow this JSM to also be loaded as a CommonJS module -// Because this module is used from the worker thread, -// (via target-actor-mixin), and workers can't load JSMs. -if (typeof module == "object") { - module.exports.SessionDataHelpers = SessionDataHelpers; -} diff --git a/devtools/server/actors/watcher/WatcherRegistry.sys.mjs b/devtools/server/actors/watcher/WatcherRegistry.sys.mjs index b9693c60f5bb..b177cebb59b4 100644 --- a/devtools/server/actors/watcher/WatcherRegistry.sys.mjs +++ b/devtools/server/actors/watcher/WatcherRegistry.sys.mjs @@ -26,8 +26,9 @@ import { ActorManagerParent } from "resource://gre/modules/ActorManagerParent.sys.mjs"; -const { SessionDataHelpers } = ChromeUtils.import( - "resource://devtools/server/actors/watcher/SessionDataHelpers.jsm" +const { SessionDataHelpers } = ChromeUtils.importESModule( + "resource://devtools/server/actors/watcher/SessionDataHelpers.sys.mjs", + { global: "contextual" } ); const { SUPPORTED_DATA } = SessionDataHelpers; diff --git a/devtools/server/actors/watcher/moz.build b/devtools/server/actors/watcher/moz.build index 46a9d897187e..27674a2dc045 100644 --- a/devtools/server/actors/watcher/moz.build +++ b/devtools/server/actors/watcher/moz.build @@ -11,6 +11,6 @@ DIRS += [ DevToolsModules( "browsing-context-helpers.sys.mjs", "session-context.js", - "SessionDataHelpers.jsm", + "SessionDataHelpers.sys.mjs", "WatcherRegistry.sys.mjs", ) diff --git a/devtools/server/connectors/js-window-actor/DevToolsWorkerChild.sys.mjs b/devtools/server/connectors/js-window-actor/DevToolsWorkerChild.sys.mjs index 6bbe4140c326..e864356d0861 100644 --- a/devtools/server/connectors/js-window-actor/DevToolsWorkerChild.sys.mjs +++ b/devtools/server/connectors/js-window-actor/DevToolsWorkerChild.sys.mjs @@ -22,13 +22,11 @@ ChromeUtils.defineLazyGetter(lazy, "Loader", () => ChromeUtils.defineLazyGetter(lazy, "DevToolsUtils", () => lazy.Loader.require("resource://devtools/shared/DevToolsUtils.js") ); -XPCOMUtils.defineLazyModuleGetters(lazy, { - SessionDataHelpers: - "resource://devtools/server/actors/watcher/SessionDataHelpers.jsm", -}); ChromeUtils.defineESModuleGetters(lazy, { isWindowGlobalPartOfContext: "resource://devtools/server/actors/watcher/browsing-context-helpers.sys.mjs", + SessionDataHelpers: + "resource://devtools/server/actors/watcher/SessionDataHelpers.sys.mjs", }); // Name of the attribute into which we save data in `sharedData` object. diff --git a/devtools/server/connectors/process-actor/DevToolsServiceWorkerChild.sys.mjs b/devtools/server/connectors/process-actor/DevToolsServiceWorkerChild.sys.mjs index 62232f483df4..28e9c73c4369 100644 --- a/devtools/server/connectors/process-actor/DevToolsServiceWorkerChild.sys.mjs +++ b/devtools/server/connectors/process-actor/DevToolsServiceWorkerChild.sys.mjs @@ -8,6 +8,8 @@ import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs"; const lazy = {}; ChromeUtils.defineESModuleGetters(lazy, { loader: "resource://devtools/shared/loader/Loader.sys.mjs", + SessionDataHelpers: + "resource://devtools/server/actors/watcher/SessionDataHelpers.sys.mjs", }); XPCOMUtils.defineLazyServiceGetter( @@ -17,11 +19,6 @@ XPCOMUtils.defineLazyServiceGetter( "nsIWorkerDebuggerManager" ); -XPCOMUtils.defineLazyModuleGetters(lazy, { - SessionDataHelpers: - "resource://devtools/server/actors/watcher/SessionDataHelpers.jsm", -}); - ChromeUtils.defineLazyGetter(lazy, "DevToolsUtils", () => lazy.loader.require("devtools/shared/DevToolsUtils") ); diff --git a/devtools/server/tests/xpcshell/test_sessionDataHelpers.js b/devtools/server/tests/xpcshell/test_sessionDataHelpers.js index e0dcc3b21b7e..0c17937a693c 100644 --- a/devtools/server/tests/xpcshell/test_sessionDataHelpers.js +++ b/devtools/server/tests/xpcshell/test_sessionDataHelpers.js @@ -7,8 +7,9 @@ "use strict"; -const { SessionDataHelpers } = ChromeUtils.import( - "resource://devtools/server/actors/watcher/SessionDataHelpers.jsm" +const { SessionDataHelpers } = ChromeUtils.importESModule( + "resource://devtools/server/actors/watcher/SessionDataHelpers.sys.mjs", + { global: "contextual" } ); const { SUPPORTED_DATA } = SessionDataHelpers; const { TARGETS } = SUPPORTED_DATA; diff --git a/devtools/shared/loader/worker-loader.js b/devtools/shared/loader/worker-loader.js index d69ddd9d23f8..eee2b96d67f6 100644 --- a/devtools/shared/loader/worker-loader.js +++ b/devtools/shared/loader/worker-loader.js @@ -173,9 +173,7 @@ function WorkerDebuggerLoader(options) { } // If the url has no extension, use ".js" by default. - // Also allow loading JSMs, but they would need a shim in order to - // be loaded as a CommonJS module. (See SessionDataHelpers.jsm) - return url.endsWith(".js") || url.endsWith(".jsm") ? url : url + ".js"; + return url.endsWith(".js") ? url : url + ".js"; } /** diff --git a/devtools/shared/moz.build b/devtools/shared/moz.build index 55243817410e..9fa41cfc4010 100644 --- a/devtools/shared/moz.build +++ b/devtools/shared/moz.build @@ -71,7 +71,7 @@ DevToolsModules( "system.js", "ThreadSafeDevToolsUtils.js", "throttle.js", - "validate-breakpoint.jsm", + "validate-breakpoint.sys.mjs", ) with Files("**"): diff --git a/devtools/shared/validate-breakpoint.jsm b/devtools/shared/validate-breakpoint.sys.mjs similarity index 69% rename from devtools/shared/validate-breakpoint.jsm rename to devtools/shared/validate-breakpoint.sys.mjs index b065ead7aaa8..b555355ce7b9 100644 --- a/devtools/shared/validate-breakpoint.jsm +++ b/devtools/shared/validate-breakpoint.sys.mjs @@ -2,17 +2,15 @@ * 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"; - -// Because this function is used from SessionDataHelpers.jsm, -// this has to be a JSM. - -var EXPORTED_SYMBOLS = ["validateBreakpointLocation"]; - /** * Given a breakpoint location object, throws if the breakpoint look invalid */ -function validateBreakpointLocation({ sourceUrl, sourceId, line, column }) { +export function validateBreakpointLocation({ + sourceUrl, + sourceId, + line, + column, +}) { if (!sourceUrl && !sourceId) { throw new Error( `Breakpoints expect to have either a sourceUrl or a sourceId.` @@ -40,10 +38,3 @@ function validateBreakpointLocation({ sourceUrl, sourceId, line, column }) { ); } } - -// Allow this JSM to also be loaded as a CommonJS module -// Because this module is used from the worker thread, -// and workers can't load JSMs. -if (typeof module == "object") { - module.exports.validateBreakpointLocation = validateBreakpointLocation; -}