From f33bac20829c25cfe887cafa4461a43c835de1a5 Mon Sep 17 00:00:00 2001 From: Joel Maher Date: Tue, 10 May 2022 00:41:01 +0000 Subject: [PATCH] Bug 1762991 - switch to --disable-fission and fission by default. r=gbrown,webdriver-reviewers,whimboo updated patch for android_hardware_unittests.py, asking for a review- please look at the interdiff to see recent changes. Differential Revision: https://phabricator.services.mozilla.com/D144985 --- layout/tools/reftest/mach_commands.py | 2 +- layout/tools/reftest/reftestcommandline.py | 8 ++-- layout/tools/reftest/runreftest.py | 13 +++--- remote/mach_commands.py | 13 +++--- taskcluster/ci/source-test/remote.yml | 8 ++-- taskcluster/ci/test/compiled.yml | 35 ++++++++++------ taskcluster/ci/test/misc.yml | 14 ++++++- taskcluster/ci/test/mochitest.yml | 9 ++-- taskcluster/ci/test/raptor.yml | 11 ++--- taskcluster/ci/test/reftest.yml | 26 +++++------- taskcluster/ci/test/variants.yml | 24 ++++++----- taskcluster/ci/test/xpcshell.yml | 12 ++---- .../gecko_taskgraph/transforms/test/__init__.py | 1 - .../gecko_taskgraph/transforms/test/fission.py | 49 ---------------------- .../harness/marionette_harness/runner/base.py | 10 +++++ testing/mochitest/mach_commands.py | 7 +++- testing/mochitest/mach_test_package_commands.py | 3 ++ testing/mochitest/mochitest_options.py | 15 +++---- testing/mochitest/runjunit.py | 16 +++++-- testing/mochitest/runtests.py | 8 ++-- .../scripts/android_emulator_unittest.py | 14 ++++--- .../scripts/android_hardware_unittest.py | 12 +++--- testing/mozharness/scripts/desktop_unittest.py | 13 ++++++ testing/mozharness/scripts/firefox_ui_tests.py | 12 ++++++ testing/mozharness/scripts/marionette.py | 13 ++++++ .../scripts/telemetry/telemetry_client.py | 12 ++++++ testing/mozharness/scripts/web_platform_tests.py | 18 +++++--- .../tools/wptrunner/wptrunner/browsers/firefox.py | 33 +++++++-------- .../wptrunner/browsers/firefox_android.py | 18 +++++--- .../tools/wptrunner/wptrunner/wptcommandline.py | 5 +-- testing/xpcshell/remotexpcshelltests.py | 8 ++++ testing/xpcshell/runxpcshelltests.py | 11 ++++- testing/xpcshell/xpcshellcommandline.py | 7 ++++ .../marionette/harness/telemetry_harness/runner.py | 4 ++ 34 files changed, 262 insertions(+), 202 deletions(-) delete mode 100644 taskcluster/gecko_taskgraph/transforms/test/fission.py diff --git a/layout/tools/reftest/mach_commands.py b/layout/tools/reftest/mach_commands.py index 80175034d831..baba9a940d0c 100644 --- a/layout/tools/reftest/mach_commands.py +++ b/layout/tools/reftest/mach_commands.py @@ -170,7 +170,7 @@ class ReftestRunner(MozbuildObject): # Disable fission until geckoview supports fission by default. # Need fission on Android? Use '--setpref fission.autostart=true' - args.fission = False + args.disableFission = True # A symlink and some path manipulations are required so that test # manifests can be found both locally and remotely (via a url) diff --git a/layout/tools/reftest/reftestcommandline.py b/layout/tools/reftest/reftestcommandline.py index a224beebe397..a6aac3df791b 100644 --- a/layout/tools/reftest/reftestcommandline.py +++ b/layout/tools/reftest/reftestcommandline.py @@ -250,9 +250,9 @@ class ReftestArgumentsParser(argparse.ArgumentParser): self.add_argument( "--disable-fission", - action="store_false", - default=True, - dest="fission", + action="store_true", + default=False, + dest="disableFission", help="Run tests with fission (site isolation) disabled.", ) @@ -415,7 +415,7 @@ class ReftestArgumentsParser(argparse.ArgumentParser): if not 1 <= options.thisChunk <= options.totalChunks: self.error("thisChunk must be between 1 and totalChunks") - if options.fission and not options.e10s: + if not options.disableFission and not options.e10s: self.error("Fission is not supported without e10s.") if options.logFile: diff --git a/layout/tools/reftest/runreftest.py b/layout/tools/reftest/runreftest.py index 05ddcca3cc88..43393dbd8c5b 100644 --- a/layout/tools/reftest/runreftest.py +++ b/layout/tools/reftest/runreftest.py @@ -475,15 +475,14 @@ class RefTest(object): elif manifests: prefs["reftest.manifests"] = json.dumps(manifests) - # Unconditionally update the e10s pref. - if options.e10s: - prefs["browser.tabs.remote.autostart"] = True - else: + # Unconditionally update the e10s pref, default True + prefs["browser.tabs.remote.autostart"] = True + if not options.e10s: prefs["browser.tabs.remote.autostart"] = False - if options.fission: - prefs["fission.autostart"] = True - else: + # default fission to True + prefs["fission.autostart"] = True + if options.disableFission: prefs["fission.autostart"] = False if not self.run_by_manifest: diff --git a/remote/mach_commands.py b/remote/mach_commands.py index c8c30ed54ef8..465363530489 100644 --- a/remote/mach_commands.py +++ b/remote/mach_commands.py @@ -521,9 +521,11 @@ def create_parser_puppeteer(): help="Flag that indicates that tests run in a CI environment.", ) p.add_argument( - "--enable-fission", + "--disable-fission", action="store_true", - help="Enable Fission (site isolation) in Gecko.", + default=False, + dest="disable_fission", + help="Disable Fission (site isolation) in Gecko.", ) p.add_argument( "--enable-webrender", @@ -597,7 +599,7 @@ def puppeteer_test( command_context, binary=None, ci=False, - enable_fission=False, + disable_fission=False, enable_webrender=False, headless=False, extra_prefs=None, @@ -645,9 +647,8 @@ def puppeteer_test( exit(EX_USAGE) options[kv[0]] = kv[1].strip() - if enable_fission: - prefs.update({"fission.autostart": True}) - else: + prefs.update({"fission.autostart": True}) + if disable_fission: prefs.update({"fission.autostart": False}) if verbosity == 1: diff --git a/taskcluster/ci/source-test/remote.yml b/taskcluster/ci/source-test/remote.yml index ec881a3286dc..5cb3c9b339a3 100644 --- a/taskcluster/ci/source-test/remote.yml +++ b/taskcluster/ci/source-test/remote.yml @@ -35,16 +35,16 @@ job-defaults: optimization: skip-unless-expanded: null -puppeteer: +puppeteer-no-fission: description: Puppeteer tests against Firefox CDP-based remote protocol treeherder: - symbol: remote(pup) + symbol: remote(pup-nofis) run: # Bug 1651542: Use screenshot feature to warm-up the font cache before the actual test using: run-task command: > cd $GECKO_PATH/ && $MOZ_FETCHES_DIR/firefox/firefox --screenshot http://example.org && - ./mach puppeteer-test --ci -vv --binary $MOZ_FETCHES_DIR/firefox/firefox --headless --write-results /builds/worker/results.json --log-tbpl - --log-errorsummary /builds/worker/pup_errorsummary.json --log-raw /builds/worker/pup_raw.log + ./mach puppeteer-test --ci -vv --binary $MOZ_FETCHES_DIR/firefox/firefox --headless --disable-fission --write-results /builds/worker/results.json --log-tbpl - --log-errorsummary /builds/worker/pup_errorsummary.json --log-raw /builds/worker/pup_raw.log puppeteer-fis: description: Puppeteer tests against Firefox CDP-based remote protocol (Fission) @@ -55,4 +55,4 @@ puppeteer-fis: command: > cd $GECKO_PATH/ && $MOZ_FETCHES_DIR/firefox/firefox --screenshot http://example.org && - ./mach puppeteer-test --ci -vv --binary $MOZ_FETCHES_DIR/firefox/firefox --headless --enable-fission --write-results /builds/worker/results.json --log-tbpl - --log-errorsummary /builds/worker/pup_errorsummary.json --log-raw /builds/worker/pup_raw.log + ./mach puppeteer-test --ci -vv --binary $MOZ_FETCHES_DIR/firefox/firefox --headless --write-results /builds/worker/results.json --log-tbpl - --log-errorsummary /builds/worker/pup_errorsummary.json --log-raw /builds/worker/pup_raw.log diff --git a/taskcluster/ci/test/compiled.yml b/taskcluster/ci/test/compiled.yml index 16694a8f71e4..5aff9c428701 100644 --- a/taskcluster/ci/test/compiled.yml +++ b/taskcluster/ci/test/compiled.yml @@ -5,7 +5,8 @@ job-defaults: test-manifest-loader: null # don't load tests in the taskgraph run-without-variant: false - variants: ["1proc"] + variants: + - 1proc virtualization: virtual mozharness: script: @@ -39,7 +40,10 @@ cppunit: android-em-7.*: geckoview-test_runner.apk default: null tier: default - run-on-projects: built-projects + run-on-projects: + by-variant: + 1proc: built-projects + default: [] gtest: description: "GTests run" @@ -47,12 +51,16 @@ gtest: treeherder-symbol: GTest instance-size: xlarge run-on-projects: - by-test-platform: - .*-devedition.*/.*: [] # don't run on devedition - linux1804-32-qr/debug: ['mozilla-central'] # try and m-c - linux1804-32-qr/opt: [] # try only, shippable on m-c - linux1804-32-shippable-qr/opt: ['mozilla-central'] # try and m-c - default: built-projects + by-variant: + 1proc: + by-test-platform: + .*android.*: built-projects + .*-devedition.*/.*: [] # don't run on devedition + linux1804-32-qr/opt: [] # try only, shippable on m-c + linux1804-32-qr/debug: ['mozilla-central'] # try and m-c + linux1804-32-shippable-qr/opt: ['mozilla-central'] # try and m-c + default: built-projects + default: [] target: by-test-platform: android-em-7.*: geckoview-test_runner.apk @@ -64,10 +72,13 @@ jittest: suite: jittest treeherder-symbol: Jit run-on-projects: - by-test-platform: - android-hw-.*-aarch64-qr/debug: ['mozilla-central', 'release'] - android-hw-.*-arm7-qr/debug: ['mozilla-central', 'release'] - default: built-projects + by-variant: + 1proc: + by-test-platform: + android-hw-.*-aarch64-qr/debug: ['mozilla-central', 'release'] + android-hw-.*-arm7-qr/debug: ['mozilla-central', 'release'] + default: built-projects + default: [] chunks: by-test-platform: windows.*: 1 diff --git a/taskcluster/ci/test/misc.yml b/taskcluster/ci/test/misc.yml index bfb4099dc4d6..83101b86b0e4 100644 --- a/taskcluster/ci/test/misc.yml +++ b/taskcluster/ci/test/misc.yml @@ -63,7 +63,9 @@ test-verify: loopback-video: true max-run-time: 10800 allow-software-gl-layers: false - variants: ["fission"] + variants: + - fission + - no-fission run-without-variant: false run-on-projects: by-variant: @@ -74,7 +76,17 @@ test-verify: # we prefer -qr platforms with fission, no need to run on both (?!.*(-ccov|-asan|-shippable))(?!.*-qr).*: [] # do not run on mozilla-central, beta or release: usually just confirms earlier results + android.*: [] default: ['integration'] + no-fission: + by-test-platform: + # do not run on ccov or asan or shippable + .*(-ccov|-asan|-shippable).*: [] + # we prefer -qr platforms with fission, no need to run on both + (?!.*(-ccov|-asan|-shippable))(?!.*-qr).*: [] + # do not run on mozilla-central, beta or release: usually just confirms earlier results + android.*: ['integration'] + default: [] default: [] built-projects-only: true target: diff --git a/taskcluster/ci/test/mochitest.yml b/taskcluster/ci/test/mochitest.yml index 2fbbb4555064..5508672b4dfa 100644 --- a/taskcluster/ci/test/mochitest.yml +++ b/taskcluster/ci/test/mochitest.yml @@ -262,7 +262,6 @@ mochitest-browser-chrome: default: [] # we don't run linux opt/debug/asan only with M-swr, now with fission this isn't needed tier: by-variant: - fission(-xorigin)?: default webrender-sw: by-test-platform: linux.*64(-asan|-shippable)?-qr/(opt|debug): 1 @@ -376,7 +375,8 @@ browser-screenshots: treeherder-symbol: M(ss) loopback-video: true test-manifest-loader: null # don't load tests in the taskgraph - variants: ["fission"] + run-without-variant: false + variants: ["fission", "no-fission"] run-on-projects: by-test-platform: linux1804-64.*/opt: ['trunk'] @@ -637,10 +637,7 @@ mochitest-chrome-gpu: .*-tsan-qr/opt: ['trunk'] android.*/.*: [] default: built-projects - tier: - by-variant: - fission: 2 - default: default + tier: default mozharness: mochitest-flavor: chrome extra-options: diff --git a/taskcluster/ci/test/raptor.yml b/taskcluster/ci/test/raptor.yml index 326ce438087e..2af287645949 100644 --- a/taskcluster/ci/test/raptor.yml +++ b/taskcluster/ci/test/raptor.yml @@ -55,6 +55,7 @@ job-defaults: default: - linux64-chromium default: [] + run-without-variant: false variants: [fission] raptor-youtube-playback-v9-power-firefox: @@ -67,10 +68,7 @@ raptor-youtube-playback-v9-power-firefox: (linux|windows.*64|macos)(?!.*-qr).*: [] default: [mozilla-central] max-run-time: 2700 - tier: - by-variant: - fission: 2 - default: 3 + tier: 2 mozharness: extra-options: - --test=raptor-youtube-playback-v9 @@ -86,10 +84,7 @@ raptor-youtube-playback-h264-power-firefox: (linux|windows.*64|macos)(?!.*-qr).*: [] default: [mozilla-central] max-run-time: 2700 - tier: - by-variant: - fission: 2 - default: 3 + tier: 2 mozharness: extra-options: - --test=raptor-youtube-playback-h264 diff --git a/taskcluster/ci/test/reftest.yml b/taskcluster/ci/test/reftest.yml index 4531cfc97620..808deba7cf51 100644 --- a/taskcluster/ci/test/reftest.yml +++ b/taskcluster/ci/test/reftest.yml @@ -84,14 +84,11 @@ crashtest: default: [] max-run-time: 3600 tier: - by-variant: - fission: default - default: - by-test-platform: - windows10-aarch64-qr.*: 2 - android-hw-.*-qr/.*: 2 - android-em-7.0-x86_64-qr/debug-isolated-process: 3 - default: default + by-test-platform: + windows10-aarch64-qr.*: 2 + android-hw-.*-qr/.*: 2 + android-em-7.0-x86_64-qr/debug-isolated-process: 3 + default: default crashtest-qr: description: "Crashtest Webrender run" @@ -227,14 +224,11 @@ reftest: windows10-64-2004.*/opt: false default: true tier: - by-variant: - fission: default - default: - by-test-platform: - windows10-aarch64-qr.*: 2 - android-hw-.*-qr/.*: 2 - android-em-7.0-x86_64-qr/debug-isolated-process: 3 - default: default + by-test-platform: + windows10-aarch64-qr.*: 2 + android-hw-.*-qr/.*: 2 + android-em-7.0-x86_64-qr/debug-isolated-process: 3 + default: default reftest-qr: description: "Reftest webrender run" diff --git a/taskcluster/ci/test/variants.yml b/taskcluster/ci/test/variants.yml index 05cf6ffb8d28..a9b375252bc4 100644 --- a/taskcluster/ci/test/variants.yml +++ b/taskcluster/ci/test/variants.yml @@ -7,6 +7,7 @@ mozharness: extra-options: - "--disable-e10s" + - "--disable-fission" headless: description: "{description} without a window" @@ -60,26 +61,30 @@ geckoview-e10s-single: mozharness: extra-options: - "--setpref=dom.ipc.processCount=1" + - "--disable-fission" -geckoview-fission: - description: "{description} with fission enabled" +geckoview-no-fission: + description: "{description} without fission enabled" component: "Core::DOM: Content Processes" when: <<: *gv_e10s_filter - suffix: "fis" + suffix: "nofis" merge: mozharness: extra-options: - - "--enable-fission" + - "--disable-fission" + +geckoview-fission: + description: "{description} with fission enabled" + component: "Core::DOM: Content Processes" + when: + <<: *gv_e10s_filter + suffix: "fis" fission: description: "{description} with fission enabled" component: "Testing::General" suffix: "fis" - merge: - mozharness: - extra-options: - - "--setpref=fission.autostart=true" no-fission: description: "{description} without fission enabled" @@ -88,7 +93,7 @@ no-fission: merge: mozharness: extra-options: - - "--setpref=fission.autostart=false" + - "--disable-fission" fission-xorigin: description: "{description} with cross-origin and fission enabled" @@ -99,7 +104,6 @@ fission-xorigin: merge: mozharness: extra-options: - - "--setpref=fission.autostart=true" - "--enable-xorigin-tests" socketprocess: diff --git a/taskcluster/ci/test/xpcshell.yml b/taskcluster/ci/test/xpcshell.yml index b4ffe6288b70..14c6a1098134 100644 --- a/taskcluster/ci/test/xpcshell.yml +++ b/taskcluster/ci/test/xpcshell.yml @@ -88,13 +88,10 @@ xpcshell: default: 5400 allow-software-gl-layers: false tier: - by-variant: - fission: 2 - default: - by-test-platform: - windows10-64-2004-asan.*: 3 - android-em-7.0-x86_64-qr/debug-isolated-process: 3 - default: default + by-test-platform: + windows10-64-2004-asan.*: 3 + android-em-7.0-x86_64-qr/debug-isolated-process: 3 + default: default mozharness: extra-options: by-test-platform: @@ -135,7 +132,6 @@ xpcshell-failures: treeherder-symbol: X-f(X) run-on-projects: by-variant: - fission: [] default: ["mozilla-central"] chunks: 2 max-run-time: 2700 diff --git a/taskcluster/gecko_taskgraph/transforms/test/__init__.py b/taskcluster/gecko_taskgraph/transforms/test/__init__.py index cdc0f789e212..34aa4dae9892 100644 --- a/taskcluster/gecko_taskgraph/transforms/test/__init__.py +++ b/taskcluster/gecko_taskgraph/transforms/test/__init__.py @@ -385,7 +385,6 @@ def run_sibling_transforms(config, tasks): ("raptor", lambda t: t["suite"] == "raptor"), ("other", None), ("worker", None), - ("fission", None), # These transforms should always run last as there is never any # difference in configuration from one chunk to another (other than # chunk number). diff --git a/taskcluster/gecko_taskgraph/transforms/test/fission.py b/taskcluster/gecko_taskgraph/transforms/test/fission.py deleted file mode 100644 index d38b126a9dae..000000000000 --- a/taskcluster/gecko_taskgraph/transforms/test/fission.py +++ /dev/null @@ -1,49 +0,0 @@ -# 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/. - -from gecko_taskgraph.transforms.base import TransformSequence - - -transforms = TransformSequence() - - -def is_fission_enabled(task): - options = task["mozharness"]["extra-options"] - if "--setpref=fission.autostart=true" in options or "--enable-fission" in options: - return True - return False - - -def is_fission_disabled(task): - options = task["mozharness"]["extra-options"] - if "--setpref=fission.autostart=false" in options or "--disable-fission" in options: - return True - return False - - -@transforms.add -def reset_fission_prefs(config, tasks): - """Verify and simplify fission --setpref use.""" - for task in tasks: - variant = task["attributes"].get("unittest_variant", "") - is_fission_variant = "fission" in variant and "no-fission" not in variant - if task["suite"] not in ["gtest", "cppunittest", "jittest"]: - if is_fission_variant: - if is_fission_disabled(task): - raise Exception("Fission task disabled fission: " + str(task)) - if not is_fission_enabled(task): - # Ensure fission enabled for fission tasks - task["mozharness"]["extra-options"].append( - "--setpref=fission.autostart=true" - ) - else: - if is_fission_enabled(task): - raise Exception("Non-fission task enabled fission: " + str(task)) - if not is_fission_disabled(task): - # Ensure fission disabled for non-fission tasks - task["mozharness"]["extra-options"].append( - "--setpref=fission.autostart=false" - ) - - yield task diff --git a/testing/marionette/harness/marionette_harness/runner/base.py b/testing/marionette/harness/marionette_harness/runner/base.py index e5dcaf7758a1..c9e1ecf2a9d1 100644 --- a/testing/marionette/harness/marionette_harness/runner/base.py +++ b/testing/marionette/harness/marionette_harness/runner/base.py @@ -422,6 +422,13 @@ class BaseMarionetteArguments(ArgumentParser): " Pass in the debugger you want to use, eg pdb or ipdb.", ) self.add_argument( + "--disable-fission", + action="store_true", + dest="disable_fission", + default=False, + help="Disable Fission (site isolation) in Gecko.", + ) + self.add_argument( "-z", "--headless", action="store_true", @@ -636,6 +643,7 @@ class BaseMarionetteTestRunner(object): verbose=0, emulator=False, headless=False, + disable_fission=False, **kwargs ): self._appName = None @@ -680,6 +688,8 @@ class BaseMarionetteTestRunner(object): self.verbose = verbose self.headless = headless + self.prefs.update({"fission.autostart": not disable_fission}) + # If no repeat has been set, default to 30 extra runs if self.run_until_failure and repeat is None: self.repeat = 30 diff --git a/testing/mochitest/mach_commands.py b/testing/mochitest/mach_commands.py index 93bb74a6d102..86298eec0071 100644 --- a/testing/mochitest/mach_commands.py +++ b/testing/mochitest/mach_commands.py @@ -175,8 +175,7 @@ class MochitestRunner(MozbuildObject): print("using e10s=False for non-geckoview app") # Disable fission until geckoview supports fission by default. - # Need fission on Android? Use '--setpref fission.autostart=true' - options.fission = False + options["disable_fission"] = True return runtestsremote.run_test_harness(parser, options) @@ -188,6 +187,10 @@ class MochitestRunner(MozbuildObject): import runjunit options = Namespace(**kwargs) + + # Disable fission until geckoview supports fission by default. + options["disable_fission"] = True + return runjunit.run_test_harness(parser, options) diff --git a/testing/mochitest/mach_test_package_commands.py b/testing/mochitest/mach_test_package_commands.py index 09ac6776807e..1656058c7688 100644 --- a/testing/mochitest/mach_test_package_commands.py +++ b/testing/mochitest/mach_test_package_commands.py @@ -157,6 +157,9 @@ def run_geckoview_junit(context, args): from runjunit import run_test_harness + # Force fission disabled by default for android + args["disable_fission"] = True + logger.info("mach calling runjunit with args: " + str(args)) return run_test_harness(parser, args) diff --git a/testing/mochitest/mochitest_options.py b/testing/mochitest/mochitest_options.py index 6bf50d4a603c..1599b1d16715 100644 --- a/testing/mochitest/mochitest_options.py +++ b/testing/mochitest/mochitest_options.py @@ -565,9 +565,9 @@ class MochitestArguments(ArgumentContainer): [ ["--disable-fission"], { - "action": "store_false", - "default": True, - "dest": "fission", + "action": "store_true", + "default": False, + "dest": "disable_fission", "help": "Run tests with fission (site isolation) disabled.", }, ], @@ -1157,13 +1157,8 @@ class MochitestArguments(ArgumentContainer): ) # If e10s explicitly disabled and no fission option specified, disable fission - if ( - (not options.e10s) - and options.fission - and ("fission.autostart=true" not in options.extraPrefs) - and ("fission.autostart=false" not in options.extraPrefs) - ): - options.fission = False + if (not options.e10s) and (not options.disable_fission): + options.disable_fission = True options.leakThresholds = { "default": options.defaultLeakThreshold, diff --git a/testing/mochitest/runjunit.py b/testing/mochitest/runjunit.py index ab34eee959e6..40273ca6e892 100644 --- a/testing/mochitest/runjunit.py +++ b/testing/mochitest/runjunit.py @@ -156,6 +156,11 @@ class JUnitTestRunner(MochitestDesktop): # Set preferences self.merge_base_profiles(self.options, "geckoview-junit") + + self.options.extra_prefs.append("fission.autostart=true") + if self.options.disable_fission: + self.options.extra_prefs.pop() + self.options.extra_prefs.append("fission.autostart=false") prefs = parse_preferences(self.options.extra_prefs) self.profile.set_preferences(prefs) @@ -242,8 +247,11 @@ class JUnitTestRunner(MochitestDesktop): env["MOZ_WEBRENDER"] = "1" # FIXME: When android switches to using Fission by default, # MOZ_FORCE_DISABLE_FISSION will need to be configured correctly. - if self.options.enable_fission: + if self.options.disable_fission: + env["MOZ_FORCE_DISABLE_FISSION"] = "1" + else: env["MOZ_FORCE_ENABLE_FISSION"] = "1" + # Add additional env variables for [key, value] in [p.split("=", 1) for p in self.options.add_env]: env[key] = value @@ -573,11 +581,11 @@ class JunitArgumentParser(argparse.ArgumentParser): help="If collecting code coverage, save the report file in this dir.", ) self.add_argument( - "--enable-fission", + "--disable-fission", action="store_true", - dest="enable_fission", + dest="disable_fission", default=False, - help="Run the tests with Fission (site isolation) enabled.", + help="Run the tests without Fission (site isolation) enabled.", ) self.add_argument( "--repeat", diff --git a/testing/mochitest/runtests.py b/testing/mochitest/runtests.py index b648404f42c9..4f5c140e9d4f 100644 --- a/testing/mochitest/runtests.py +++ b/testing/mochitest/runtests.py @@ -3010,16 +3010,14 @@ toolbar#nav-bar { def runTests(self, options): """Prepare, configure, run tests and cleanup""" self.extraPrefs = parse_preferences(options.extraPrefs) - - if "fission.autostart" not in self.extraPrefs: - self.extraPrefs["fission.autostart"] = options.fission + self.extraPrefs["fission.autostart"] = not options.disable_fission # for test manifest parsing. mozinfo.update( { "a11y_checks": options.a11y_checks, "e10s": options.e10s, - "fission": self.extraPrefs.get("fission.autostart", True), + "fission": not options.disable_fission, "headless": options.headless, # Until the test harness can understand default pref values, # (https://bugzilla.mozilla.org/show_bug.cgi?id=1577912) this value @@ -3371,7 +3369,7 @@ toolbar#nav-bar { ) self.log.info( "runtests.py | Running with fission: {}".format( - mozinfo.info.get("fission", False) + mozinfo.info.get("fission", True) ) ) self.log.info( diff --git a/testing/mozharness/scripts/android_emulator_unittest.py b/testing/mozharness/scripts/android_emulator_unittest.py index 83fb59314e20..8e9f9ccaf9a3 100644 --- a/testing/mozharness/scripts/android_emulator_unittest.py +++ b/testing/mozharness/scripts/android_emulator_unittest.py @@ -114,12 +114,12 @@ class AndroidEmulatorTest( }, ], [ - ["--enable-fission"], + ["--disable-fission"], { "action": "store_true", - "dest": "enable_fission", + "dest": "disable_fission", "default": False, - "help": "Run with Fission enabled.", + "help": "Run without Fission enabled.", }, ], [ @@ -187,7 +187,7 @@ class AndroidEmulatorTest( # GLES3 if we're running WebRender (default) self.use_gles3 = True self.disable_e10s = c.get("disable_e10s") - self.enable_fission = c.get("enable_fission") + self.disable_fission = c.get("disable_fission") self.extra_prefs = c.get("extra_prefs") def query_abs_dirs(self): @@ -311,6 +311,10 @@ class AndroidEmulatorTest( else: self.log("--repeat not supported in {}".format(category), level=WARNING) + # do not add --disable fission if we don't have --disable-e10s + if c["disable_fission"] and category not in ["gtest", "cppunittest"]: + cmd.append("--disable-fission") + cmd.extend(["--setpref={}".format(p) for p in self.extra_prefs]) if not (self.verify_enabled or self.per_test_coverage): @@ -328,8 +332,6 @@ class AndroidEmulatorTest( elif category not in SUITE_DEFAULT_E10S and c["e10s"]: cmd.append("--e10s") - if self.enable_fission: - cmd.extend(["--enable-fission"]) if c.get("enable_xorigin_tests"): cmd.extend(["--enable-xorigin-tests"]) diff --git a/testing/mozharness/scripts/android_hardware_unittest.py b/testing/mozharness/scripts/android_hardware_unittest.py index ef5ec8062e5c..2e826a6e021e 100644 --- a/testing/mozharness/scripts/android_hardware_unittest.py +++ b/testing/mozharness/scripts/android_hardware_unittest.py @@ -90,12 +90,12 @@ class AndroidHardwareTest( }, ], [ - ["--enable-fission"], + ["--disable-fission"], { "action": "store_true", - "dest": "enable_fission", + "dest": "disable_fission", "default": False, - "help": "Run with Fission enabled.", + "help": "Run with Fission disabled.", }, ], [ @@ -167,7 +167,7 @@ class AndroidHardwareTest( self.log_raw_level = c.get("log_raw_level") self.log_tbpl_level = c.get("log_tbpl_level") self.disable_e10s = c.get("disable_e10s") - self.enable_fission = c.get("enable_fission") + self.disable_fission = c.get("disable_fission") self.extra_prefs = c.get("extra_prefs") self.jittest_flags = c.get("jittest_flags") @@ -295,8 +295,8 @@ class AndroidHardwareTest( elif category not in SUITE_DEFAULT_E10S and c["e10s"]: cmd.append("--e10s") - if self.enable_fission: - cmd.extend(["--enable-fission"]) + if self.disable_fission and category not in SUITE_NO_E10S: + cmd.append("--disable-fission") cmd.extend(["--setpref={}".format(p) for p in self.extra_prefs]) diff --git a/testing/mozharness/scripts/desktop_unittest.py b/testing/mozharness/scripts/desktop_unittest.py index 701bfe36fef4..dfb5118415ff 100755 --- a/testing/mozharness/scripts/desktop_unittest.py +++ b/testing/mozharness/scripts/desktop_unittest.py @@ -296,6 +296,15 @@ class DesktopUnittest(TestingMixin, MercurialScript, MozbaseMixin, CodeCoverageM "help": "treat harness level timeout as a pass", }, ], + [ + ["--disable-fission"], + { + "action": "store_true", + "default": False, + "dest": "disable_fission", + "help": "do not run tests with fission enabled.", + }, + ], ] + copy.deepcopy(testing_config_options) + copy.deepcopy(code_coverage_config_options) @@ -580,6 +589,10 @@ class DesktopUnittest(TestingMixin, MercurialScript, MozbaseMixin, CodeCoverageM level=WARNING, ) + # do not add --disable fission if we don't have --disable-e10s + if c["disable_fission"] and suite_category not in ["gtest", "cppunittest"]: + base_cmd.append("--disable-fission") + # Ignore chunking if we have user specified test paths if not (self.verify_enabled or self.per_test_coverage): test_paths = self._get_mozharness_test_paths(suite_category, suite) diff --git a/testing/mozharness/scripts/firefox_ui_tests.py b/testing/mozharness/scripts/firefox_ui_tests.py index 0d850204250c..e8319723e88e 100644 --- a/testing/mozharness/scripts/firefox_ui_tests.py +++ b/testing/mozharness/scripts/firefox_ui_tests.py @@ -58,6 +58,15 @@ firefox_ui_tests_config_options = ( }, ], [ + ["--disable-fission"], + { + "dest": "disable_fission", + "action": "store_true", + "default": False, + "help": "Disable fission mode when running tests.", + }, + ], + [ ["--setpref"], { "dest": "extra_prefs", @@ -228,6 +237,9 @@ class FirefoxUIFunctionalTests(TestingMixin, VCSToolsScript, CodeCoverageMixin): if not self.config.get("e10s"): cmd.append("--disable-e10s") + if self.config.get("disable_fission"): + cmd.append("--disable-fission") + cmd.extend(["--setpref={}".format(p) for p in self.config.get("extra_prefs")]) if self.symbols_url: diff --git a/testing/mozharness/scripts/marionette.py b/testing/mozharness/scripts/marionette.py index a6147f6a180e..00591e9e0978 100755 --- a/testing/mozharness/scripts/marionette.py +++ b/testing/mozharness/scripts/marionette.py @@ -145,6 +145,15 @@ class MarionetteTest(TestingMixin, MercurialScript, TransferMixin, CodeCoverageM "help": "Permits a software GL implementation (such as LLVMPipe) to use the GL compositor.", # NOQA: E501 }, ], + [ + ["--disable-fission"], + { + "action": "store_true", + "dest": "disable_fission", + "default": False, + "help": "Run the browser without fission enabled", + }, + ], ] + copy.deepcopy(testing_config_options) + copy.deepcopy(code_coverage_config_options) @@ -337,6 +346,10 @@ class MarionetteTest(TestingMixin, MercurialScript, TransferMixin, CodeCoverageM if self.config.get("structured_output"): cmd.append("--log-raw=-") + if self.config["disable_fission"]: + cmd.append("--disable-fission") + cmd.extend(["--setpref=fission.autostart=false"]) + for arg in self.config["suite_definitions"][self.test_suite]["options"]: cmd.append(arg % config_fmt_args) diff --git a/testing/mozharness/scripts/telemetry/telemetry_client.py b/testing/mozharness/scripts/telemetry/telemetry_client.py index 156a0780bac5..48482889e25b 100755 --- a/testing/mozharness/scripts/telemetry/telemetry_client.py +++ b/testing/mozharness/scripts/telemetry/telemetry_client.py @@ -57,6 +57,15 @@ telemetry_tests_config_options = ( }, ], [ + ["--disable-fission"], + { + "dest": "disable_fission", + "action": "store_true", + "default": False, + "help": "Disable fission mode when running tests.", + }, + ], + [ ["--setpref"], { "dest": "extra_prefs", @@ -119,6 +128,7 @@ class TelemetryTests(TestingMixin, VCSToolsScript, CodeCoverageMixin): self.installer_url = self.config.get("installer_url") self.test_packages_url = self.config.get("test_packages_url") self.test_url = self.config.get("test_url") + self.disable_fission = self.config.get("disable_fission") if not self.test_url and not self.test_packages_url: self.fatal("You must use --test-url, or --test-packages-url") @@ -196,6 +206,8 @@ class TelemetryTests(TestingMixin, VCSToolsScript, CodeCoverageMixin): if self.symbols_path: cmd.extend(["--symbols-path", self.symbols_path]) + if self.disable_fission: + cmd.append("--disable-fission") cmd.extend(["--setpref={}".format(p) for p in self.config["extra_prefs"]]) if not self.config["e10s"]: diff --git a/testing/mozharness/scripts/web_platform_tests.py b/testing/mozharness/scripts/web_platform_tests.py index f639add947a7..77c2ed53469e 100755 --- a/testing/mozharness/scripts/web_platform_tests.py +++ b/testing/mozharness/scripts/web_platform_tests.py @@ -55,6 +55,15 @@ class WebPlatformTest(TestingMixin, MercurialScript, CodeCoverageMixin, AndroidM }, ], [ + ["--disable-fission"], + { + "action": "store_true", + "dest": "disable_fission", + "default": False, + "help": "Run without fission enabled", + }, + ], + [ ["--total-chunks"], { "action": "store", @@ -281,9 +290,6 @@ class WebPlatformTest(TestingMixin, MercurialScript, CodeCoverageMixin, AndroidM mozinfo.find_and_update_from_json(dirs["abs_test_install_dir"]) - # Default to fission disabled - fission_enabled = "fission.autostart=true" in c["extra_prefs"] - raw_log_file, error_summary_file = self.get_indexed_logs( dirs["abs_blob_upload_dir"], "wpt" ) @@ -314,7 +320,7 @@ class WebPlatformTest(TestingMixin, MercurialScript, CodeCoverageMixin, AndroidM self.is_android or mozinfo.info["tsan"] or "wdspec" in test_types - or fission_enabled + or not c["disable_fission"] # Bug 1392106 - skia error 0x80070005: Access is denied. or is_windows_7 and mozinfo.info["debug"] @@ -344,8 +350,8 @@ class WebPlatformTest(TestingMixin, MercurialScript, CodeCoverageMixin, AndroidM if c["extra_prefs"]: cmd.extend(["--setpref={}".format(p) for p in c["extra_prefs"]]) - if not fission_enabled and "fission.autostart=false" not in c["extra_prefs"]: - cmd.append("--setpref=fission.autostart=false") + if c["disable_fission"]: + cmd.append("--disable-fission") if not c["e10s"]: cmd.append("--disable-e10s") diff --git a/testing/web-platform/tests/tools/wptrunner/wptrunner/browsers/firefox.py b/testing/web-platform/tests/tools/wptrunner/wptrunner/browsers/firefox.py index 308c68c35be0..f9581c25d5e3 100644 --- a/testing/web-platform/tests/tools/wptrunner/wptrunner/browsers/firefox.py +++ b/testing/web-platform/tests/tools/wptrunner/wptrunner/browsers/firefox.py @@ -93,7 +93,7 @@ def browser_kwargs(logger, test_type, run_info_data, config, **kwargs): "certutil_binary": kwargs["certutil_binary"], "ca_certificate_path": config.ssl_config["ca_cert_path"], "e10s": kwargs["gecko_e10s"], - "enable_fission": run_info_data["fission"], + "disable_fission": kwargs["disable_fission"], "stackfix_dir": kwargs["stackfix_dir"], "binary_args": kwargs["binary_args"], "timeout_multiplier": get_timeout_multiplier(test_type, @@ -145,6 +145,7 @@ def executor_kwargs(logger, test_type, test_environment, run_info_data, executor_kwargs["ccov"] = run_info_data.get("ccov", False) executor_kwargs["browser_version"] = run_info_data.get("browser_version") executor_kwargs["debug_test"] = kwargs["debug_test"] + executor_kwargs["disable_fission"] = kwargs["disable_fission"] return executor_kwargs @@ -174,18 +175,13 @@ def run_info_extras(**kwargs): pref_value = get_bool_pref_if_exists(pref) return pref_value if pref_value is not None else False - # Default fission to on, unless we get --[no-]enable-fission or - # --set-pref fission.autostart=[true|false] - enable_fission = [item for item in [kwargs.get("enable_fission"), - get_bool_pref_if_exists("fission.autostart"), - True] if item is not None][0] - + # Default fission to on, unless we get --disable-fission rv = {"e10s": kwargs["gecko_e10s"], "wasm": kwargs.get("wasm", True), "verify": kwargs["verify"], "headless": kwargs.get("headless", False) or "MOZ_HEADLESS" in os.environ, - "fission": enable_fission, - "sessionHistoryInParent": (enable_fission or + "fission": not kwargs.get("disable_fission"), + "sessionHistoryInParent": (not kwargs.get("disable_fission") or get_bool_pref("fission.sessionHistoryInParent")), "swgl": get_bool_pref("gfx.webrender.software")} @@ -550,7 +546,7 @@ class FirefoxOutputHandler(OutputHandler): class ProfileCreator: def __init__(self, logger, prefs_root, config, test_type, extra_prefs, e10s, - enable_fission, debug_test, browser_channel, binary, certutil_binary, + disable_fission, debug_test, browser_channel, binary, certutil_binary, ca_certificate_path): self.logger = logger self.prefs_root = prefs_root @@ -558,7 +554,7 @@ class ProfileCreator: self.test_type = test_type self.extra_prefs = extra_prefs self.e10s = e10s - self.enable_fission = enable_fission + self.disable_fission = disable_fission self.debug_test = debug_test self.browser_channel = browser_channel self.ca_certificate_path = ca_certificate_path @@ -634,9 +630,8 @@ class ProfileCreator: if self.e10s: profile.set_preferences({"browser.tabs.remote.autostart": True}) - if self.enable_fission: - profile.set_preferences({"fission.autostart": True}) - else: + profile.set_preferences({"fission.autostart": True}) + if self.disable_fission: profile.set_preferences({"fission.autostart": False}) if self.test_type in ("reftest", "print-reftest"): @@ -648,7 +643,7 @@ class ProfileCreator: # Bug 1262954: winxp + e10s, disable hwaccel if (self.e10s and platform.system() in ("Windows", "Microsoft") and "5.1" in platform.version()): - self.profile.set_preferences({"layers.acceleration.disabled": True}) + profile.set_preferences({"layers.acceleration.disabled": True}) if self.debug_test: profile.set_preferences({"devtools.console.stdout.content": True}) @@ -710,7 +705,7 @@ class FirefoxBrowser(Browser): def __init__(self, logger, binary, prefs_root, test_type, extra_prefs=None, debug_info=None, symbols_path=None, stackwalk_binary=None, certutil_binary=None, - ca_certificate_path=None, e10s=False, enable_fission=True, + ca_certificate_path=None, e10s=False, disable_fission=False, stackfix_dir=None, binary_args=None, timeout_multiplier=None, leak_check=False, asan=False, stylo_threads=1, chaos_mode_flags=None, config=None, browser_channel="nightly", headless=None, preload_browser=False, @@ -740,7 +735,7 @@ class FirefoxBrowser(Browser): test_type, extra_prefs, e10s, - enable_fission, + disable_fission, debug_test, browser_channel, binary, @@ -820,7 +815,7 @@ class FirefoxWdSpecBrowser(WebDriverBrowser): def __init__(self, logger, binary, prefs_root, webdriver_binary, webdriver_args, extra_prefs=None, debug_info=None, symbols_path=None, stackwalk_binary=None, certutil_binary=None, ca_certificate_path=None, e10s=False, - enable_fission=False, stackfix_dir=None, leak_check=False, + disable_fission=False, stackfix_dir=None, leak_check=False, asan=False, stylo_threads=1, chaos_mode_flags=None, config=None, browser_channel="nightly", headless=None, debug_test=False, **kwargs): @@ -844,7 +839,7 @@ class FirefoxWdSpecBrowser(WebDriverBrowser): "wdspec", extra_prefs, e10s, - enable_fission, + disable_fission, debug_test, browser_channel, binary, diff --git a/testing/web-platform/tests/tools/wptrunner/wptrunner/browsers/firefox_android.py b/testing/web-platform/tests/tools/wptrunner/wptrunner/browsers/firefox_android.py index 5829b41a3eca..f9c997339876 100644 --- a/testing/web-platform/tests/tools/wptrunner/wptrunner/browsers/firefox_android.py +++ b/testing/web-platform/tests/tools/wptrunner/wptrunner/browsers/firefox_android.py @@ -60,6 +60,7 @@ def browser_kwargs(logger, test_type, run_info_data, config, **kwargs): run_info_data, **kwargs), "e10s": run_info_data["e10s"], + "disable_fission": kwargs["disable_fission"], # desktop only "leak_check": False, "stylo_threads": kwargs["stylo_threads"], @@ -110,9 +111,9 @@ def get_environ(stylo_threads, chaos_mode_flags): class ProfileCreator(FirefoxProfileCreator): def __init__(self, logger, prefs_root, config, test_type, extra_prefs, - enable_fission, debug_test, browser_channel, certutil_binary, ca_certificate_path): + disable_fission, debug_test, browser_channel, certutil_binary, ca_certificate_path): super().__init__(logger, prefs_root, config, test_type, extra_prefs, - True, enable_fission, debug_test, browser_channel, None, + True, disable_fission, debug_test, browser_channel, None, certutil_binary, ca_certificate_path) def _set_required_prefs(self, profile): @@ -139,6 +140,10 @@ class ProfileCreator(FirefoxProfileCreator): "layout.testing.overlay-scrollbars.always-visible": True, }) + profile.set_preferences({"fission.autostart": True}) + if self.disable_fission: + profile.set_preferences({"fission.autostart": False}) + class FirefoxAndroidBrowser(Browser): init_timeout = 300 @@ -151,7 +156,7 @@ class FirefoxAndroidBrowser(Browser): binary_args=None, timeout_multiplier=None, leak_check=False, asan=False, stylo_threads=1, chaos_mode_flags=None, config=None, browser_channel="nightly", install_fonts=False, tests_root=None, specialpowers_path=None, adb_binary=None, - debug_test=False, **kwargs): + debug_test=False, disable_fission=False, **kwargs): super().__init__(logger) self.prefs_root = prefs_root @@ -177,13 +182,14 @@ class FirefoxAndroidBrowser(Browser): self.tests_root = tests_root self.specialpowers_path = specialpowers_path self.adb_binary = adb_binary + self.disable_fission = disable_fission self.profile_creator = ProfileCreator(logger, prefs_root, config, test_type, extra_prefs, - False, + disable_fission, debug_test, browser_channel, certutil_binary, @@ -307,7 +313,7 @@ class FirefoxAndroidWdSpecBrowser(FirefoxWdSpecBrowser): def __init__(self, logger, prefs_root, webdriver_binary, webdriver_args, extra_prefs=None, debug_info=None, symbols_path=None, stackwalk_binary=None, certutil_binary=None, ca_certificate_path=None, e10s=False, - enable_fission=False, stackfix_dir=None, leak_check=False, + disable_fission=False, stackfix_dir=None, leak_check=False, asan=False, stylo_threads=1, chaos_mode_flags=None, config=None, browser_channel="nightly", headless=None, package_name="org.mozilla.geckoview.test_runner", device_serial=None, @@ -317,7 +323,7 @@ class FirefoxAndroidWdSpecBrowser(FirefoxWdSpecBrowser): extra_prefs=extra_prefs, debug_info=debug_info, symbols_path=symbols_path, stackwalk_binary=stackwalk_binary, certutil_binary=certutil_binary, ca_certificate_path=ca_certificate_path, e10s=e10s, - enable_fission=enable_fission, stackfix_dir=stackfix_dir, + disable_fission=disable_fission, stackfix_dir=stackfix_dir, leak_check=leak_check, asan=asan, stylo_threads=stylo_threads, chaos_mode_flags=chaos_mode_flags, config=config, browser_channel=browser_channel, headless=headless, **kwargs) diff --git a/testing/web-platform/tests/tools/wptrunner/wptrunner/wptcommandline.py b/testing/web-platform/tests/tools/wptrunner/wptrunner/wptcommandline.py index 834ad8e990ce..1a179f23593d 100644 --- a/testing/web-platform/tests/tools/wptrunner/wptrunner/wptcommandline.py +++ b/testing/web-platform/tests/tools/wptrunner/wptrunner/wptcommandline.py @@ -289,10 +289,7 @@ scheme host and port.""") default=None, help="Don't preload a gecko instance for faster restarts") gecko_group.add_argument("--disable-e10s", dest="gecko_e10s", action="store_false", default=True, help="Run tests without electrolysis preferences") - gecko_group.add_argument("--enable-fission", dest="enable_fission", action="store_true", default=None, - help="Enable fission in Gecko (defaults to enabled; " - "this option only exists for backward compatibility).") - gecko_group.add_argument("--no-enable-fission", dest="enable_fission", action="store_false", + gecko_group.add_argument("--disable-fission", dest="disable_fission", action="store_true", default=False, help="Disable fission in Gecko.") gecko_group.add_argument("--stackfix-dir", dest="stackfix_dir", action="store", help="Path to directory containing assertion stack fixing scripts") diff --git a/testing/xpcshell/remotexpcshelltests.py b/testing/xpcshell/remotexpcshelltests.py index 82e0b798d2ec..1f5b316cb9f7 100644 --- a/testing/xpcshell/remotexpcshelltests.py +++ b/testing/xpcshell/remotexpcshelltests.py @@ -479,6 +479,14 @@ class XPCShellRemote(xpcshell.XPCShellTests, object): self.initDir(self.remoteMinidumpRootDir) self.initDir(self.remoteLogFolder) + eprefs = options.get("extraPrefs") or [] + if options.get("disableFission"): + eprefs.append("fission.autostart=false") + else: + # should be by default, just in case + eprefs.append("fission.autostart=true") + options["extraPrefs"] = eprefs + # data that needs to be passed to the RemoteXPCShellTestThread self.mobileArgs = { "device": self.device, diff --git a/testing/xpcshell/runxpcshelltests.py b/testing/xpcshell/runxpcshelltests.py index c6aea1aa2792..212bfebbe926 100755 --- a/testing/xpcshell/runxpcshelltests.py +++ b/testing/xpcshell/runxpcshelltests.py @@ -1647,7 +1647,16 @@ class XPCShellTests(object): self.todoCount = 0 self.setAbsPath() - prefs = self.buildPrefsFile(options.get("extraPrefs") or []) + + eprefs = options.get("extraPrefs") or [] + # enable fission by default + if options.get("disableFission"): + eprefs.append("fission.autostart=false") + else: + # should be by default, just in case + eprefs.append("fission.autostart=true") + + prefs = self.buildPrefsFile(eprefs) self.buildXpcsRunArgs() self.event = Event() diff --git a/testing/xpcshell/xpcshellcommandline.py b/testing/xpcshell/xpcshellcommandline.py index 855b118565f2..38d40d895f3a 100644 --- a/testing/xpcshell/xpcshellcommandline.py +++ b/testing/xpcshell/xpcshellcommandline.py @@ -313,6 +313,13 @@ def add_common_arguments(parser): dest="crashAsPass", help="Harness level crashes will be treated as passing", ) + parser.add_argument( + "--disable-fission", + action="store_true", + default=False, + dest="disableFission", + help="disable fission mode (back to e10s || 1proc)", + ) def add_remote_arguments(parser): diff --git a/toolkit/components/telemetry/tests/marionette/harness/telemetry_harness/runner.py b/toolkit/components/telemetry/tests/marionette/harness/telemetry_harness/runner.py index 05192e285181..37a91023cef0 100644 --- a/toolkit/components/telemetry/tests/marionette/harness/telemetry_harness/runner.py +++ b/toolkit/components/telemetry/tests/marionette/harness/telemetry_harness/runner.py @@ -22,6 +22,10 @@ class TelemetryTestRunner(BaseMarionetteTestRunner): prefs = kwargs.pop("prefs", {}) + prefs["fission.autostart"] = True + if kwargs["disable_fission"]: + prefs["fission.autostart"] = False + # Set Firefox Client Telemetry specific preferences prefs.update( { -- 2.11.4.GIT