Bug 1102634 - [e10s] Add pref for add-on shims (r=ally)

This commit is contained in:
Bill McCloskey 2014-11-21 14:01:23 -08:00
parent 28e2e2a930
commit 7e5124ee68
5 changed files with 10 additions and 11 deletions

View File

@ -1820,4 +1820,9 @@ pref("print.enable_e10s_testing", false);
pref("print.enable_e10s_testing", true); pref("print.enable_e10s_testing", true);
#endif #endif
#ifdef NIGHTLY_BUILD
// Enable e10s add-on interposition by default.
pref("extensions.interposition.enabled", true);
#endif
pref("browser.defaultbrowser.notificationbar", false); pref("browser.defaultbrowser.notificationbar", false);

View File

@ -84,6 +84,7 @@ const PREF_INSTALL_REQUIREBUILTINCERTS = "extensions.install.requireBuiltInCerts
const PREF_INSTALL_DISTRO_ADDONS = "extensions.installDistroAddons"; const PREF_INSTALL_DISTRO_ADDONS = "extensions.installDistroAddons";
const PREF_BRANCH_INSTALLED_ADDON = "extensions.installedDistroAddon."; const PREF_BRANCH_INSTALLED_ADDON = "extensions.installedDistroAddon.";
const PREF_SHOWN_SELECTION_UI = "extensions.shownSelectionUI"; 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_APP_VERSION = "extensions.minCompatibleAppVersion";
const PREF_EM_MIN_COMPAT_PLATFORM_VERSION = "extensions.minCompatiblePlatformVersion"; const PREF_EM_MIN_COMPAT_PLATFORM_VERSION = "extensions.minCompatiblePlatformVersion";
@ -4282,13 +4283,11 @@ this.XPIProvider = {
let principal = Cc["@mozilla.org/systemprincipal;1"]. let principal = Cc["@mozilla.org/systemprincipal;1"].
createInstance(Ci.nsIPrincipal); createInstance(Ci.nsIPrincipal);
#if defined(NIGHTLY_BUILD) && defined(HAVE_SHIMS) if (!aMultiprocessCompatible && Preferences.get(PREF_INTERPOSITION_ENABLED, false)) {
if (!aMultiprocessCompatible) {
let interposition = Cc["@mozilla.org/addons/multiprocess-shims;1"]. let interposition = Cc["@mozilla.org/addons/multiprocess-shims;1"].
getService(Ci.nsIAddonInterposition); getService(Ci.nsIAddonInterposition);
Cu.setAddonInterposition(aId, interposition); Cu.setAddonInterposition(aId, interposition);
} }
#endif
if (!aFile.exists()) { if (!aFile.exists()) {
this.bootstrapScopes[aId] = this.bootstrapScopes[aId] =

View File

@ -14,9 +14,6 @@ EXTRA_JS_MODULES.addons += [
'SpellCheckDictionaryBootstrap.js', 'SpellCheckDictionaryBootstrap.js',
] ]
if CONFIG['MOZ_BUILD_APP'] in ['browser']:
DEFINES['HAVE_SHIMS'] = True
# Don't ship unused providers on Android # Don't ship unused providers on Android
if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'android': if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'android':
EXTRA_JS_MODULES.addons += [ EXTRA_JS_MODULES.addons += [

View File

@ -105,9 +105,6 @@ if CONFIG['MOZ_UPDATER']:
MSVC_ENABLE_PGO = True MSVC_ENABLE_PGO = True
if CONFIG['MOZ_BUILD_APP'] in ['browser']:
DEFINES['HAVE_SHIMS'] = True
include('/ipc/chromium/chromium-config.mozbuild') include('/ipc/chromium/chromium-config.mozbuild')
FINAL_LIBRARY = 'xul' FINAL_LIBRARY = 'xul'

View File

@ -551,7 +551,9 @@ nsXREDirProvider::GetFiles(const char* aProperty, nsISimpleEnumerator** aResult)
static void static void
RegisterExtensionInterpositions(nsINIParser &parser) RegisterExtensionInterpositions(nsINIParser &parser)
{ {
#if defined(NIGHTLY_BUILD) && defined(HAVE_SHIMS) if (!mozilla::Preferences::GetBool("extensions.interposition.enabled", false))
return;
nsCOMPtr<nsIAddonInterposition> interposition = nsCOMPtr<nsIAddonInterposition> interposition =
do_GetService("@mozilla.org/addons/multiprocess-shims;1"); do_GetService("@mozilla.org/addons/multiprocess-shims;1");
@ -570,7 +572,6 @@ RegisterExtensionInterpositions(nsINIParser &parser)
continue; continue;
} }
while (true); while (true);
#endif
} }
static void static void