Bug 1362493 - Let users with mpc=true addons into the multi experiment. r=Felipe
MozReview-Commit-ID: CwV4vukwrm9
--- a/browser/extensions/e10srollout/bootstrap.js
+++ b/browser/extensions/e10srollout/bootstrap.js
@@ -170,26 +170,26 @@ function defineCohort() {
// - If the user already opted into multi, then their prefs are already set
// correctly, we're done.
// - If the user has addons that disqualify them for multi, leave them with
// the default number of content processes (1 on beta) but still in the
// test cohort.
if (!(updateChannel in MULTI_BUCKETS) ||
!eligibleForMulti ||
userOptedIn.multi ||
- disqualified ||
- getAddonsDisqualifyForMulti()) {
+ disqualified) {
Preferences.reset(PREF_E10S_PROCESSCOUNT + ".web");
return;
}
// If we got here with a cohortPrefix, it must be "addons-set50allmpc-",
- // and we know because of getAddonsDisqualifyForMulti that the addons that
- // are installed must be web extensions.
- if (cohortPrefix) {
+ // which means that there's at least one add-on installed. If
+ // getAddonsDisqualifyForMulti returns false, that means that all installed
+ // addons are webextension based, so note that in the cohort name.
+ if (cohortPrefix && !getAddonsDisqualifyForMulti()) {
cohortPrefix = "webextensions-";
}
// The user is in the multi experiment!
// Decide how many content processes to use for this user.
let buckets = MULTI_BUCKETS[updateChannel];
let multiUserSample = getUserSample(true);
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -5106,23 +5106,16 @@ GetMaxWebProcessCount()
// If the user has set dom.ipc.processCount, respect their decision
// regardless of add-ons that might affect their experience or experiment
// cohort.
if (Preferences::HasUserValue(optInPref)) {
return std::max(1u, optInPrefValue);
}
- // If there are add-ons that would make the user's experience poor, don't
- // use more than one web content process.
- if (Preferences::GetBool("extensions.e10sMultiBlocksEnabling", false) &&
- Preferences::GetBool("extensions.e10sMultiBlockedByAddons", false)) {
- return 1;
- }
-
if (Preferences::HasUserValue("dom.ipc.processCount.web")) {
// The user didn't opt in or out so read the .web version of the pref.
return std::max(1, Preferences::GetInt("dom.ipc.processCount.web", 1));
}
return optInPrefValue;
}
const char*