tenfourfox/toolkit/mozapps/extensions/amIWebInstaller.idl
Cameron Kaiser c9b2922b70 hello FPR
2017-04-19 00:56:45 -07:00

83 lines
2.9 KiB
Plaintext

/* 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);
};