Bug 1251334 - Create a disposable pref to force-disable e10s in an emergency. r=jimm
MozReview-Commit-ID: KHepsSkf7rp
--- a/toolkit/xre/nsAppRunner.cpp
+++ b/toolkit/xre/nsAppRunner.cpp
@@ -4635,23 +4635,25 @@ enum {
kE10sEnabledByUser = 0,
kE10sEnabledByDefault = 1,
kE10sDisabledByUser = 2,
// kE10sDisabledInSafeMode = 3, was removed in bug 1172491.
kE10sDisabledForAccessibility = 4,
kE10sDisabledForMacGfx = 5,
kE10sDisabledForBidi = 6,
kE10sDisabledForAddons = 7,
+ kE10sForceDisabled = 8,
};
#ifdef XP_WIN
const char* kAccessibilityLastRunDatePref = "accessibility.lastLoadDate";
const char* kAccessibilityLoadedLastSessionPref = "accessibility.loadedInLastSession";
#endif // XP_WIN
const char* kForceEnableE10sPref = "browser.tabs.remote.force-enable";
+const char* kForceDisableE10sPref = "browser.tabs.remote.force-disable";
#ifdef XP_WIN
static inline uint32_t
PRTimeToSeconds(PRTime t_usec)
{
PRTime usec_per_sec = PR_USEC_PER_SEC;
return uint32_t(t_usec /= usec_per_sec);
}
@@ -4802,16 +4804,23 @@ mozilla::BrowserTabsRemoteAutostart()
// Uber override pref for manual testing purposes
if (Preferences::GetBool(kForceEnableE10sPref, false)) {
gBrowserTabsRemoteAutostart = true;
prefEnabled = true;
status = kE10sEnabledByUser;
}
+ // Uber override pref for emergency blocking
+ if (gBrowserTabsRemoteAutostart &&
+ Preferences::GetBool(kForceDisableE10sPref, false)) {
+ gBrowserTabsRemoteAutostart = false;
+ status = kE10sForceDisabled;
+ }
+
gBrowserTabsRemoteStatus = status;
mozilla::Telemetry::Accumulate(mozilla::Telemetry::E10S_STATUS, status);
if (Preferences::GetBool("browser.enabledE10SFromPrompt", false)) {
mozilla::Telemetry::Accumulate(mozilla::Telemetry::E10S_STILL_ACCEPTED_FROM_PROMPT,
gBrowserTabsRemoteAutostart);
}
if (prefEnabled) {