DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (27a812186ff4)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
/* 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);
};