Bug 1360354 - Do not qualify users of legacy addons (non-bootstrapped) for e10s-multi. r=krizsa draft
authorFelipe Gomes <felipc@gmail.com>
Fri, 28 Apr 2017 14:08:30 -0300
changeset 570260 29126929fab3dccb219138ccc5985730e45d82ab
parent 569701 2cca333f546f38860f84940d4c72d7470a3410f4
child 626454 5a48d1445037567a0399ee89b8a7f9ddf202641f
push id56447
push userfelipc@gmail.com
push dateFri, 28 Apr 2017 17:08:57 +0000
reviewerskrizsa
bugs1360354
milestone55.0a1
Bug 1360354 - Do not qualify users of legacy addons (non-bootstrapped) for e10s-multi. r=krizsa MozReview-Commit-ID: 28fFHdttVxl
toolkit/mozapps/extensions/internal/XPIProvider.jsm
toolkit/mozapps/extensions/test/xpcshell/test_e10s_restartless.js
--- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
@@ -4567,32 +4567,34 @@ this.XPIProvider = {
   /**
    * Determine if an add-on should be blocking multiple content processes.
    *
    * @param  aAddon
    *         The add-on to test
    * @return true if enabling the add-on should block multiple content processes.
    */
   isBlockingE10sMulti(aAddon) {
+    // WebExtensions have type = "webextension" or type="webextension-theme",
+    // so they won't block multi.
     if (aAddon.type != "extension")
       return false;
 
     // The hotfix is exempt
     let hotfixID = Preferences.get(PREF_EM_HOTFIX_ID, undefined);
     if (hotfixID && hotfixID == aAddon.id)
       return false;
 
     // System add-ons are exempt
     let locName = aAddon._installLocation ? aAddon._installLocation.name
                                           : undefined;
     if (locName == KEY_APP_SYSTEM_DEFAULTS ||
         locName == KEY_APP_SYSTEM_ADDONS)
       return false;
 
-    return aAddon.bootstrap;
+    return true;
   },
 
   /**
    * In some cases having add-ons active blocks e10s but turning off e10s
    * requires a restart so some add-ons that are normally restartless will
    * require a restart to install or enable.
    *
    * @param  aAddon
--- a/toolkit/mozapps/extensions/test/xpcshell/test_e10s_restartless.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_e10s_restartless.js
@@ -470,31 +470,31 @@ add_task(function*() {
   gAppInfo.browserTabsRemoteAutostart = true;
   Services.prefs.setBoolPref("extensions.e10sBlocksEnabling", true);
   Services.prefs.setCharPref("extensions.hotfix.id", ID);
   Services.prefs.setBoolPref("extensions.hotfix.cert.checkAttributes", false);
 
   yield check_normal(true);
 });
 
-// Test non-restarless add-on's should not block multi
+// Test non-restarless add-on should block multi
 add_task(function*() {
   yield promiseInstallAllFiles([do_get_addon("test_install1")], true);
 
   let non_restartless_ID = "addon1@tests.mozilla.org";
-
-  restartManager();
-
   let addon = yield promiseAddonByID(non_restartless_ID);
 
   // non-restartless add-on is installed and started
-  do_check_neq(addon, null);
+  do_check_eq(addon, null);
+
+  yield promiseRestartManager();
 
-  do_check_false(check_multi_disabled());
+  do_check_true(check_multi_disabled());
 
+  addon = yield promiseAddonByID(non_restartless_ID);
   addon.uninstall();
 
   BootstrapMonitor.checkAddonNotInstalled(non_restartless_ID);
   BootstrapMonitor.checkAddonNotStarted(non_restartless_ID);
 
   yield promiseRestartManager();
 });