mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-13 13:25:37 +00:00
Bug 1412456 - Allow CPOWs without interposition (r=aswan)
MozReview-Commit-ID: G1Y6ztyYKA6
This commit is contained in:
parent
f9b9902b91
commit
937af89369
@ -512,15 +512,17 @@ InstallLocation::InstallLocation(JSContext* cx, const JS::Value& value)
|
||||
*****************************************************************************/
|
||||
|
||||
static void
|
||||
EnableShims(const nsAString& addonId)
|
||||
EnableShimsAndCPOWs(const nsAString& addonId, bool enableShims)
|
||||
{
|
||||
NS_ConvertUTF16toUTF8 id(addonId);
|
||||
|
||||
nsCOMPtr<nsIAddonInterposition> interposition =
|
||||
do_GetService("@mozilla.org/addons/multiprocess-shims;1");
|
||||
if (enableShims) {
|
||||
nsCOMPtr<nsIAddonInterposition> interposition =
|
||||
do_GetService("@mozilla.org/addons/multiprocess-shims;1");
|
||||
|
||||
if (!interposition || !xpc::SetAddonInterposition(id, interposition)) {
|
||||
return;
|
||||
if (!interposition || !xpc::SetAddonInterposition(id, interposition)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
Unused << xpc::AllowCPOWsInAddon(id, true);
|
||||
@ -623,8 +625,8 @@ AddonManagerStartup::InitializeExtensions(JS::HandleValue locations, JSContext*
|
||||
if (addon.Enabled() && !addon.Bootstrapped()) {
|
||||
Unused << AddInstallLocation(addon);
|
||||
|
||||
if (enableInterpositions && addon.ShimsEnabled()) {
|
||||
EnableShims(addon.Id());
|
||||
if (addon.ShimsEnabled()) {
|
||||
EnableShimsAndCPOWs(addon.Id(), enableInterpositions);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4215,10 +4215,12 @@ this.XPIProvider = {
|
||||
|
||||
let principal = Cc["@mozilla.org/systemprincipal;1"].
|
||||
createInstance(Ci.nsIPrincipal);
|
||||
if (!aMultiprocessCompatible && Services.prefs.getBoolPref(PREF_INTERPOSITION_ENABLED, false)) {
|
||||
let interposition = Cc["@mozilla.org/addons/multiprocess-shims;1"].
|
||||
getService(Ci.nsIAddonInterposition);
|
||||
Cu.setAddonInterposition(aId, interposition);
|
||||
if (!aMultiprocessCompatible) {
|
||||
if (Services.prefs.getBoolPref(PREF_INTERPOSITION_ENABLED, false)) {
|
||||
let interposition = Cc["@mozilla.org/addons/multiprocess-shims;1"].
|
||||
getService(Ci.nsIAddonInterposition);
|
||||
Cu.setAddonInterposition(aId, interposition);
|
||||
}
|
||||
Cu.allowCPOWsInAddon(aId, true);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user