diff --git a/browser/components/newtab/docs/v2-system-addon/preferences.md b/browser/components/newtab/docs/v2-system-addon/preferences.md index c0274c318059..564a68a640c9 100644 --- a/browser/components/newtab/docs/v2-system-addon/preferences.md +++ b/browser/components/newtab/docs/v2-system-addon/preferences.md @@ -45,14 +45,12 @@ You can see an example in [this patch](https://github.com/mozilla/activity-strea ## Reading, setting, and observing preferences from `.jsm`s -To read/set/observe Activity Stream preferences, construct a `Prefs` instance found in `lib/ActivityStreamPrefs.jsm`. +To read/set/observe Activity Stream preferences, construct a `Prefs` instance found in `lib/ActivityStreamPrefs.sys.mjs`. ```js // Import Prefs -ChromeUtils.defineModuleGetter( - this, - "Prefs", - "resource://activity-stream/lib/ActivityStreamPrefs.jsm" +const { Prefs } = ChromeUtils.importESModule( + "resource://activity-stream/lib/ActivityStreamPrefs.sys.mjs" ); // Create an instance diff --git a/browser/components/newtab/lib/ActivityStream.jsm b/browser/components/newtab/lib/ActivityStream.jsm index 1a920501c075..0bb4f05a0c6f 100644 --- a/browser/components/newtab/lib/ActivityStream.jsm +++ b/browser/components/newtab/lib/ActivityStream.jsm @@ -11,6 +11,7 @@ const lazy = {}; ChromeUtils.defineESModuleGetters(lazy, { DEFAULT_SITES: "resource://activity-stream/lib/DefaultSites.sys.mjs", + DefaultPrefs: "resource://activity-stream/lib/ActivityStreamPrefs.sys.mjs", NimbusFeatures: "resource://nimbus/ExperimentAPI.sys.mjs", Region: "resource://gre/modules/Region.sys.mjs", }); @@ -25,11 +26,6 @@ ChromeUtils.defineModuleGetter( "AboutPreferences", "resource://activity-stream/lib/AboutPreferences.jsm" ); -ChromeUtils.defineModuleGetter( - lazy, - "DefaultPrefs", - "resource://activity-stream/lib/ActivityStreamPrefs.jsm" -); ChromeUtils.defineModuleGetter( lazy, "NewTabInit", diff --git a/browser/components/newtab/lib/ActivityStreamPrefs.jsm b/browser/components/newtab/lib/ActivityStreamPrefs.sys.mjs similarity index 85% rename from browser/components/newtab/lib/ActivityStreamPrefs.jsm rename to browser/components/newtab/lib/ActivityStreamPrefs.sys.mjs index 861467190386..192ff302883b 100644 --- a/browser/components/newtab/lib/ActivityStreamPrefs.jsm +++ b/browser/components/newtab/lib/ActivityStreamPrefs.sys.mjs @@ -1,18 +1,25 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * 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"; +// 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 +// AppConstants, 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 { AppConstants } = ChromeUtils.importESModule( "resource://gre/modules/AppConstants.sys.mjs" ); +// eslint-disable-next-line mozilla/use-static-import const { Preferences } = ChromeUtils.importESModule( "resource://gre/modules/Preferences.sys.mjs" ); const ACTIVITY_STREAM_PREF_BRANCH = "browser.newtabpage.activity-stream."; -class Prefs extends Preferences { +export class Prefs extends Preferences { /** * Prefs - A wrapper around Preferences that always sets the branch to * ACTIVITY_STREAM_PREF_BRANCH @@ -37,7 +44,7 @@ class Prefs extends Preferences { } } -class DefaultPrefs extends Preferences { +export class DefaultPrefs extends Preferences { /** * DefaultPrefs - A helper for setting and resetting default prefs for the add-on * @@ -91,5 +98,3 @@ class DefaultPrefs extends Preferences { } } } - -const EXPORTED_SYMBOLS = ["DefaultPrefs", "Prefs"]; diff --git a/browser/components/newtab/lib/PrefsFeed.jsm b/browser/components/newtab/lib/PrefsFeed.jsm index f6f46b069d40..6b53c7e43c35 100644 --- a/browser/components/newtab/lib/PrefsFeed.jsm +++ b/browser/components/newtab/lib/PrefsFeed.jsm @@ -6,8 +6,8 @@ const { actionCreators: ac, actionTypes: at } = ChromeUtils.importESModule( "resource://activity-stream/common/Actions.sys.mjs" ); -const { Prefs } = ChromeUtils.import( - "resource://activity-stream/lib/ActivityStreamPrefs.jsm" +const { Prefs } = ChromeUtils.importESModule( + "resource://activity-stream/lib/ActivityStreamPrefs.sys.mjs" ); const { AppConstants } = ChromeUtils.importESModule( "resource://gre/modules/AppConstants.sys.mjs" diff --git a/browser/components/newtab/lib/Store.jsm b/browser/components/newtab/lib/Store.jsm index 1918aea185f0..e036349764cd 100644 --- a/browser/components/newtab/lib/Store.jsm +++ b/browser/components/newtab/lib/Store.jsm @@ -9,8 +9,8 @@ const { ActivityStreamMessageChannel } = ChromeUtils.import( const { ActivityStreamStorage } = ChromeUtils.import( "resource://activity-stream/lib/ActivityStreamStorage.jsm" ); -const { Prefs } = ChromeUtils.import( - "resource://activity-stream/lib/ActivityStreamPrefs.jsm" +const { Prefs } = ChromeUtils.importESModule( + "resource://activity-stream/lib/ActivityStreamPrefs.sys.mjs" ); const { reducers } = ChromeUtils.importESModule( "resource://activity-stream/common/Reducers.sys.mjs" diff --git a/browser/components/newtab/lib/TelemetryFeed.jsm b/browser/components/newtab/lib/TelemetryFeed.jsm index 243d7be6a692..0c5636b8a2cc 100644 --- a/browser/components/newtab/lib/TelemetryFeed.jsm +++ b/browser/components/newtab/lib/TelemetryFeed.jsm @@ -14,8 +14,8 @@ const { MESSAGE_TYPE_HASH: msg } = ChromeUtils.importESModule( const { actionTypes: at, actionUtils: au } = ChromeUtils.importESModule( "resource://activity-stream/common/Actions.sys.mjs" ); -const { Prefs } = ChromeUtils.import( - "resource://activity-stream/lib/ActivityStreamPrefs.jsm" +const { Prefs } = ChromeUtils.importESModule( + "resource://activity-stream/lib/ActivityStreamPrefs.sys.mjs" ); const { classifySite } = ChromeUtils.import( "resource://activity-stream/lib/SiteClassifier.jsm" diff --git a/browser/components/newtab/lib/TopStoriesFeed.jsm b/browser/components/newtab/lib/TopStoriesFeed.jsm index aa51b2a4f8f2..7a1c443f0da1 100644 --- a/browser/components/newtab/lib/TopStoriesFeed.jsm +++ b/browser/components/newtab/lib/TopStoriesFeed.jsm @@ -6,8 +6,8 @@ const { actionTypes: at, actionCreators: ac } = ChromeUtils.importESModule( "resource://activity-stream/common/Actions.sys.mjs" ); -const { Prefs } = ChromeUtils.import( - "resource://activity-stream/lib/ActivityStreamPrefs.jsm" +const { Prefs } = ChromeUtils.importESModule( + "resource://activity-stream/lib/ActivityStreamPrefs.sys.mjs" ); const { shortURL } = ChromeUtils.import( "resource://activity-stream/lib/ShortURL.jsm" diff --git a/browser/components/newtab/test/unit/lib/ActivityStream.test.js b/browser/components/newtab/test/unit/lib/ActivityStream.test.js index 47880d00bc9b..ad88888088da 100644 --- a/browser/components/newtab/test/unit/lib/ActivityStream.test.js +++ b/browser/components/newtab/test/unit/lib/ActivityStream.test.js @@ -4,7 +4,7 @@ import { GlobalOverrider } from "test/unit/utils"; import { DEFAULT_SITES } from "lib/DefaultSites.sys.mjs"; import { AboutPreferences } from "lib/AboutPreferences.jsm"; -import { DefaultPrefs } from "lib/ActivityStreamPrefs.jsm"; +import { DefaultPrefs } from "lib/ActivityStreamPrefs.sys.mjs"; import { NewTabInit } from "lib/NewTabInit.jsm"; import { SectionsFeed } from "lib/SectionsManager.jsm"; import { RecommendationProvider } from "lib/RecommendationProvider.jsm"; diff --git a/browser/components/newtab/test/unit/lib/ActivityStreamPrefs.test.js b/browser/components/newtab/test/unit/lib/ActivityStreamPrefs.test.js index ebc9726defc9..bff1708ef744 100644 --- a/browser/components/newtab/test/unit/lib/ActivityStreamPrefs.test.js +++ b/browser/components/newtab/test/unit/lib/ActivityStreamPrefs.test.js @@ -1,4 +1,4 @@ -import { DefaultPrefs, Prefs } from "lib/ActivityStreamPrefs.jsm"; +import { DefaultPrefs, Prefs } from "lib/ActivityStreamPrefs.sys.mjs"; const TEST_PREF_CONFIG = new Map([ ["foo", { value: true }], diff --git a/tools/esmify/map.json b/tools/esmify/map.json index d83a0b972902..d2bab06fde2b 100644 --- a/tools/esmify/map.json +++ b/tools/esmify/map.json @@ -294,7 +294,6 @@ "resource://activity-stream/lib/AboutPreferences.jsm": "browser/components/newtab/lib/AboutPreferences.jsm", "resource://activity-stream/lib/ActivityStream.jsm": "browser/components/newtab/lib/ActivityStream.jsm", "resource://activity-stream/lib/ActivityStreamMessageChannel.jsm": "browser/components/newtab/lib/ActivityStreamMessageChannel.jsm", - "resource://activity-stream/lib/ActivityStreamPrefs.jsm": "browser/components/newtab/lib/ActivityStreamPrefs.jsm", "resource://activity-stream/lib/ActivityStreamStorage.jsm": "browser/components/newtab/lib/ActivityStreamStorage.jsm", "resource://activity-stream/lib/CFRMessageProvider.jsm": "browser/components/newtab/lib/CFRMessageProvider.jsm", "resource://activity-stream/lib/CFRPageActions.jsm": "browser/components/newtab/lib/CFRPageActions.jsm",