Skip to content

Commit 9eee567

Browse files
committed
Fix async script.
1 parent 18a8a34 commit 9eee567

File tree

4 files changed

+30
-37
lines changed

4 files changed

+30
-37
lines changed

experimenter/tests/integration/nimbus/conftest.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ def firefox_options(firefox_options):
114114
"""Set Firefox Options."""
115115
firefox_options.log.level = "trace"
116116
firefox_options.set_preference("remote.system-access-check.enabled", False)
117+
firefox_options.add_argument("-remote-allow-system-access")
117118
return firefox_options
118119

119120

experimenter/tests/integration/nimbus/pages/browser/__init__.py

100644100755
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88

99

1010
class Browser:
11-
def execute_script(self, *args, script=None, context=None):
11+
def execute_async_script(self, *args, script=None, context=None):
1212
if "chrome" in context:
1313
with self.context(self.CONTEXT_CHROME):
14-
return self.execute_script(script, *args)
14+
return self.execute_async_script(script, *args)
1515
else:
16-
return self.execute_script
16+
return self.execute_async_script
1717

1818

1919
class AboutConfig(Page):

experimenter/tests/integration/nimbus/test_desktop_targeting.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def test_check_advanced_targeting(
4545
# Inject filter expression
4646
selenium.get("about:blank")
4747
with filter_expression_path.open() as js:
48-
result = Browser.execute_script(
48+
result = Browser.execute_async_script(
4949
selenium,
5050
targeting,
5151
json.dumps({"experiment": recipe}),
@@ -101,7 +101,7 @@ def test_check_audience_targeting(
101101
# Inject filter expression
102102
selenium.get("about:blank")
103103
with filter_expression_path.open() as js:
104-
result = Browser.execute_script(
104+
result = Browser.execute_async_script(
105105
selenium,
106106
targeting,
107107
json.dumps({"experiment": recipe}),
Lines changed: 24 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,48 @@
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

9-
// See https://bugzilla.mozilla.org/show_bug.cgi?id=1868838 -
10-
// ASRouterTargeting was moved from browser/components/newtab into
11-
// browser/components/asrouter and its import path changed.
128
const { TelemetryEnvironment } = ChromeUtils.importESModule("resource://gre/modules/TelemetryEnvironment.sys.mjs");
139
await TelemetryEnvironment.onInitialized();
1410

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-
}
11+
const { ASRouterTargeting } = ChromeUtils.importESModule("resource:///modules/asrouter/ASRouterTargeting.sys.mjs");
2612
const { ExperimentAPI } = ChromeUtils.importESModule("resource://nimbus/ExperimentAPI.sys.mjs");
27-
const TargetingContext = ChromeUtils.importESModule("resource://messaging-system/targeting/Targeting.sys.mjs");
13+
const { TargetingContext } = ChromeUtils.importESModule("resource://messaging-system/targeting/Targeting.sys.mjs");
2814

29-
const _experiment = JSON.parse(arguments[1]);
30-
ExperimentAPI.ready();
15+
const _experiment = JSON.parse(recipe);
16+
await ExperimentAPI.ready();
3117

32-
const context = TargetingContext.TargetingContext.combineContexts(
18+
const context = TargetingContext.combineContexts(
3319
_experiment,
3420
{
3521
defaultProfile: {},
3622
attributionData: {},
3723
isMSIX: {},
3824
isDefaultHandler: {},
3925
defaultPDFHandler: {}
40-
}, // Workaround for supporting background tasks
26+
},
4127
ExperimentAPI._manager.createTargetingContext(),
42-
ASRouterTargeting.ASRouterTargeting.Environment
28+
ASRouterTargeting.Environment
4329
);
44-
const targetingContext = new TargetingContext.TargetingContext(context);
45-
let result = false;
30+
const targetingContext = new TargetingContext(context);
4631
try {
47-
result = await targetingContext.evalWithDefault(arguments[0]) !== undefined;
32+
const evalResult = await targetingContext.evalWithDefault(targetingString);
33+
return evalResult !== undefined;
4834
} catch (err) {
49-
result = null;
35+
return null;
5036
}
51-
return result;
5237
}
5338

54-
let results = remoteSettings(arguments);
39+
const [targetingString, recipe] = arguments;
40+
const callback = arguments[arguments.length - 1]
5541

56-
return results;
42+
remoteSettings(targetingString, recipe)
43+
.then(result => {
44+
callback(result);
45+
})
46+
.catch(err => {
47+
callback(null);
48+
});

0 commit comments

Comments
 (0)