diff --git a/toolkit/content/browser-child.js b/toolkit/content/browser-child.js index fffbb5200e2d..f0830f1f5813 100644 --- a/toolkit/content/browser-child.js +++ b/toolkit/content/browser-child.js @@ -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) diff --git a/toolkit/content/widgets/remote-browser.xml b/toolkit/content/widgets/remote-browser.xml index 02ab9bed5623..5e11b6430ca1 100644 --- a/toolkit/content/widgets/remote-browser.xml +++ b/toolkit/content/widgets/remote-browser.xml @@ -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(); ]]> diff --git a/toolkit/modules/RemoteAddonsChild.jsm b/toolkit/modules/RemoteAddonsChild.jsm deleted file mode 100644 index 8e666cd5a802..000000000000 --- a/toolkit/modules/RemoteAddonsChild.jsm +++ /dev/null @@ -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); - }, -}; diff --git a/toolkit/modules/RemoteAddonsParent.jsm b/toolkit/modules/RemoteAddonsParent.jsm deleted file mode 100644 index c28cc226c45f..000000000000 --- a/toolkit/modules/RemoteAddonsParent.jsm +++ /dev/null @@ -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(); - }, -}; diff --git a/toolkit/modules/moz.build b/toolkit/modules/moz.build index 7e6022fe74f2..e3694287e2ed 100644 --- a/toolkit/modules/moz.build +++ b/toolkit/modules/moz.build @@ -38,8 +38,6 @@ EXTRA_JS_MODULES += [ 'Promise-backend.js', 'Promise.jsm', 'PropertyListUtils.jsm', - 'RemoteAddonsChild.jsm', - 'RemoteAddonsParent.jsm', 'RemoteController.jsm', 'RemoteFinder.jsm', 'RemoteSecurityUI.jsm',