Bug 1868194 - Convert TelemetryFeed.jsm to an ESM. r=thecount

Differential Revision: https://phabricator.services.mozilla.com/D197972
This commit is contained in:
Mike Conley
2024-01-22 14:22:34 +00:00
parent 4224a8301a
commit 568af18b86
9 changed files with 32 additions and 42 deletions

View File

@@ -101,9 +101,9 @@ module.exports = function (config) {
branches: 33,
},
/**
* TelemetryFeed.jsm is tested via an xpcshell test
* TelemetryFeed.sys.mjs is tested via an xpcshell test
*/
"lib/TelemetryFeed.jsm": {
"lib/TelemetryFeed.sys.mjs": {
statements: 10,
lines: 10,
functions: 9,

View File

@@ -10,8 +10,8 @@ const EXPORTED_SYMBOLS = ["ASRouterDefaultConfig"];
const { ASRouter } = ChromeUtils.import(
"resource://activity-stream/lib/ASRouter.jsm"
);
const { TelemetryFeed } = ChromeUtils.import(
"resource://activity-stream/lib/TelemetryFeed.jsm"
const { TelemetryFeed } = ChromeUtils.importESModule(
"resource://activity-stream/lib/TelemetryFeed.sys.mjs"
);
const { ASRouterParentProcessMessageHandler } = ChromeUtils.import(
"resource://activity-stream/lib/ASRouterParentProcessMessageHandler.jsm"

View File

@@ -14,6 +14,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
DefaultPrefs: "resource://activity-stream/lib/ActivityStreamPrefs.sys.mjs",
NimbusFeatures: "resource://nimbus/ExperimentAPI.sys.mjs",
Region: "resource://gre/modules/Region.sys.mjs",
TelemetryFeed: "resource://activity-stream/lib/TelemetryFeed.sys.mjs",
});
// NB: Eagerly load modules that will be loaded/constructed/initialized in the
@@ -61,11 +62,6 @@ ChromeUtils.defineModuleGetter(
"SystemTickFeed",
"resource://activity-stream/lib/SystemTickFeed.jsm"
);
ChromeUtils.defineModuleGetter(
lazy,
"TelemetryFeed",
"resource://activity-stream/lib/TelemetryFeed.jsm"
);
ChromeUtils.defineModuleGetter(
lazy,
"FaviconFeed",

View File

@@ -2,21 +2,24 @@
* 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
// XPCOMUtils, 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"
);
const { MESSAGE_TYPE_HASH: msg } = ChromeUtils.importESModule(
"resource://activity-stream/common/ActorConstants.sys.mjs"
);
const { actionTypes: at, actionUtils: au } = ChromeUtils.importESModule(
"resource://activity-stream/common/Actions.sys.mjs"
);
const { Prefs } = ChromeUtils.importESModule(
"resource://activity-stream/lib/ActivityStreamPrefs.sys.mjs"
);
import { MESSAGE_TYPE_HASH as msg } from "resource://activity-stream/common/ActorConstants.sys.mjs";
import {
actionTypes as at,
actionUtils as au,
} from "resource://activity-stream/common/Actions.sys.mjs";
import { Prefs } from "resource://activity-stream/lib/ActivityStreamPrefs.sys.mjs";
const { classifySite } = ChromeUtils.import(
"resource://activity-stream/lib/SiteClassifier.jsm"
);
@@ -56,7 +59,7 @@ XPCOMUtils.defineLazyPreferenceGetter(
);
// This is a mapping table between the user preferences and its encoding code
const USER_PREFS_ENCODING = {
export const USER_PREFS_ENCODING = {
showSearch: 1 << 0,
"feeds.topsites": 1 << 1,
"feeds.section.topstories": 1 << 2,
@@ -67,9 +70,9 @@ const USER_PREFS_ENCODING = {
showSponsoredTopSites: 1 << 8,
};
const PREF_IMPRESSION_ID = "impressionId";
const TELEMETRY_PREF = "telemetry";
const EVENTS_TELEMETRY_PREF = "telemetry.ut.events";
export const PREF_IMPRESSION_ID = "impressionId";
export const TELEMETRY_PREF = "telemetry";
export const EVENTS_TELEMETRY_PREF = "telemetry.ut.events";
// Used as the missing value for timestamps in the session ping
const TIMESTAMP_MISSING_VALUE = -1;
@@ -112,7 +115,7 @@ const NEWTAB_PING_PREFS = {
};
const TOP_SITES_BLOCKED_SPONSORS_PREF = "browser.topsites.blockedSponsors";
class TelemetryFeed {
export class TelemetryFeed {
constructor() {
this.sessions = new Map();
this._prefs = new Prefs();
@@ -1115,11 +1118,3 @@ class TelemetryFeed {
// TODO: Send any unfinished sessions
}
}
const EXPORTED_SYMBOLS = [
"TelemetryFeed",
"USER_PREFS_ENCODING",
"PREF_IMPRESSION_ID",
"TELEMETRY_PREF",
"EVENTS_TELEMETRY_PREF",
];

View File

@@ -9,8 +9,8 @@ const { CFRMessageProvider } = ChromeUtils.importESModule(
"resource://activity-stream/lib/CFRMessageProvider.sys.mjs"
);
const { TelemetryFeed } = ChromeUtils.import(
"resource://activity-stream/lib/TelemetryFeed.jsm"
const { TelemetryFeed } = ChromeUtils.importESModule(
"resource://activity-stream/lib/TelemetryFeed.sys.mjs"
);
const createDummyRecommendation = ({

View File

@@ -16,8 +16,8 @@ const { ExperimentFakes, ExperimentTestUtils } = ChromeUtils.importESModule(
const { ExperimentManager } = ChromeUtils.importESModule(
"resource://nimbus/lib/ExperimentManager.sys.mjs"
);
const { TelemetryFeed } = ChromeUtils.import(
"resource://activity-stream/lib/TelemetryFeed.jsm"
const { TelemetryFeed } = ChromeUtils.importESModule(
"resource://activity-stream/lib/TelemetryFeed.sys.mjs"
);
const { TelemetryTestUtils } = ChromeUtils.importESModule(
"resource://testing-common/TelemetryTestUtils.sys.mjs"

View File

@@ -11,7 +11,7 @@ import { RecommendationProvider } from "lib/RecommendationProvider.jsm";
import { PlacesFeed } from "lib/PlacesFeed.jsm";
import { PrefsFeed } from "lib/PrefsFeed.jsm";
import { SystemTickFeed } from "lib/SystemTickFeed.jsm";
import { TelemetryFeed } from "lib/TelemetryFeed.jsm";
import { TelemetryFeed } from "lib/TelemetryFeed.sys.mjs";
import { FaviconFeed } from "lib/FaviconFeed.jsm";
import { TopSitesFeed } from "lib/TopSitesFeed.jsm";
import { TopStoriesFeed } from "lib/TopStoriesFeed.jsm";

View File

@@ -15,6 +15,10 @@ const { updateAppInfo } = ChromeUtils.importESModule(
"resource://testing-common/AppInfo.sys.mjs"
);
const { TelemetryFeed, USER_PREFS_ENCODING } = ChromeUtils.importESModule(
"resource://activity-stream/lib/TelemetryFeed.sys.mjs"
);
ChromeUtils.defineESModuleGetters(this, {
AboutNewTab: "resource:///modules/AboutNewTab.sys.mjs",
ExperimentAPI: "resource://nimbus/ExperimentAPI.sys.mjs",
@@ -31,10 +35,6 @@ ChromeUtils.defineESModuleGetters(this, {
UTEventReporting: "resource://activity-stream/lib/UTEventReporting.sys.mjs",
});
const { TelemetryFeed, USER_PREFS_ENCODING } = ChromeUtils.import(
"resource://activity-stream/lib/TelemetryFeed.jsm"
);
const { AboutWelcomeTelemetry } = ChromeUtils.import(
"resource:///modules/aboutwelcome/AboutWelcomeTelemetry.jsm"
);