gecko-dev/toolkit/mozapps/extensions/amIWebInstallListener.idl

114 строки
3.8 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 nsIDOMWindow;
interface nsIURI;
interface nsIVariant;
/**
* amIWebInstallInfo is used by the default implementation of
* amIWebInstallListener to communicate with the running application and allow
* it to warn the user about blocked installs and start the installs running.
*/
[scriptable, uuid(8710e692-3989-4dc7-b607-40d57610ae75)]
interface amIWebInstallInfo : nsISupports
{
readonly attribute nsIDOMWindow originatingWindow;
readonly attribute nsIURI originatingURI;
readonly attribute nsIVariant installs;
/**
* Starts all installs.
*/
void install();
};
/**
* The registered amIWebInstallListener is used to notify about new installs
* triggered by websites. The default implementation displays a confirmation
* dialog when add-ons are ready to install and uses the observer service to
* notify when installations are blocked.
*/
[scriptable, uuid(a5503979-89c8-441e-9e4a-321df379c172)]
interface amIWebInstallListener : nsISupports
{
/**
* Called when installation by websites is currently disabled.
*
* @param aWindow
* The window that triggered the installs
* @param aUri
* The URI of the site that triggered the installs
* @param aInstalls
* The AddonInstalls that were blocked
* @param aCount
* The number of AddonInstalls
*/
void onWebInstallDisabled(in nsIDOMWindow aWindow, in nsIURI aUri,
[array, size_is(aCount)] in nsIVariant aInstalls,
[optional] in uint32_t aCount);
/**
* Called when the website is not allowed to directly prompt the user to
* install add-ons.
*
* @param aWindow
* The window that triggered the installs
* @param aUri
* The URI of the site that triggered the installs
* @param aInstalls
* The AddonInstalls that were blocked
* @param aCount
* The number of AddonInstalls
* @return true if the caller should start the installs
*/
boolean onWebInstallBlocked(in nsIDOMWindow aWindow, in nsIURI aUri,
[array, size_is(aCount)] in nsIVariant aInstalls,
[optional] in uint32_t aCount);
/**
* Called when a website wants to ask the user to install add-ons.
*
* @param aWindow
* The window that triggered the installs
* @param aUri
* The URI of the site that triggered the installs
* @param aInstalls
* The AddonInstalls that were requested
* @param aCount
* The number of AddonInstalls
* @return true if the caller should start the installs
*/
boolean onWebInstallRequested(in nsIDOMWindow aWindow, in nsIURI aUri,
[array, size_is(aCount)] in nsIVariant aInstalls,
[optional] in uint32_t aCount);
};
/**
* amIWebInstallPrompt is used, if available, by the default implementation of
* amIWebInstallInfo to display a confirmation UI to the user before running
* installs.
*/
[scriptable, uuid(c5529918-4291-4b56-bd46-e9268900f2a3)]
interface amIWebInstallPrompt : nsISupports
{
/**
* Get a confirmation that the user wants to start the installs.
*
* @param aWindow
* The window that triggered the installs
* @param aUri
* The URI of the site that triggered the installs
* @param aInstalls
* The AddonInstalls that were requested
* @param aCount
* The number of AddonInstalls
*/
void confirm(in nsIDOMWindow aWindow, in nsIURI aUri,
[array, size_is(aCount)] in nsIVariant aInstalls,
[optional] in uint32_t aCount);
};