mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-06 19:29:24 +02:00
This commit does several things:
1. It configures a new Nimbus feature and corresponding message group
`backgroundTaskMessage`.
2. It configures `Firefox Messaging Experiments` to use the new
Nimbus feature in background tasks. The existing Remote Settings
collection `nimbus-desktop-experiments` continues to be used.
These configurations are achieved by setting preferences in
`backgroundtasks_browser.js`, which is applied on top of
`firefox.js` prefs by the preference service. These preferences
apply to every background task.
3. It implements functions for enabling Nimbus and the Firefox
Messaging System (and Messaging Experiments) that can be used by
arbitrary background tasks.
It is assumed (but not enforced here) that such tasks will use
non-ephemeral (persistent) profiles, so that Remote Settings
incremental sync, Nimbus bucketing, and Messaging System message
limits, function as expected.
4. It adds a new `message` background task specifically for testing
background task messages. Invoke the testing task with command
lines like `firefox --backgroundtask message ...`.
To ease testing, the framework accepts `--url about:studies?...`
arguments from the Experimenter Web UI to explicitly opt-in to
specific experiment branches.
This task is complicated because it is intended both for QA to
manually invoke, but also to be used by automated tests.
Eventually the existing `backgroundupdate` task will use the new
functions, just as the testing `message` task does.
Differential Revision: https://phabricator.services.mozilla.com/D150521
43 lines
1.9 KiB
JavaScript
43 lines
1.9 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* 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/. */
|
|
|
|
// These preferences override Gecko preferences in `greprefs.js`. Use
|
|
// `backgroundtasks_browser.js` to override browser/-specific preferences in
|
|
// `firefox.js`.
|
|
|
|
pref("browser.dom.window.dump.enabled", true);
|
|
pref("devtools.console.stdout.chrome", true);
|
|
|
|
pref("browser.cache.offline.enable", false);
|
|
pref("browser.cache.disk.enable", false);
|
|
pref("permissions.memory_only", true);
|
|
|
|
// For testing only: used to test that backgroundtask-specific prefs are
|
|
// processed. This just needs to be an unusual integer in the range 0..127.
|
|
pref("test.backgroundtask_specific_pref.exitCode", 79);
|
|
|
|
// Enable the browser toolbox by default. The browser toolbox is available only
|
|
// when launching the background task with `--jsdebugger` on the command line,
|
|
// and an attacker who can launch background task processes with arbitrary
|
|
// parameters and execution environment can already access this functionality,
|
|
// so there's no need to restrict access via preferences.
|
|
pref("devtools.chrome.enabled", true);
|
|
pref("devtools.debugger.remote-enabled", true);
|
|
pref("devtools.debugger.prompt-connection", false);
|
|
|
|
// Background tasks do not persist the cookie database: they should
|
|
// not be using cookies for network requests.
|
|
pref("network.cookie.noPersistentStorage", true);
|
|
|
|
// Background tasks don't need to worry about perceived performance. We disable
|
|
// fast shutdown to reduce the risk of open file handles preventing cleanup of
|
|
// the ephemeral profile directory.
|
|
pref("toolkit.shutdown.fastShutdownStage", 0);
|
|
|
|
// Avoid a race between initializing font lists and rapid shutdown,
|
|
// particularly on macOS. Compare Bug 1777332.
|
|
pref("gfx.font-list-omt.enabled", false);
|
|
|
|
// Prevent key#.db and cert#.db from being created in the ephemeral profile.
|
|
pref("security.nocertdb", true);
|