Skip to content

Commit da55a10

Browse files
Use lazy imports in nimbus.js
We have some lazy imports and some eager imports. We should probably be using lazy imports for everything.
1 parent d98b2e2 commit da55a10

File tree

1 file changed

+33
-33
lines changed

1 file changed

+33
-33
lines changed

src/apis/nimbus.js

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -9,39 +9,32 @@ const lazy = {};
99

1010
ChromeUtils.defineESModuleGetters(lazy, {
1111
ASRouterTargeting: "resource:///modules/asrouter/ASRouterTargeting.sys.mjs",
12+
AppConstants: "resource://gre/modules/AppConstants.sys.mjs",
1213
ClientEnvironment: "resource://normandy/lib/ClientEnvironment.sys.mjs",
1314
ClientEnvironmentBase:
1415
"resource://gre/modules/components-utils/ClientEnvironment.sys.mjs",
15-
TelemetryEnvironment: "resource://gre/modules/TelemetryEnvironment.sys.mjs",
16+
ExperimentAPI: "resource://nimbus/ExperimentAPI.sys.mjs",
17+
ExperimentManager: "resource://nimbus/lib/ExperimentManager.sys.mjs",
1618
FilterExpressions:
1719
"resource://gre/modules/components-utils/FilterExpressions.sys.mjs",
20+
NimbusFeatures: "resource://nimbus/ExperimentAPI.sys.mjs",
21+
RemoteSettingsExperimentLoader:
22+
"resource://nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs",
23+
TelemetryEnvironment: "resource://gre/modules/TelemetryEnvironment.sys.mjs",
1824
});
1925

20-
const { ExperimentManager } = ChromeUtils.importESModule(
21-
"resource://nimbus/lib/ExperimentManager.sys.mjs",
22-
);
23-
const { ExperimentAPI, NimbusFeatures } = ChromeUtils.importESModule(
24-
"resource://nimbus/ExperimentAPI.sys.mjs",
25-
);
26-
const { AppConstants } = ChromeUtils.importESModule(
27-
"resource://gre/modules/AppConstants.sys.mjs",
28-
);
29-
const { RemoteSettingsExperimentLoader } = ChromeUtils.importESModule(
30-
"resource://nimbus/lib/RemoteSettingsExperimentLoader.sys.mjs",
31-
);
32-
3326
var nimbus = class extends ExtensionAPI {
3427
getAPI() {
3528
return {
3629
experiments: {
3730
nimbus: {
3831
async enrollInExperiment(jsonData, forceEnroll) {
3932
try {
40-
const slugExistsInStore = ExperimentManager.store
33+
const slugExistsInStore = lazy.ExperimentManager.store
4134
.getAll()
4235
.some((experiment) => experiment.slug === jsonData.slug);
4336
const activeEnrollment =
44-
ExperimentManager.store
37+
lazy.ExperimentManager.store
4538
.getAll()
4639
.find(
4740
(experiment) =>
@@ -63,7 +56,7 @@ var nimbus = class extends ExtensionAPI {
6356
}
6457
}
6558

66-
const result = await ExperimentManager.enroll(
59+
const result = await lazy.ExperimentManager.enroll(
6760
jsonData,
6861
"nimbus-devtools",
6962
);
@@ -111,11 +104,11 @@ var nimbus = class extends ExtensionAPI {
111104
"userFacingDescription": "Testing the feature with feature ID: ${featureId}."
112105
}`);
113106

114-
const slugExistsInStore = ExperimentManager.store
107+
const slugExistsInStore = lazy.ExperimentManager.store
115108
.getAll()
116109
.some((experiment) => experiment.slug === recipe.slug);
117110
const activeEnrollment =
118-
ExperimentManager.store
111+
lazy.ExperimentManager.store
119112
.getAll()
120113
.find(
121114
(experiment) =>
@@ -138,7 +131,7 @@ var nimbus = class extends ExtensionAPI {
138131
this.deleteInactiveEnrollment(slug);
139132
}
140133
}
141-
const result = await ExperimentManager.enroll(
134+
const result = await lazy.ExperimentManager.enroll(
142135
recipe,
143136
"nimbus-devtools",
144137
);
@@ -151,8 +144,8 @@ var nimbus = class extends ExtensionAPI {
151144

152145
async getFeatureConfigs() {
153146
try {
154-
await ExperimentAPI.ready();
155-
return Object.keys(NimbusFeatures).sort();
147+
await lazy.ExperimentAPI.ready();
148+
return Object.keys(lazy.NimbusFeatures).sort();
156149
} catch (error) {
157150
console.error(error);
158151
throw new ExtensionError(String(error));
@@ -247,7 +240,7 @@ var nimbus = class extends ExtensionAPI {
247240
lazy.ASRouterTargeting.Environment,
248241
);
249242
const localContext = await resolve(
250-
ExperimentManager.createTargetingContext(),
243+
lazy.ExperimentManager.createTargetingContext(),
251244
);
252245

253246
const targetingParameters = {
@@ -261,11 +254,11 @@ var nimbus = class extends ExtensionAPI {
261254
lazy.ASRouterTargeting.Environment.localeLanguageCode,
262255
region: lazy.ASRouterTargeting.Environment.region,
263256
userId: lazy.ClientEnvironment.userId,
264-
version: AppConstants.MOZ_APP_VERSION_DISPLAY,
257+
version: lazy.AppConstants.MOZ_APP_VERSION_DISPLAY,
265258
channel:
266259
lazy.TelemetryEnvironment.currentEnvironment.settings.update
267260
.channel,
268-
platform: AppConstants.platform,
261+
platform: lazy.AppConstants.platform,
269262
os: lazy.ClientEnvironmentBase.os,
270263
};
271264

@@ -274,9 +267,12 @@ var nimbus = class extends ExtensionAPI {
274267

275268
async updateRecipes(forceSync) {
276269
try {
277-
await RemoteSettingsExperimentLoader.updateRecipes("devtools", {
278-
forceSync,
279-
});
270+
await lazy.RemoteSettingsExperimentLoader.updateRecipes(
271+
"devtools",
272+
{
273+
forceSync,
274+
},
275+
);
280276
} catch (error) {
281277
console.error(error);
282278
throw new ExtensionError(String(error));
@@ -288,7 +284,7 @@ var nimbus = class extends ExtensionAPI {
288284
const branch = recipe?.branches?.find(
289285
(br) => br.slug === branchSlug,
290286
);
291-
const result = await ExperimentManager.forceEnroll(
287+
const result = await lazy.ExperimentManager.forceEnroll(
292288
recipe,
293289
branch,
294290
);
@@ -301,7 +297,7 @@ var nimbus = class extends ExtensionAPI {
301297

302298
async getExperimentStore() {
303299
try {
304-
return await ExperimentManager.store.getAll();
300+
return await lazy.ExperimentManager.store.getAll();
305301
} catch (error) {
306302
console.error(error);
307303
throw new ExtensionError(String(error));
@@ -310,7 +306,10 @@ var nimbus = class extends ExtensionAPI {
310306

311307
async unenroll(slug) {
312308
try {
313-
return await ExperimentManager.unenroll(slug, "nimbus-devtools");
309+
return await lazy.ExperimentManager.unenroll(
310+
slug,
311+
"nimbus-devtools",
312+
);
314313
} catch (error) {
315314
console.error(error);
316315
throw new ExtensionError(String(error));
@@ -319,7 +318,7 @@ var nimbus = class extends ExtensionAPI {
319318

320319
async deleteInactiveEnrollment(slug) {
321320
try {
322-
return await ExperimentManager.store._deleteForTests(slug);
321+
return await lazy.ExperimentManager.store._deleteForTests(slug);
323322
} catch (error) {
324323
console.error(error);
325324
throw new ExtensionError(String(error));
@@ -328,7 +327,8 @@ var nimbus = class extends ExtensionAPI {
328327

329328
async generateTestIds(recipe, branchSlug) {
330329
try {
331-
const result = await ExperimentManager.generateTestIds(recipe);
330+
const result =
331+
await lazy.ExperimentManager.generateTestIds(recipe);
332332
return result[branchSlug];
333333
} catch (error) {
334334
console.error(error);

0 commit comments

Comments
 (0)