2012-05-21 04:12:37 -07:00
|
|
|
/* 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/. */
|
2010-04-29 13:11:23 -07:00
|
|
|
|
|
|
|
#include "nsISupports.idl"
|
|
|
|
|
2014-11-04 19:20:52 -08:00
|
|
|
interface nsIDOMElement;
|
2010-04-29 13:11:23 -07:00
|
|
|
interface nsIVariant;
|
|
|
|
interface nsIURI;
|
|
|
|
|
2013-12-11 18:08:00 -08:00
|
|
|
/**
|
|
|
|
* 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);
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2010-04-29 13:11:23 -07:00
|
|
|
/**
|
|
|
|
* This interface is used to allow webpages to start installing add-ons.
|
|
|
|
*/
|
2014-11-04 19:20:52 -08:00
|
|
|
[scriptable, uuid(658d6c09-15e0-4688-bee8-8551030472a9)]
|
2010-04-29 13:11:23 -07:00
|
|
|
interface amIWebInstaller : nsISupports
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* Checks if installation is enabled for a webpage.
|
|
|
|
*
|
2010-04-28 09:42:07 -07:00
|
|
|
* @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
|
2010-04-29 13:11:23 -07:00
|
|
|
*/
|
2010-04-28 09:42:07 -07:00
|
|
|
boolean isInstallEnabled(in AString aMimetype, in nsIURI aReferer);
|
2010-04-29 13:11:23 -07:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Installs an array of add-ons at the request of a webpage
|
|
|
|
*
|
2010-04-28 09:42:07 -07:00
|
|
|
* @param aMimetype
|
|
|
|
* The mimetype for the add-ons
|
2014-11-04 19:20:52 -08:00
|
|
|
* @param aBrowser
|
|
|
|
* The browser installing the add-ons.
|
2010-04-28 09:42:07 -07:00
|
|
|
* @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
|
2010-04-29 13:11:23 -07:00
|
|
|
*/
|
2010-04-28 09:42:07 -07:00
|
|
|
boolean installAddonsFromWebpage(in AString aMimetype,
|
2014-11-04 19:20:52 -08:00
|
|
|
in nsIDOMElement aBrowser,
|
2010-04-28 09:42:07 -07:00
|
|
|
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,
|
2012-08-22 08:56:38 -07:00
|
|
|
[optional] in uint32_t aInstallCount);
|
2010-04-29 13:11:23 -07:00
|
|
|
};
|