[mq]: Bug 1348576 - e10s is never enabled for non-official release builds. r=mconley draft
authorFelipe Gomes <felipc@gmail.com>
Wed, 29 Mar 2017 17:59:15 -0300
changeset 553345 decb0a49f22c9a8228094e8f1b4ee163943febdd
parent 553344 4c7c05a49f3ce40aa0969beccb397380a8907f4a
child 553432 decfe2f83894ac6ba03ca8a9139771149e2e28ac
push id51601
push userfelipc@gmail.com
push dateWed, 29 Mar 2017 21:00:13 +0000
reviewersmconley
bugs1348576
milestone55.0a1
[mq]: Bug 1348576 - e10s is never enabled for non-official release builds. r=mconley MozReview-Commit-ID: DaqGyeGdgzD
browser/extensions/e10srollout/bootstrap.js
browser/extensions/e10srollout/install.rdf.in
--- a/browser/extensions/e10srollout/bootstrap.js
+++ b/browser/extensions/e10srollout/bootstrap.js
@@ -4,30 +4,49 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 "use strict";
 
 const {classes: Cc, interfaces: Ci, utils: Cu} = Components;
 
 Cu.import("resource://gre/modules/Preferences.jsm");
 Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource://gre/modules/UpdateUtils.jsm");
+Cu.import("resource://gre/modules/AppConstants.jsm");
 
  // The amount of people to be part of e10s
 const TEST_THRESHOLD = {
   "beta": 0.5,  // 50%
   "release": 1.0,  // 100%
   "esr": 1.0,  // 100%
 };
 
 const ADDON_ROLLOUT_POLICY = {
   "beta": "50allmpc",
   "release": "50allmpc",
   "esr": "esrA", // WebExtensions and Addons with mpc=true
 };
 
+if (AppConstants.RELEASE_OR_BETA) {
+  // Bug 1348576 - e10s is never enabled for non-official release builds
+  // This is hacky, but the problem it solves is the following:
+  // the e10s rollout is controlled by the channel name, which
+  // is the only way to distinguish between Beta and Release.
+  // However, non-official release builds (like the ones done by distros
+  // to ship Firefox on their package managers) do not set a value
+  // for the release channel, which gets them to the default value
+  // of.. (drumroll) "default".
+  // But we can't just always configure the same settings for the
+  // "default" channel because that's also the name that a locally
+  // built Firefox gets, and e10s is managed in a different way
+  // there (directly by prefs, on Nightly and Aurora).
+  TEST_THRESHOLD.default = TEST_THRESHOLD.release;
+  ADDON_ROLLOUT_POLICY.default = ADDON_ROLLOUT_POLICY.release;
+}
+
+
 const PREF_COHORT_SAMPLE       = "e10s.rollout.cohortSample";
 const PREF_COHORT_NAME         = "e10s.rollout.cohort";
 const PREF_E10S_OPTED_IN       = "browser.tabs.remote.autostart";
 const PREF_E10S_FORCE_ENABLED  = "browser.tabs.remote.force-enable";
 const PREF_E10S_FORCE_DISABLED = "browser.tabs.remote.force-disable";
 const PREF_TOGGLE_E10S         = "browser.tabs.remote.autostart.2";
 const PREF_E10S_ADDON_POLICY   = "extensions.e10s.rollout.policy";
 const PREF_E10S_ADDON_BLOCKLIST = "extensions.e10s.rollout.blocklist";
--- a/browser/extensions/e10srollout/install.rdf.in
+++ b/browser/extensions/e10srollout/install.rdf.in
@@ -5,17 +5,17 @@
 
 #filter substitution
 
 <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:em="http://www.mozilla.org/2004/em-rdf#">
 
   <Description about="urn:mozilla:install-manifest">
     <em:id>e10srollout@mozilla.org</em:id>
-    <em:version>1.14</em:version>
+    <em:version>1.15</em:version>
     <em:type>2</em:type>
     <em:bootstrap>true</em:bootstrap>
     <em:multiprocessCompatible>true</em:multiprocessCompatible>
 
     <!-- Target Application this theme can install into,
         with minimum and maximum supported versions. -->
     <em:targetApplication>
       <Description>