diff --git a/browser/components/aboutwelcome/modules/AWScreenUtils.sys.mjs b/browser/components/aboutwelcome/modules/AWScreenUtils.sys.mjs index 7f50f1bdf8aa..85c1f8adaa57 100644 --- a/browser/components/aboutwelcome/modules/AWScreenUtils.sys.mjs +++ b/browser/components/aboutwelcome/modules/AWScreenUtils.sys.mjs @@ -15,9 +15,12 @@ const { XPCOMUtils } = ChromeUtils.importESModule( const lazy = {}; +ChromeUtils.defineESModuleGetters(lazy, { + ASRouterTargeting: "resource:///modules/asrouter/ASRouterTargeting.sys.mjs", +}); + XPCOMUtils.defineLazyModuleGetters(lazy, { ASRouter: "resource:///modules/asrouter/ASRouter.jsm", - ASRouterTargeting: "resource:///modules/asrouter/ASRouterTargeting.jsm", }); export const AWScreenUtils = { diff --git a/browser/components/aboutwelcome/tests/browser/head.js b/browser/components/aboutwelcome/tests/browser/head.js index 6d8355795b35..0854a3efb036 100644 --- a/browser/components/aboutwelcome/tests/browser/head.js +++ b/browser/components/aboutwelcome/tests/browser/head.js @@ -5,13 +5,10 @@ ChromeUtils.defineESModuleGetters(this, { FxAccounts: "resource://gre/modules/FxAccounts.sys.mjs", + QueryCache: "resource:///modules/asrouter/ASRouterTargeting.sys.mjs", sinon: "resource://testing-common/Sinon.sys.mjs", }); -XPCOMUtils.defineLazyModuleGetters(this, { - QueryCache: "resource:///modules/asrouter/ASRouterTargeting.jsm", -}); - // Set the content pref to make it available across tests const ABOUT_WELCOME_OVERRIDE_CONTENT_PREF = "browser.aboutwelcome.screens"; diff --git a/browser/components/asrouter/karma.mc.config.js b/browser/components/asrouter/karma.mc.config.js index c4406d496410..1f2d7972f72e 100644 --- a/browser/components/asrouter/karma.mc.config.js +++ b/browser/components/asrouter/karma.mc.config.js @@ -219,7 +219,7 @@ module.exports = function (config) { exclude: [ path.resolve("tests"), path.resolve("../newtab"), - path.resolve("modules/ASRouterTargeting.jsm"), + path.resolve("modules/ASRouterTargeting.sys.mjs"), path.resolve("modules/ASRouterTriggerListeners.sys.mjs"), path.resolve("modules/CFRMessageProvider.sys.mjs"), path.resolve("modules/CFRPageActions.sys.mjs"), diff --git a/browser/components/asrouter/modules/ASRouter.jsm b/browser/components/asrouter/modules/ASRouter.jsm index a0cc0ddb00e0..352f37744414 100644 --- a/browser/components/asrouter/modules/ASRouter.jsm +++ b/browser/components/asrouter/modules/ASRouter.jsm @@ -13,6 +13,7 @@ const { AppConstants } = ChromeUtils.importESModule( const lazy = {}; ChromeUtils.defineESModuleGetters(lazy, { + ASRouterTargeting: "resource:///modules/asrouter/ASRouterTargeting.sys.mjs", ASRouterTriggerListeners: "resource:///modules/asrouter/ASRouterTriggerListeners.sys.mjs", Downloader: "resource://services-settings/Attachments.sys.mjs", @@ -38,7 +39,6 @@ ChromeUtils.defineESModuleGetters(lazy, { }); XPCOMUtils.defineLazyModuleGetters(lazy, { - ASRouterTargeting: "resource:///modules/asrouter/ASRouterTargeting.jsm", ASRouterPreferences: "resource:///modules/asrouter/ASRouterPreferences.jsm", TARGETING_PREFERENCES: "resource:///modules/asrouter/ASRouterPreferences.jsm", }); diff --git a/browser/components/asrouter/modules/ASRouterDefaultConfig.sys.mjs b/browser/components/asrouter/modules/ASRouterDefaultConfig.sys.mjs index 8e57dc8d1d57..6c4cbbcd6dc8 100644 --- a/browser/components/asrouter/modules/ASRouterDefaultConfig.sys.mjs +++ b/browser/components/asrouter/modules/ASRouterDefaultConfig.sys.mjs @@ -23,9 +23,7 @@ const { SpecialMessageActions } = ChromeUtils.importESModule( const { ASRouterPreferences } = ChromeUtils.import( "resource:///modules/asrouter/ASRouterPreferences.jsm" ); -const { QueryCache } = ChromeUtils.import( - "resource:///modules/asrouter/ASRouterTargeting.jsm" -); +import { QueryCache } from "resource:///modules/asrouter/ASRouterTargeting.sys.mjs"; import { ActivityStreamStorage } from "resource://activity-stream/lib/ActivityStreamStorage.sys.mjs"; const createStorage = async telemetryFeed => { diff --git a/browser/components/asrouter/modules/ASRouterTargeting.jsm b/browser/components/asrouter/modules/ASRouterTargeting.sys.mjs similarity index 98% rename from browser/components/asrouter/modules/ASRouterTargeting.jsm rename to browser/components/asrouter/modules/ASRouterTargeting.sys.mjs index da59e80a0ec0..1034285841af 100644 --- a/browser/components/asrouter/modules/ASRouterTargeting.jsm +++ b/browser/components/asrouter/modules/ASRouterTargeting.sys.mjs @@ -6,15 +6,29 @@ const FXA_ENABLED_PREF = "identity.fxaccounts.enabled"; const DISTRIBUTION_ID_PREF = "distribution.id"; const DISTRIBUTION_ID_CHINA_REPACK = "MozillaOnline"; +// We use importESModule here instead of static import so that +// the Karma test environment won't choke on this module. This +// is because the Karma test environment already stubs out +// XPCOMUtils, AppConstants, NewTabUtils and ShellService, and +// overrides importESModule to be a no-op (which can't be done +// for a static import statement). + +// eslint-disable-next-line mozilla/use-static-import const { XPCOMUtils } = ChromeUtils.importESModule( "resource://gre/modules/XPCOMUtils.sys.mjs" ); + +// eslint-disable-next-line mozilla/use-static-import const { AppConstants } = ChromeUtils.importESModule( "resource://gre/modules/AppConstants.sys.mjs" ); + +// eslint-disable-next-line mozilla/use-static-import const { NewTabUtils } = ChromeUtils.importESModule( "resource://gre/modules/NewTabUtils.sys.mjs" ); + +// eslint-disable-next-line mozilla/use-static-import const { ShellService } = ChromeUtils.importESModule( "resource:///modules/ShellService.sys.mjs" ); @@ -172,7 +186,7 @@ const jexlEvaluationCache = new Map(); * @param options {any=} Options passed to the method * @param updateInterval {number?} Update interval for query. Defaults to FRECENT_SITES_UPDATE_INTERVAL */ -function CachedTargetingGetter( +export function CachedTargetingGetter( property, options = null, updateInterval = FRECENT_SITES_UPDATE_INTERVAL, @@ -269,7 +283,7 @@ function CheckBrowserNeedsUpdate( return checker; } -const QueryCache = { +export const QueryCache = { expireAll() { Object.keys(this.queries).forEach(query => { this.queries[query].expire(); @@ -376,7 +390,7 @@ function sortMessagesByWeightedRank(messages) { * @param {boolean} options.ordered - Should .order be used instead of random weighted sorting? * @returns {Array} */ -function getSortedMessages(messages, options = {}) { +export function getSortedMessages(messages, options = {}) { let { ordered } = { ordered: false, ...options }; let result = messages; @@ -1040,7 +1054,7 @@ const TargetingGetters = { }, }; -const ASRouterTargeting = { +export const ASRouterTargeting = { Environment: TargetingGetters, /** @@ -1282,10 +1296,3 @@ const ASRouterTargeting = { return matching; }, }; - -const EXPORTED_SYMBOLS = [ - "ASRouterTargeting", - "QueryCache", - "CachedTargetingGetter", - "getSortedMessages", -]; diff --git a/browser/components/asrouter/moz.build b/browser/components/asrouter/moz.build index bc0d37846f15..00b411b7e7e0 100644 --- a/browser/components/asrouter/moz.build +++ b/browser/components/asrouter/moz.build @@ -21,7 +21,7 @@ EXTRA_JS_MODULES.asrouter += [ "modules/ASRouterNewTabHook.sys.mjs", "modules/ASRouterParentProcessMessageHandler.sys.mjs", "modules/ASRouterPreferences.jsm", - "modules/ASRouterTargeting.jsm", + "modules/ASRouterTargeting.sys.mjs", "modules/ASRouterTriggerListeners.sys.mjs", "modules/CFRMessageProvider.sys.mjs", "modules/CFRPageActions.sys.mjs", diff --git a/browser/components/asrouter/tests/browser/browser_asrouter_targeting.js b/browser/components/asrouter/tests/browser/browser_asrouter_targeting.js index af7ba335ff24..432b4b75a73e 100644 --- a/browser/components/asrouter/tests/browser/browser_asrouter_targeting.js +++ b/browser/components/asrouter/tests/browser/browser_asrouter_targeting.js @@ -1,12 +1,9 @@ -XPCOMUtils.defineLazyModuleGetters(this, { - ASRouterTargeting: "resource:///modules/asrouter/ASRouterTargeting.jsm", - QueryCache: "resource:///modules/asrouter/ASRouterTargeting.jsm", -}); ChromeUtils.defineESModuleGetters(this, { AddonManager: "resource://gre/modules/AddonManager.sys.mjs", AddonTestUtils: "resource://testing-common/AddonTestUtils.sys.mjs", AboutNewTab: "resource:///modules/AboutNewTab.sys.mjs", AppConstants: "resource://gre/modules/AppConstants.sys.mjs", + ASRouterTargeting: "resource:///modules/asrouter/ASRouterTargeting.sys.mjs", AttributionCode: "resource:///modules/AttributionCode.sys.mjs", BrowserWindowTracker: "resource:///modules/BrowserWindowTracker.sys.mjs", BuiltInThemes: "resource:///modules/BuiltInThemes.sys.mjs", @@ -19,6 +16,7 @@ ChromeUtils.defineESModuleGetters(this, { NimbusFeatures: "resource://nimbus/ExperimentAPI.sys.mjs", PlacesTestUtils: "resource://testing-common/PlacesTestUtils.sys.mjs", ProfileAge: "resource://gre/modules/ProfileAge.sys.mjs", + QueryCache: "resource:///modules/asrouter/ASRouterTargeting.sys.mjs", Region: "resource://gre/modules/Region.sys.mjs", ShellService: "resource:///modules/ShellService.sys.mjs", TargetingContext: "resource://messaging-system/targeting/Targeting.sys.mjs", diff --git a/browser/components/asrouter/tests/unit/ASRouter.test.js b/browser/components/asrouter/tests/unit/ASRouter.test.js index 00a6cddd75b7..f23047be4438 100644 --- a/browser/components/asrouter/tests/unit/ASRouter.test.js +++ b/browser/components/asrouter/tests/unit/ASRouter.test.js @@ -1,5 +1,5 @@ import { _ASRouter, MessageLoaderUtils } from "modules/ASRouter.jsm"; -import { QueryCache } from "modules/ASRouterTargeting.jsm"; +import { QueryCache } from "modules/ASRouterTargeting.sys.mjs"; import { FAKE_LOCAL_MESSAGES, FAKE_LOCAL_PROVIDER, diff --git a/browser/components/asrouter/tests/unit/ASRouterTargeting.test.js b/browser/components/asrouter/tests/unit/ASRouterTargeting.test.js index dd4fae9690cf..db0afd4a68a7 100644 --- a/browser/components/asrouter/tests/unit/ASRouterTargeting.test.js +++ b/browser/components/asrouter/tests/unit/ASRouterTargeting.test.js @@ -3,7 +3,7 @@ import { CachedTargetingGetter, getSortedMessages, QueryCache, -} from "modules/ASRouterTargeting.jsm"; +} from "modules/ASRouterTargeting.sys.mjs"; import { OnboardingMessageProvider } from "modules/OnboardingMessageProvider.sys.mjs"; import { ASRouterPreferences } from "modules/ASRouterPreferences.jsm"; import { GlobalOverrider } from "test/unit/utils"; diff --git a/browser/components/asrouter/tests/unit/TargetingDocs.test.js b/browser/components/asrouter/tests/unit/TargetingDocs.test.js index 07d11c90587d..0d4744e672db 100644 --- a/browser/components/asrouter/tests/unit/TargetingDocs.test.js +++ b/browser/components/asrouter/tests/unit/TargetingDocs.test.js @@ -1,4 +1,4 @@ -import { ASRouterTargeting } from "modules/ASRouterTargeting.jsm"; +import { ASRouterTargeting } from "modules/ASRouterTargeting.sys.mjs"; import docs from "docs/targeting-attributes.md"; // The following targeting parameters are either deprecated or should not be included in the docs for some reason. diff --git a/browser/components/asrouter/tests/xpcshell/test_ASRouterTargeting_attribution.js b/browser/components/asrouter/tests/xpcshell/test_ASRouterTargeting_attribution.js index 133bb8a1fdbd..a37cb6c7938d 100644 --- a/browser/components/asrouter/tests/xpcshell/test_ASRouterTargeting_attribution.js +++ b/browser/components/asrouter/tests/xpcshell/test_ASRouterTargeting_attribution.js @@ -7,8 +7,8 @@ const { AttributionCode } = ChromeUtils.importESModule( "resource:///modules/AttributionCode.sys.mjs" ); -const { ASRouterTargeting } = ChromeUtils.import( - "resource:///modules/asrouter/ASRouterTargeting.jsm" +const { ASRouterTargeting } = ChromeUtils.importESModule( + "resource:///modules/asrouter/ASRouterTargeting.sys.mjs" ); const { MacAttribution } = ChromeUtils.importESModule( "resource:///modules/MacAttribution.sys.mjs" diff --git a/browser/components/asrouter/tests/xpcshell/test_ASRouterTargeting_snapshot.js b/browser/components/asrouter/tests/xpcshell/test_ASRouterTargeting_snapshot.js index 373af07d1c25..abc197bc9eb1 100644 --- a/browser/components/asrouter/tests/xpcshell/test_ASRouterTargeting_snapshot.js +++ b/browser/components/asrouter/tests/xpcshell/test_ASRouterTargeting_snapshot.js @@ -4,8 +4,8 @@ "use strict"; -const { ASRouterTargeting } = ChromeUtils.import( - "resource:///modules/asrouter/ASRouterTargeting.jsm" +const { ASRouterTargeting } = ChromeUtils.importESModule( + "resource:///modules/asrouter/ASRouterTargeting.sys.mjs" ); add_task(async function should_ignore_rejections() { diff --git a/browser/components/newtab/test/browser/browser_foxdoodle_set_default.js b/browser/components/newtab/test/browser/browser_foxdoodle_set_default.js index 83259b46b73a..50c919bca9d7 100644 --- a/browser/components/newtab/test/browser/browser_foxdoodle_set_default.js +++ b/browser/components/newtab/test/browser/browser_foxdoodle_set_default.js @@ -7,8 +7,8 @@ const { ASRouter } = ChromeUtils.import( "resource:///modules/asrouter/ASRouter.jsm" ); -const { ASRouterTargeting } = ChromeUtils.import( - "resource:///modules/asrouter/ASRouterTargeting.jsm" +const { ASRouterTargeting } = ChromeUtils.importESModule( + "resource:///modules/asrouter/ASRouterTargeting.sys.mjs" ); const { OnboardingMessageProvider } = ChromeUtils.importESModule( diff --git a/browser/components/newtab/test/browser/head.js b/browser/components/newtab/test/browser/head.js index ee56e3072cac..ed3ea03d5549 100644 --- a/browser/components/newtab/test/browser/head.js +++ b/browser/components/newtab/test/browser/head.js @@ -10,10 +10,10 @@ ChromeUtils.defineESModuleGetters(this, { "resource:///modules/asrouter/FeatureCalloutMessages.sys.mjs", ObjectUtils: "resource://gre/modules/ObjectUtils.sys.mjs", PlacesTestUtils: "resource://testing-common/PlacesTestUtils.sys.mjs", + QueryCache: "resource:///modules/asrouter/ASRouterTargeting.sys.mjs", }); XPCOMUtils.defineLazyModuleGetters(this, { ASRouter: "resource:///modules/asrouter/ASRouter.jsm", - QueryCache: "resource:///modules/asrouter/ASRouterTargeting.jsm", }); // We import sinon here to make it available across all mochitest test files diff --git a/toolkit/components/backgroundtasks/tests/BackgroundTask_targeting.sys.mjs b/toolkit/components/backgroundtasks/tests/BackgroundTask_targeting.sys.mjs index 686f26b05146..fd47d184701a 100644 --- a/toolkit/components/backgroundtasks/tests/BackgroundTask_targeting.sys.mjs +++ b/toolkit/components/backgroundtasks/tests/BackgroundTask_targeting.sys.mjs @@ -5,9 +5,7 @@ import { EXIT_CODE } from "resource://gre/modules/BackgroundTasksManager.sys.mjs"; -const { ASRouterTargeting } = ChromeUtils.import( - "resource:///modules/asrouter/ASRouterTargeting.jsm" -); +import { ASRouterTargeting } from "resource:///modules/asrouter/ASRouterTargeting.sys.mjs"; // Background tasks are "live" with a temporary profile that doesn't map common // network preferences to https://mochi.test in the way that regular testing diff --git a/toolkit/components/backgroundtasks/tests/xpcshell/test_backgroundtask_experiments.js b/toolkit/components/backgroundtasks/tests/xpcshell/test_backgroundtask_experiments.js index aad0128eb804..ce32123769bb 100644 --- a/toolkit/components/backgroundtasks/tests/xpcshell/test_backgroundtask_experiments.js +++ b/toolkit/components/backgroundtasks/tests/xpcshell/test_backgroundtask_experiments.js @@ -14,8 +14,8 @@ // 3. We verify that relevant opt-out prefs disable the Nimbus and Firefox // Messaging System experience. -const { ASRouterTargeting } = ChromeUtils.import( - "resource:///modules/asrouter/ASRouterTargeting.jsm" +const { ASRouterTargeting } = ChromeUtils.importESModule( + "resource:///modules/asrouter/ASRouterTargeting.sys.mjs" ); // These randomization IDs were extracted by hand from Firefox instances. diff --git a/toolkit/components/backgroundtasks/tests/xpcshell/test_backgroundtasksutils.js b/toolkit/components/backgroundtasks/tests/xpcshell/test_backgroundtasksutils.js index 48d9154531c6..b160cedce4cf 100644 --- a/toolkit/components/backgroundtasks/tests/xpcshell/test_backgroundtasksutils.js +++ b/toolkit/components/backgroundtasks/tests/xpcshell/test_backgroundtasksutils.js @@ -7,13 +7,10 @@ const { BackgroundTasksUtils } = ChromeUtils.importESModule( "resource://gre/modules/BackgroundTasksUtils.sys.mjs" ); -const { XPCOMUtils } = ChromeUtils.importESModule( - "resource://gre/modules/XPCOMUtils.sys.mjs" -); const lazy = {}; -XPCOMUtils.defineLazyModuleGetters(lazy, { - ASRouterTargeting: "resource:///modules/asrouter/ASRouterTargeting.jsm", +ChromeUtils.defineESModuleGetters(lazy, { + ASRouterTargeting: "resource:///modules/asrouter/ASRouterTargeting.sys.mjs", }); setupProfileService(); diff --git a/toolkit/components/messaging-system/targeting/Targeting.sys.mjs b/toolkit/components/messaging-system/targeting/Targeting.sys.mjs index ffcf9555c16f..8134920b1840 100644 --- a/toolkit/components/messaging-system/targeting/Targeting.sys.mjs +++ b/toolkit/components/messaging-system/targeting/Targeting.sys.mjs @@ -2,12 +2,14 @@ * 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/. */ -import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs"; import { AppConstants } from "resource://gre/modules/AppConstants.sys.mjs"; const lazy = {}; ChromeUtils.defineESModuleGetters(lazy, { + ASRouterTargeting: + // eslint-disable-next-line mozilla/no-browser-refs-in-toolkit + "resource:///modules/asrouter/ASRouterTargeting.sys.mjs", ClientEnvironment: "resource://normandy/lib/ClientEnvironment.sys.mjs", ClientEnvironmentBase: "resource://gre/modules/components-utils/ClientEnvironment.sys.mjs", @@ -18,12 +20,6 @@ ChromeUtils.defineESModuleGetters(lazy, { setTimeout: "resource://gre/modules/Timer.sys.mjs", }); -XPCOMUtils.defineLazyModuleGetters(lazy, { - ASRouterTargeting: - // eslint-disable-next-line mozilla/no-browser-refs-in-toolkit - "resource:///modules/asrouter/ASRouterTargeting.jsm", -}); - const TARGETING_EVENT_CATEGORY = "messaging_experiments"; const TARGETING_EVENT_METHOD = "targeting"; const DEFAULT_TIMEOUT = 5000; diff --git a/toolkit/components/nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs b/toolkit/components/nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs index f3cff56f19fd..8e026e5cba02 100644 --- a/toolkit/components/nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs +++ b/toolkit/components/nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs @@ -8,6 +8,9 @@ const lazy = {}; ChromeUtils.defineESModuleGetters(lazy, { _ExperimentFeature: "resource://nimbus/ExperimentAPI.sys.mjs", + ASRouterTargeting: + // eslint-disable-next-line mozilla/no-browser-refs-in-toolkit + "resource:///modules/asrouter/ASRouterTargeting.sys.mjs", CleanupManager: "resource://normandy/lib/CleanupManager.sys.mjs", ExperimentManager: "resource://nimbus/lib/ExperimentManager.sys.mjs", JsonSchema: "resource://gre/modules/JsonSchema.sys.mjs", @@ -16,12 +19,6 @@ ChromeUtils.defineESModuleGetters(lazy, { TargetingContext: "resource://messaging-system/targeting/Targeting.sys.mjs", }); -XPCOMUtils.defineLazyModuleGetters(lazy, { - ASRouterTargeting: - // eslint-disable-next-line mozilla/no-browser-refs-in-toolkit - "resource:///modules/asrouter/ASRouterTargeting.jsm", -}); - ChromeUtils.defineLazyGetter(lazy, "log", () => { const { Logger } = ChromeUtils.importESModule( "resource://messaging-system/lib/Logger.sys.mjs" diff --git a/toolkit/mozapps/update/BackgroundUpdate.sys.mjs b/toolkit/mozapps/update/BackgroundUpdate.sys.mjs index 802f94ca8c2e..c8b80e604170 100644 --- a/toolkit/mozapps/update/BackgroundUpdate.sys.mjs +++ b/toolkit/mozapps/update/BackgroundUpdate.sys.mjs @@ -11,6 +11,9 @@ const lazy = {}; ChromeUtils.defineESModuleGetters(lazy, { AddonManager: "resource://gre/modules/AddonManager.sys.mjs", + ASRouterTargeting: + // eslint-disable-next-line mozilla/no-browser-refs-in-toolkit + "resource:///modules/asrouter/ASRouterTargeting.sys.mjs", BackgroundTasksUtils: "resource://gre/modules/BackgroundTasksUtils.sys.mjs", JSONFile: "resource://gre/modules/JSONFile.sys.mjs", TaskScheduler: "resource://gre/modules/TaskScheduler.sys.mjs", @@ -18,12 +21,6 @@ ChromeUtils.defineESModuleGetters(lazy, { NimbusFeatures: "resource://nimbus/ExperimentAPI.sys.mjs", }); -XPCOMUtils.defineLazyModuleGetters(lazy, { - ASRouterTargeting: - // eslint-disable-next-line mozilla/no-browser-refs-in-toolkit - "resource:///modules/asrouter/ASRouterTargeting.jsm", -}); - ChromeUtils.defineLazyGetter(lazy, "log", () => { let { ConsoleAPI } = ChromeUtils.importESModule( "resource://gre/modules/Console.sys.mjs" diff --git a/toolkit/mozapps/update/tests/unit_background_update/test_backgroundupdate_glean.js b/toolkit/mozapps/update/tests/unit_background_update/test_backgroundupdate_glean.js index 9db213a7fc64..b9d19153859f 100644 --- a/toolkit/mozapps/update/tests/unit_background_update/test_backgroundupdate_glean.js +++ b/toolkit/mozapps/update/tests/unit_background_update/test_backgroundupdate_glean.js @@ -6,8 +6,8 @@ "use strict"; -const { ASRouterTargeting } = ChromeUtils.import( - "resource:///modules/asrouter/ASRouterTargeting.jsm" +const { ASRouterTargeting } = ChromeUtils.importESModule( + "resource:///modules/asrouter/ASRouterTargeting.sys.mjs" ); const { BackgroundUpdate } = ChromeUtils.importESModule(