Default to fission enabled in wpt

With this change, fission will be enabled by default, unless
--enable-fission or --setpref=fission.autostart=false is passed
on startup. We always set a fission setting, irrespective of
the browser defaults.

Differential Revision: https://phabricator.services.mozilla.com/D132769

bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1743714
gecko-commit: 773776ba6f7ca299c972d1923ecbf43980958e18
gecko-reviewers: ahal
diff --git a/tools/wptrunner/wptrunner/browsers/firefox.py b/tools/wptrunner/wptrunner/browsers/firefox.py
index 30562a4..5a33cee 100644
--- a/tools/wptrunner/wptrunner/browsers/firefox.py
+++ b/tools/wptrunner/wptrunner/browsers/firefox.py
@@ -173,13 +173,18 @@
         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]
+
     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": kwargs.get("enable_fission") or get_bool_pref("fission.autostart"),
-          "sessionHistoryInParent": (kwargs.get("enable_fission") or
-                                     get_bool_pref("fission.autostart") or
+          "fission": enable_fission,
+          "sessionHistoryInParent": (enable_fission or
                                      get_bool_pref("fission.sessionHistoryInParent")),
           "swgl": get_bool_pref("gfx.webrender.software")}
 
@@ -645,6 +650,8 @@
 
         if self.enable_fission:
             profile.set_preferences({"fission.autostart": True})
+        else:
+            profile.set_preferences({"fission.autostart": False})
 
         if self.test_type in ("reftest", "print-reftest"):
             profile.set_preferences({"layout.interruptible-reflow.enabled": False})
diff --git a/tools/wptrunner/wptrunner/wptcommandline.py b/tools/wptrunner/wptrunner/wptcommandline.py
index 8851207..58a842c 100644
--- a/tools/wptrunner/wptrunner/wptcommandline.py
+++ b/tools/wptrunner/wptrunner/wptcommandline.py
@@ -304,7 +304,8 @@
     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 disabled).")
+                             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",
                              help="Disable fission in Gecko.")
     gecko_group.add_argument("--stackfix-dir", dest="stackfix_dir", action="store",