mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-29 03:44:37 +00:00
Bug 1031609 - Remove old e10s Adblock compat code (r=mconley)
This commit is contained in:
parent
9906629c7f
commit
842257593a
@ -8,7 +8,6 @@ let Cu = Components.utils;
|
||||
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
Cu.import('resource://gre/modules/XPCOMUtils.jsm');
|
||||
Cu.import("resource://gre/modules/RemoteAddonsChild.jsm");
|
||||
Cu.import("resource://gre/modules/Timer.jsm");
|
||||
|
||||
#ifdef MOZ_CRASHREPORTER
|
||||
@ -353,8 +352,6 @@ addEventListener("TextZoomChange", function (aEvent) {
|
||||
}
|
||||
}, false);
|
||||
|
||||
RemoteAddonsChild.init(this);
|
||||
|
||||
addMessageListener("NetworkPrioritizer:AdjustPriority", (msg) => {
|
||||
let webNav = docShell.QueryInterface(Ci.nsIWebNavigation);
|
||||
let loadGroup = webNav.QueryInterface(Ci.nsIDocumentLoader)
|
||||
|
@ -211,10 +211,6 @@
|
||||
let RemoteController = Components.utils.import(jsm, {}).RemoteController;
|
||||
this._controller = new RemoteController(this);
|
||||
this.controllers.appendController(this._controller);
|
||||
|
||||
jsm = "resource://gre/modules/RemoteAddonsParent.jsm";
|
||||
let RemoteAddonsParent = Components.utils.import(jsm, {}).RemoteAddonsParent;
|
||||
RemoteAddonsParent.init();
|
||||
]]>
|
||||
</constructor>
|
||||
|
||||
|
@ -1,108 +0,0 @@
|
||||
// -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
|
||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
this.EXPORTED_SYMBOLS = ["RemoteAddonsChild"];
|
||||
|
||||
const Ci = Components.interfaces;
|
||||
const Cc = Components.classes;
|
||||
const Cu = Components.utils;
|
||||
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
Cu.import('resource://gre/modules/Services.jsm');
|
||||
|
||||
/**
|
||||
* This code registers an nsIContentPolicy in the child process. When
|
||||
* it runs, it notifies the parent that it needs to run its own
|
||||
* nsIContentPolicy list. If any policy in the parent rejects the load,
|
||||
* that answer is returned to the child.
|
||||
*/
|
||||
let ContentPolicyChild = {
|
||||
_classDescription: "Addon shim content policy",
|
||||
_classID: Components.ID("6e869130-635c-11e2-bcfd-0800200c9a66"),
|
||||
_contractID: "@mozilla.org/addon-child/policy;1",
|
||||
|
||||
/**
|
||||
* We only notify the parent of the load if it has any
|
||||
* non-builtin policies registered.
|
||||
*/
|
||||
_childNeedsHook: false,
|
||||
|
||||
init: function(aContentGlobal) {
|
||||
let registrar = Components.manager.QueryInterface(Ci.nsIComponentRegistrar);
|
||||
registrar.registerFactory(this._classID, this._classDescription, this._contractID, this);
|
||||
|
||||
var catMan = Cc["@mozilla.org/categorymanager;1"].getService(Ci.nsICategoryManager);
|
||||
catMan.addCategoryEntry("content-policy", this._contractID, this._contractID, false, true);
|
||||
|
||||
let policiesToIgnore = [];
|
||||
let services = Cc["@mozilla.org/categorymanager;1"].getService(Ci.nsICategoryManager)
|
||||
.enumerateCategory("content-policy");
|
||||
while (services.hasMoreElements()) {
|
||||
let item = services.getNext();
|
||||
let name = item.QueryInterface(Components.interfaces.nsISupportsCString).toString();
|
||||
policiesToIgnore.push(name);
|
||||
}
|
||||
|
||||
let cpmm = Cc["@mozilla.org/childprocessmessagemanager;1"]
|
||||
.getService(Ci.nsISyncMessageSender);
|
||||
cpmm.addMessageListener("Addons:ContentPolicy:NeedHook", this);
|
||||
cpmm.sendAsyncMessage("Addons:ContentPolicy:IgnorePolicies", { "policies": policiesToIgnore });
|
||||
},
|
||||
|
||||
receiveMessage: function(aMessage) {
|
||||
switch (aMessage.name) {
|
||||
case "Addons:ContentPolicy:NeedHook":
|
||||
this._childNeedsHook = aMessage.data.needed;
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
QueryInterface: XPCOMUtils.generateQI([Ci.nsIContentPolicy, Ci.nsIObserver,
|
||||
Ci.nsIChannelEventSink, Ci.nsIFactory,
|
||||
Ci.nsISupportsWeakReference]),
|
||||
|
||||
shouldLoad: function(contentType, contentLocation, requestOrigin, node, mimeTypeGuess, extra) {
|
||||
if (!this._childNeedsHook)
|
||||
return Ci.nsIContentPolicy.ACCEPT;
|
||||
|
||||
let cpmm = Cc["@mozilla.org/childprocessmessagemanager;1"]
|
||||
.getService(Ci.nsISyncMessageSender);
|
||||
var rval = cpmm.sendRpcMessage("Addons:ContentPolicy:Run", {
|
||||
contentType: contentType,
|
||||
mimeTypeGuess: mimeTypeGuess
|
||||
}, {
|
||||
contentLocation: contentLocation,
|
||||
requestOrigin: requestOrigin,
|
||||
node: node
|
||||
});
|
||||
if (rval.length != 1)
|
||||
return Ci.nsIContentPolicy.ACCEPT;
|
||||
|
||||
return rval[0];
|
||||
},
|
||||
|
||||
shouldProcess: function(contentType, contentLocation, requestOrigin, insecNode, mimeType, extra) {
|
||||
return Ci.nsIContentPolicy.ACCEPT;
|
||||
},
|
||||
|
||||
createInstance: function(outer, iid) {
|
||||
if (outer)
|
||||
throw Cr.NS_ERROR_NO_AGGREGATION;
|
||||
return this.QueryInterface(iid);
|
||||
},
|
||||
};
|
||||
|
||||
let RemoteAddonsChild = {
|
||||
initialized: false,
|
||||
|
||||
init: function(aContentGlobal) {
|
||||
if (this.initialized)
|
||||
return;
|
||||
|
||||
this.initialized = true;
|
||||
|
||||
ContentPolicyChild.init(aContentGlobal);
|
||||
},
|
||||
};
|
@ -1,129 +0,0 @@
|
||||
// -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
|
||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
this.EXPORTED_SYMBOLS = ["RemoteAddonsParent"];
|
||||
|
||||
const Ci = Components.interfaces;
|
||||
const Cc = Components.classes;
|
||||
const Cu = Components.utils;
|
||||
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
Cu.import('resource://gre/modules/Services.jsm');
|
||||
|
||||
/**
|
||||
* This code listens for nsIContentPolicy hooks firing in child
|
||||
* processes. It then fires all hooks in the parent process and
|
||||
* returns the result to the child.
|
||||
*/
|
||||
let ContentPolicyParent = {
|
||||
/**
|
||||
* Some builtin policies will have already run in the child, and
|
||||
* there's no reason to run them in the parent. This is a list of
|
||||
* those policies. We assume that all child processes have the same
|
||||
* set of built-in policies.
|
||||
*/
|
||||
_policiesToIgnore: [],
|
||||
|
||||
init: function() {
|
||||
let ppmm = Cc["@mozilla.org/parentprocessmessagemanager;1"]
|
||||
.getService(Ci.nsIMessageBroadcaster);
|
||||
ppmm.addMessageListener("Addons:ContentPolicy:IgnorePolicies", this);
|
||||
ppmm.addMessageListener("Addons:ContentPolicy:Run", this);
|
||||
|
||||
Services.obs.addObserver(this, "xpcom-category-entry-added", true);
|
||||
Services.obs.addObserver(this, "xpcom-category-entry-removed", true);
|
||||
},
|
||||
|
||||
observe: function(aSubject, aTopic, aData) {
|
||||
switch (aTopic) {
|
||||
case "xpcom-category-entry-added":
|
||||
case "xpcom-category-entry-removed":
|
||||
if (aData == "content-policy")
|
||||
this.updatePolicies();
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* There's no need for the child process to inform us about the
|
||||
* shouldLoad hook if we don't have any policies in the parent to
|
||||
* run. This code iterates over the parent's policies, looking for
|
||||
* ones that should not be ignored. Based on that, it tells the
|
||||
* children whether it needs to be informed about the shouldLoad
|
||||
* hook.
|
||||
*/
|
||||
updatePolicies: function() {
|
||||
let needHook = false;
|
||||
|
||||
let services = Cc["@mozilla.org/categorymanager;1"].getService(Ci.nsICategoryManager)
|
||||
.enumerateCategory("content-policy");
|
||||
while (services.hasMoreElements()) {
|
||||
let item = services.getNext();
|
||||
let name = item.QueryInterface(Components.interfaces.nsISupportsCString).toString();
|
||||
|
||||
if (this._policiesToIgnore.indexOf(name) == -1) {
|
||||
needHook = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
let ppmm = Cc["@mozilla.org/parentprocessmessagemanager;1"]
|
||||
.getService(Ci.nsIMessageBroadcaster);
|
||||
ppmm.broadcastAsyncMessage("Addons:ContentPolicy:NeedHook", { needed: needHook });
|
||||
},
|
||||
|
||||
receiveMessage: function (aMessage) {
|
||||
switch (aMessage.name) {
|
||||
case "Addons:ContentPolicy:IgnorePolicies":
|
||||
this._policiesToIgnore = aMessage.data.policies;
|
||||
this.updatePolicies();
|
||||
break;
|
||||
|
||||
case "Addons:ContentPolicy:Run":
|
||||
return this.shouldLoad(aMessage.data, aMessage.objects);
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
shouldLoad: function(aData, aObjects) {
|
||||
let services = Cc["@mozilla.org/categorymanager;1"].getService(Ci.nsICategoryManager)
|
||||
.enumerateCategory("content-policy");
|
||||
while (services.hasMoreElements()) {
|
||||
let item = services.getNext();
|
||||
let name = item.QueryInterface(Components.interfaces.nsISupportsCString).toString();
|
||||
if (this._policiesToIgnore.indexOf(name) != -1)
|
||||
continue;
|
||||
|
||||
let policy = Cc[name].getService(Ci.nsIContentPolicy);
|
||||
try {
|
||||
let result = policy.shouldLoad(aData.contentType,
|
||||
aObjects.contentLocation,
|
||||
aObjects.requestOrigin,
|
||||
aObjects.node,
|
||||
aData.mimeTypeGuess,
|
||||
null);
|
||||
if (result != Ci.nsIContentPolicy.ACCEPT && result != 0)
|
||||
return result;
|
||||
} catch (e) {}
|
||||
}
|
||||
|
||||
return Ci.nsIContentPolicy.ACCEPT;
|
||||
},
|
||||
|
||||
QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver, Ci.nsISupportsWeakReference]),
|
||||
};
|
||||
|
||||
let RemoteAddonsParent = {
|
||||
initialized: false,
|
||||
|
||||
init: function() {
|
||||
if (this.initialized)
|
||||
return;
|
||||
|
||||
this.initialized = true;
|
||||
|
||||
ContentPolicyParent.init();
|
||||
},
|
||||
};
|
@ -38,8 +38,6 @@ EXTRA_JS_MODULES += [
|
||||
'Promise-backend.js',
|
||||
'Promise.jsm',
|
||||
'PropertyListUtils.jsm',
|
||||
'RemoteAddonsChild.jsm',
|
||||
'RemoteAddonsParent.jsm',
|
||||
'RemoteController.jsm',
|
||||
'RemoteFinder.jsm',
|
||||
'RemoteSecurityUI.jsm',
|
||||
|
Loading…
Reference in New Issue
Block a user