Bug 1314429 - Allow every add-on to run on e10s, except those explictly marked with multiprocessCompatible=false. r=mconley
authorFelipe Gomes <felipc@gmail.com>
Fri, 11 Nov 2016 13:43:03 -0200
changeset 322101 faf82a6f0dd4f44a76b41984910fd0b9fc6b686f
parent 322100 e15d138a273a16ac9d97805d94f6fba74534fc03
child 322154 e3096c5d3ec201efdad2eaf57f626f66555dc635
push id83790
push userfelipc@gmail.com
push dateFri, 11 Nov 2016 15:43:16 +0000
treeherdermozilla-inbound@faf82a6f0dd4 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmconley
bugs1314429
milestone52.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1314429 - Allow every add-on to run on e10s, except those explictly marked with multiprocessCompatible=false. r=mconley There's also an existing blocklist of add-ons in bootstrap.js that currently only includes TabMixPlus MozReview-Commit-ID: 5ocmfpxApxn
browser/extensions/e10srollout/bootstrap.js
browser/extensions/e10srollout/install.rdf.in
toolkit/mozapps/extensions/internal/E10SAddonsRollout.jsm
--- a/browser/extensions/e10srollout/bootstrap.js
+++ b/browser/extensions/e10srollout/bootstrap.js
@@ -12,17 +12,17 @@ Cu.import("resource://gre/modules/Update
 
  // The amount of people to be part of e10s
 const TEST_THRESHOLD = {
   "beta"    : 0.5,  // 50%
   "release" : 1.0,  // 100%
 };
 
 const ADDON_ROLLOUT_POLICY = {
-  "beta"    : "50allmpc", // Any WebExtension or addon with mpc = true
+  "beta"    : "51alladdons", // Any WebExtension or addon with mpc = true
   "release" : "50allmpc", // Any WebExtension or addon with mpc = true
 };
 
 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";
--- 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.5</em:version>
+    <em:version>1.6</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>
--- a/toolkit/mozapps/extensions/internal/E10SAddonsRollout.jsm
+++ b/toolkit/mozapps/extensions/internal/E10SAddonsRollout.jsm
@@ -116,16 +116,18 @@ const RolloutPolicy = {
 
   // Smaller set that can be used for Release 49
   "49limiteda": { addons: set49PaneOnly, webextensions: true },
   "49limitedb": { addons: set49PaneOnly, webextensions: false },
 
   // Beta testing on 50
   "50allmpc": { addons: [], webextensions: true, mpc: true },
 
+  "51alladdons": { addons: [], webextensions: true, alladdons: true },
+
   "xpcshell-test": { addons: [ADDONS.test1, ADDONS.test2], webextensions: false },
 };
 
 Object.defineProperty(this, "isAddonPartOfE10SRollout", {
   configurable: false,
   enumerable: false,
   writable: false,
   value: function isAddonPartOfE10SRollout(aAddon) {
@@ -137,16 +139,24 @@ Object.defineProperty(this, "isAddonPart
     }
 
     if (blocklist && blocklist.indexOf(aAddon.id) > -1) {
       return false;
     }
 
     let policy = RolloutPolicy[policyId];
 
+    if (policy.alladdons) {
+      if (aAddon.multiprocessCompatible === false) {
+        return false;
+      }
+
+      return true;
+    }
+
     if (policy.webextensions && aAddon.type == "webextension") {
       return true;
     }
 
     if (policy.mpc && aAddon.multiprocessCompatible) {
       return true;
     }