summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/webextensions
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/mozapps/webextensions')
-rw-r--r--toolkit/mozapps/webextensions/amContentHandler.js100
-rw-r--r--toolkit/mozapps/webextensions/moz.build2
2 files changed, 1 insertions, 101 deletions
diff --git a/toolkit/mozapps/webextensions/amContentHandler.js b/toolkit/mozapps/webextensions/amContentHandler.js
deleted file mode 100644
index 8dc4dfecd..000000000
--- a/toolkit/mozapps/webextensions/amContentHandler.js
+++ /dev/null
@@ -1,100 +0,0 @@
-/* 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/. */
-
-"use strict";
-
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-const Cr = Components.results;
-
-const XPI_CONTENT_TYPE = "application/x-xpinstall";
-const MSG_INSTALL_ADDONS = "WebInstallerInstallAddonsFromWebpage";
-
-Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
-Components.utils.import("resource://gre/modules/Services.jsm");
-
-function amContentHandler() {
-}
-
-amContentHandler.prototype = {
- /**
- * Handles a new request for an application/x-xpinstall file.
- *
- * @param aMimetype
- * The mimetype of the file
- * @param aContext
- * The context passed to nsIChannel.asyncOpen
- * @param aRequest
- * The nsIRequest dealing with the content
- */
- handleContent: function(aMimetype, aContext, aRequest) {
- if (aMimetype != XPI_CONTENT_TYPE)
- throw Cr.NS_ERROR_WONT_HANDLE_CONTENT;
-
- if (!(aRequest instanceof Ci.nsIChannel))
- throw Cr.NS_ERROR_WONT_HANDLE_CONTENT;
-
- let uri = aRequest.URI;
-
- let window = null;
- let callbacks = aRequest.notificationCallbacks ?
- aRequest.notificationCallbacks :
- aRequest.loadGroup.notificationCallbacks;
- if (callbacks)
- window = callbacks.getInterface(Ci.nsIDOMWindow);
-
- aRequest.cancel(Cr.NS_BINDING_ABORTED);
-
- let installs = {
- uris: [uri.spec],
- hashes: [null],
- names: [null],
- icons: [null],
- mimetype: XPI_CONTENT_TYPE,
- triggeringPrincipal: aRequest.loadInfo.triggeringPrincipal,
- callbackID: -1
- };
-
- if (Services.appinfo.processType == Ci.nsIXULRuntime.PROCESS_TYPE_DEFAULT) {
- // When running in the main process this might be a frame inside an
- // in-content UI page, walk up to find the first frame element in a chrome
- // privileged document
- let element = window.frameElement;
- let ssm = Services.scriptSecurityManager;
- while (element && !ssm.isSystemPrincipal(element.ownerDocument.nodePrincipal))
- element = element.ownerDocument.defaultView.frameElement;
-
- if (element) {
- let listener = Cc["@mozilla.org/addons/integration;1"].
- getService(Ci.nsIMessageListener);
- listener.wrappedJSObject.receiveMessage({
- name: MSG_INSTALL_ADDONS,
- target: element,
- data: installs,
- });
- return;
- }
- }
-
- // Fall back to sending through the message manager
- let messageManager = window.QueryInterface(Ci.nsIInterfaceRequestor)
- .getInterface(Ci.nsIDocShell)
- .QueryInterface(Ci.nsIInterfaceRequestor)
- .getInterface(Ci.nsIContentFrameMessageManager);
-
- messageManager.sendAsyncMessage(MSG_INSTALL_ADDONS, installs);
- },
-
- classID: Components.ID("{7beb3ba8-6ec3-41b4-b67c-da89b8518922}"),
- QueryInterface: XPCOMUtils.generateQI([Ci.nsIContentHandler]),
-
- log : function(aMsg) {
- let msg = "amContentHandler.js: " + (aMsg.join ? aMsg.join("") : aMsg);
- Cc["@mozilla.org/consoleservice;1"].getService(Ci.nsIConsoleService).
- logStringMessage(msg);
- dump(msg + "\n");
- }
-};
-
-this.NSGetFactory = XPCOMUtils.generateNSGetFactory([amContentHandler]);
diff --git a/toolkit/mozapps/webextensions/moz.build b/toolkit/mozapps/webextensions/moz.build
index d437bf46d..3e1cf856d 100644
--- a/toolkit/mozapps/webextensions/moz.build
+++ b/toolkit/mozapps/webextensions/moz.build
@@ -19,8 +19,8 @@ XPIDL_SOURCES += [
XPIDL_MODULE = 'extensions'
EXTRA_COMPONENTS += [
+ '../extensions/amContentHandler.js',
'addonManager.js',
- 'amContentHandler.js',
'amInstallTrigger.js',
'amWebAPI.js',
'amWebInstallListener.js',