diff options
Diffstat (limited to 'toolkit/mozapps/webextensions/amIWebInstaller.idl')
-rw-r--r-- | toolkit/mozapps/webextensions/amIWebInstaller.idl | 82 |
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); +}; |