Skip to content

Commit 93fe215

Browse files
committed
Fix async script.
1 parent 18a8a34 commit 93fe215

File tree

1 file changed

+18
-26
lines changed

1 file changed

+18
-26
lines changed
Lines changed: 18 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,23 @@
1-
async function remoteSettings(arguments) {
2-
1+
async function remoteSettings(targetingString, recipe) {
32
/*
4-
Arguments contains 2 items.
5-
arguments[0] - the JEXL targeting string
6-
arguments[1] - the experiment recipe
3+
Arguments contains 2 items.
4+
arguments[0] - the JEXL targeting string
5+
arguments[1] - the experiment recipe
76
*/
87

98
// See https://bugzilla.mozilla.org/show_bug.cgi?id=1868838 -
109
// ASRouterTargeting was moved from browser/components/newtab into
1110
// browser/components/asrouter and its import path changed.
11+
12+
1213
const { TelemetryEnvironment } = ChromeUtils.importESModule("resource://gre/modules/TelemetryEnvironment.sys.mjs");
1314
await TelemetryEnvironment.onInitialized();
1415

15-
let ASRouterTargeting;
16-
17-
try {
18-
ASRouterTargeting = ChromeUtils.importESModule("resource:///modules/asrouter/ASRouterTargeting.sys.mjs");
19-
} catch (ex) {
20-
if (ex.result === Cr.NS_ERROR_FILE_NOT_FOUND) {
21-
ASRouterTargeting = ChromeUtils.importESModule("resource://activity-stream/lib/ASRouterTargeting.sys.mjs");
22-
} else {
23-
throw ex;
24-
}
25-
}
26-
const { ExperimentAPI } = ChromeUtils.importESModule("resource://nimbus/ExperimentAPI.sys.mjs");
16+
const ASRouterTargeting = ChromeUtils.importESModule("resource:///modules/asrouter/ASRouterTargeting.sys.mjs"); const { ExperimentAPI } = ChromeUtils.importESModule("resource://nimbus/ExperimentAPI.sys.mjs");
2717
const TargetingContext = ChromeUtils.importESModule("resource://messaging-system/targeting/Targeting.sys.mjs");
2818

29-
const _experiment = JSON.parse(arguments[1]);
30-
ExperimentAPI.ready();
19+
const _experiment = JSON.parse(recipe);
20+
await ExperimentAPI.ready();
3121

3222
const context = TargetingContext.TargetingContext.combineContexts(
3323
_experiment,
@@ -37,20 +27,22 @@ async function remoteSettings(arguments) {
3727
isMSIX: {},
3828
isDefaultHandler: {},
3929
defaultPDFHandler: {}
40-
}, // Workaround for supporting background tasks
30+
},
4131
ExperimentAPI._manager.createTargetingContext(),
4232
ASRouterTargeting.ASRouterTargeting.Environment
4333
);
34+
4435
const targetingContext = new TargetingContext.TargetingContext(context);
45-
let result = false;
4636
try {
47-
result = await targetingContext.evalWithDefault(arguments[0]) !== undefined;
37+
const evalResult = await targetingContext.evalWithDefault(targetingString);
38+
return evalResult !== undefined;
4839
} catch (err) {
49-
result = null;
40+
return null;
5041
}
51-
return result;
5242
}
5343

54-
let results = remoteSettings(arguments);
44+
// Get the Selenium callback
45+
const [targetingString, recipe] = arguments;
46+
const callback = arguments[arguments.length - 1]
5547

56-
return results;
48+
remoteSettings(targetingString, recipe).then(callback).catch(() => callback(null));

0 commit comments

Comments
 (0)