diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js index 36d2166c482b..0b82c827a293 100644 --- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js @@ -1820,4 +1820,9 @@ pref("print.enable_e10s_testing", false); pref("print.enable_e10s_testing", true); #endif +#ifdef NIGHTLY_BUILD +// Enable e10s add-on interposition by default. +pref("extensions.interposition.enabled", true); +#endif + pref("browser.defaultbrowser.notificationbar", false); diff --git a/toolkit/mozapps/extensions/internal/XPIProvider.jsm b/toolkit/mozapps/extensions/internal/XPIProvider.jsm index 83711f9e0f98..46a88da2b13c 100644 --- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm +++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm @@ -84,6 +84,7 @@ const PREF_INSTALL_REQUIREBUILTINCERTS = "extensions.install.requireBuiltInCerts const PREF_INSTALL_DISTRO_ADDONS = "extensions.installDistroAddons"; const PREF_BRANCH_INSTALLED_ADDON = "extensions.installedDistroAddon."; const PREF_SHOWN_SELECTION_UI = "extensions.shownSelectionUI"; +const PREF_INTERPOSITION_ENABLED = "extensions.interposition.enabled"; const PREF_EM_MIN_COMPAT_APP_VERSION = "extensions.minCompatibleAppVersion"; const PREF_EM_MIN_COMPAT_PLATFORM_VERSION = "extensions.minCompatiblePlatformVersion"; @@ -4282,13 +4283,11 @@ this.XPIProvider = { let principal = Cc["@mozilla.org/systemprincipal;1"]. createInstance(Ci.nsIPrincipal); -#if defined(NIGHTLY_BUILD) && defined(HAVE_SHIMS) - if (!aMultiprocessCompatible) { + if (!aMultiprocessCompatible && Preferences.get(PREF_INTERPOSITION_ENABLED, false)) { let interposition = Cc["@mozilla.org/addons/multiprocess-shims;1"]. getService(Ci.nsIAddonInterposition); Cu.setAddonInterposition(aId, interposition); } -#endif if (!aFile.exists()) { this.bootstrapScopes[aId] = diff --git a/toolkit/mozapps/extensions/internal/moz.build b/toolkit/mozapps/extensions/internal/moz.build index 45b887335d32..24fe344bf7d2 100644 --- a/toolkit/mozapps/extensions/internal/moz.build +++ b/toolkit/mozapps/extensions/internal/moz.build @@ -14,9 +14,6 @@ EXTRA_JS_MODULES.addons += [ 'SpellCheckDictionaryBootstrap.js', ] -if CONFIG['MOZ_BUILD_APP'] in ['browser']: - DEFINES['HAVE_SHIMS'] = True - # Don't ship unused providers on Android if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'android': EXTRA_JS_MODULES.addons += [ diff --git a/toolkit/xre/moz.build b/toolkit/xre/moz.build index 3a81cd4e3ff1..85e38b4c0da7 100644 --- a/toolkit/xre/moz.build +++ b/toolkit/xre/moz.build @@ -105,9 +105,6 @@ if CONFIG['MOZ_UPDATER']: MSVC_ENABLE_PGO = True -if CONFIG['MOZ_BUILD_APP'] in ['browser']: - DEFINES['HAVE_SHIMS'] = True - include('/ipc/chromium/chromium-config.mozbuild') FINAL_LIBRARY = 'xul' diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp index f290eea346f1..5deb4bc574ad 100644 --- a/toolkit/xre/nsXREDirProvider.cpp +++ b/toolkit/xre/nsXREDirProvider.cpp @@ -551,7 +551,9 @@ nsXREDirProvider::GetFiles(const char* aProperty, nsISimpleEnumerator** aResult) static void RegisterExtensionInterpositions(nsINIParser &parser) { -#if defined(NIGHTLY_BUILD) && defined(HAVE_SHIMS) + if (!mozilla::Preferences::GetBool("extensions.interposition.enabled", false)) + return; + nsCOMPtr interposition = do_GetService("@mozilla.org/addons/multiprocess-shims;1"); @@ -570,7 +572,6 @@ RegisterExtensionInterpositions(nsINIParser &parser) continue; } while (true); -#endif } static void