summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/webextensions/amIWebInstaller.idl
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/mozapps/webextensions/amIWebInstaller.idl')
-rw-r--r--toolkit/mozapps/webextensions/amIWebInstaller.idl82
1 files changed, 82 insertions, 0 deletions
diff --git a/toolkit/mozapps/webextensions/amIWebInstaller.idl b/toolkit/mozapps/webextensions/amIWebInstaller.idl
new file mode 100644
index 000000000..6c5ebca67
--- /dev/null
+++ b/toolkit/mozapps/webextensions/amIWebInstaller.idl
@@ -0,0 +1,82 @@
+/* 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/. */
+
+#include "nsISupports.idl"
+
+interface nsIDOMElement;
+interface nsIVariant;
+interface nsIURI;
+
+/**
+ * A callback function used to notify webpages when a requested install has
+ * ended.
+ *
+ * NOTE: This is *not* the same as InstallListener.
+ */
+[scriptable, function, uuid(bb22f5c0-3ca1-48f6-873c-54e87987700f)]
+interface amIInstallCallback : nsISupports
+{
+ /**
+ * Called when an install completes or fails.
+ *
+ * @param aUrl
+ * The url of the add-on being installed
+ * @param aStatus
+ * 0 if the install was successful or negative if not
+ */
+ void onInstallEnded(in AString aUrl, in int32_t aStatus);
+};
+
+
+/**
+ * This interface is used to allow webpages to start installing add-ons.
+ */
+[scriptable, uuid(658d6c09-15e0-4688-bee8-8551030472a9)]
+interface amIWebInstaller : nsISupports
+{
+ /**
+ * Checks if installation is enabled for a webpage.
+ *
+ * @param aMimetype
+ * The mimetype for the add-on to be installed
+ * @param referer
+ * The URL of the webpage trying to install an add-on
+ * @return true if installation is enabled
+ */
+ boolean isInstallEnabled(in AString aMimetype, in nsIURI aReferer);
+
+ /**
+ * Installs an array of add-ons at the request of a webpage
+ *
+ * @param aMimetype
+ * The mimetype for the add-ons
+ * @param aBrowser
+ * The browser installing the add-ons.
+ * @param aReferer
+ * The URI for the webpage installing the add-ons
+ * @param aUris
+ * The URIs of add-ons to be installed
+ * @param aHashes
+ * The hashes for the add-ons to be installed
+ * @param aNames
+ * The names for the add-ons to be installed
+ * @param aIcons
+ * The icons for the add-ons to be installed
+ * @param aCallback
+ * An optional callback to notify about installation success and
+ * failure
+ * @param aInstallCount
+ * An optional argument including the number of add-ons to install
+ * @return true if the installation was successfully started
+ */
+ boolean installAddonsFromWebpage(in AString aMimetype,
+ in nsIDOMElement aBrowser,
+ in nsIURI aReferer,
+ [array, size_is(aInstallCount)] in wstring aUris,
+ [array, size_is(aInstallCount)] in wstring aHashes,
+ [array, size_is(aInstallCount)] in wstring aNames,
+ [array, size_is(aInstallCount)] in wstring aIcons,
+ [optional] in amIInstallCallback aCallback,
+ [optional] in uint32_t aInstallCount);
+};