Skip to content

Commit bf4b9bd

Browse files
authored
Update programmatically generated Firefox test run profile for unattended test run mode. (#25200)
Unify profile with emrun.py.
1 parent a13bc7e commit bf4b9bd

File tree

2 files changed

+92
-3
lines changed

2 files changed

+92
-3
lines changed

emrun.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,8 +307,15 @@ def create_emrun_safe_firefox_profile():
307307
user_pref("extensions.getAddons.cache.enabled", false);
308308
// Enable wasm
309309
user_pref("javascript.options.wasm", true);
310-
// Enable SharedArrayBuffer (this profile is for a testing environment, so Spectre/Meltdown don't apply)
310+
// Enable SharedArrayBuffer, and ignore COOP/COEP (this profile is for a testing environment, so Spectre/Meltdown don't apply)
311311
user_pref("javascript.options.shared_memory", true);
312+
user_pref("dom.postMessage.sharedArrayBuffer.bypassCOOP_COEP.insecure.enabled", true);
313+
// Enable OffscreenCanvas support
314+
user_pref("gfx.offscreencanvas.enabled", true);
315+
// Enable Wasm64
316+
user_pref("javascript.options.wasm_memory64", true);
317+
// Do not ask user consent to enable audio playback (0: Allow autoplay for all media)
318+
user_pref("media.autoplay.default", 0);
312319
''')
313320
if emrun_options.private_browsing:
314321
f.write('''

test/firefox_user.js

Lines changed: 84 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,87 @@
1-
user_pref("gfx.offscreencanvas.enabled", true);
1+
// Lift the default max 20 workers limit to something higher to avoid hangs when page needs to spawn a lot of threads.
2+
user_pref("dom.workers.maxPerDomain", 100);
3+
// Always allow opening popups
4+
user_pref("browser.popups.showPopupBlocker", false);
5+
user_pref("dom.disable_open_during_load", false);
6+
// Don't ask user if they want to set Firefox as the default system browser
7+
user_pref("browser.shell.checkDefaultBrowser", false);
8+
user_pref("browser.shell.skipDefaultBrowserCheck", true);
9+
// If automated runs crash, don't resume old tabs on the next run or show safe mode dialogs or anything else extra.
10+
user_pref("browser.sessionstore.resume_from_crash", false);
11+
user_pref("services.sync.prefs.sync.browser.sessionstore.restore_on_demand", false);
12+
user_pref("browser.sessionstore.restore_on_demand", false);
13+
user_pref("browser.sessionstore.max_resumed_crashes", -1);
14+
user_pref("toolkit.startup.max_resumed_crashes", -1);
15+
// Don't show the slow script dialog popup
16+
user_pref("dom.max_script_run_time", 0);
17+
user_pref("dom.max_chrome_script_run_time", 0);
18+
// Don't open a home page at startup
19+
user_pref("startup.homepage_override_url", "about:blank");
20+
user_pref("startup.homepage_welcome_url", "about:blank");
21+
user_pref("browser.startup.homepage", "about:blank");
22+
// Don't try to perform browser (auto)update on the background
23+
user_pref("app.update.auto", false);
24+
user_pref("app.update.enabled", false);
25+
user_pref("app.update.silent", false);
26+
user_pref("app.update.mode", 0);
27+
user_pref("app.update.service.enabled", false);
28+
// Don't check compatibility with add-ons, or (auto)update them
29+
user_pref("extensions.lastAppVersion", '');
30+
user_pref("plugins.hide_infobar_for_outdated_plugin", true);
31+
user_pref("plugins.update.url", '');
32+
// Disable health reporter
33+
user_pref("datareporting.healthreport.service.enabled", false);
34+
// Disable crash reporter
35+
user_pref("toolkit.crashreporter.enabled", false);
36+
// Don't show WhatsNew on first run after every update
37+
user_pref("browser.startup.homepage_override.mstone","ignore");
38+
// Don't show 'know your rights' and a bunch of other nag windows at startup
39+
user_pref("browser.rights.3.shown", true);
40+
user_pref('devtools.devedition.promo.shown', true);
41+
user_pref('extensions.shownSelectionUI', true);
42+
user_pref('browser.newtabpage.introShown', true);
43+
user_pref('browser.download.panel.shown', true);
44+
user_pref('browser.customizemode.tip0.shown', true);
45+
user_pref("browser.toolbarbuttons.introduced.pocket-button", true);
46+
// Don't ask the user if they want to close the browser when there are multiple tabs.
47+
user_pref("browser.tabs.warnOnClose", false);
48+
// Allow the launched script window to close itself, so that we don't need to kill the browser process in order to move on.
49+
user_pref("dom.allow_scripts_to_close_windows", true);
50+
// Set various update timers to a large value in the future in order to not
51+
// trigger a large mass of update HTTP traffic on each Firefox run on the clean profile.
52+
// 2147483647 seconds since Unix epoch is sometime in the year 2038, and this is the max integer accepted by Firefox.
53+
user_pref("app.update.lastUpdateTime.addon-background-update-timer", 2147483647);
54+
user_pref("app.update.lastUpdateTime.background-update-timer", 2147483647);
55+
user_pref("app.update.lastUpdateTime.blocklist-background-update-timer", 2147483647);
56+
user_pref("app.update.lastUpdateTime.browser-cleanup-thumbnails", 2147483647);
57+
user_pref("app.update.lastUpdateTime.experiments-update-timer", 2147483647);
58+
user_pref("app.update.lastUpdateTime.search-engine-update-timer", 2147483647);
59+
user_pref("app.update.lastUpdateTime.xpi-signature-verification", 2147483647);
60+
user_pref("extensions.getAddons.cache.lastUpdate", 2147483647);
61+
user_pref("media.gmp-eme-adobe.lastUpdate", 2147483647);
62+
user_pref("media.gmp-gmpopenh264.lastUpdate", 2147483647);
63+
user_pref("datareporting.healthreport.nextDataSubmissionTime", "2147483647000");
64+
// Sending Firefox Health Report Telemetry data is not desirable, since these are automated runs.
65+
user_pref("datareporting.healthreport.uploadEnabled", false);
66+
user_pref("datareporting.healthreport.service.enabled", false);
67+
user_pref("datareporting.healthreport.service.firstRun", false);
68+
user_pref("toolkit.telemetry.enabled", false);
69+
user_pref("toolkit.telemetry.unified", false);
70+
user_pref("datareporting.policy.dataSubmissionEnabled", false);
71+
user_pref("datareporting.policy.dataSubmissionPolicyBypassNotification", true);
72+
// Allow window.dump() to print directly to console
73+
user_pref("browser.dom.window.dump.enabled", true);
74+
// Disable background add-ons related update & information check pings
75+
user_pref("extensions.update.enabled", false);
76+
user_pref("extensions.getAddons.cache.enabled", false);
77+
// Enable wasm
78+
user_pref("javascript.options.wasm", true);
79+
// Enable SharedArrayBuffer, and ignore COOP/COEP (this profile is for a testing environment, so Spectre/Meltdown don't apply)
280
user_pref("javascript.options.shared_memory", true);
3-
user_pref("javascript.options.wasm_memory64", true);
481
user_pref("dom.postMessage.sharedArrayBuffer.bypassCOOP_COEP.insecure.enabled", true);
82+
// Enable OffscreenCanvas support
83+
user_pref("gfx.offscreencanvas.enabled", true);
84+
// Enable Wasm64
85+
user_pref("javascript.options.wasm_memory64", true);
86+
// Do not ask user consent to enable audio playback (0: Allow autoplay for all media)
587
user_pref("media.autoplay.default", 0);

0 commit comments

Comments
 (0)