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 (4a108e94d3e2)

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 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
/* 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 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(fa0b47a3-f819-47ac-bc66-4bd1d7f67b1d)]
interface amIWebInstallInfo : nsISupports
{
  readonly attribute nsIDOMElement browser;
  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(d9240d4b-6b3a-4cad-b402-de6c93337e0c)]
interface amIWebInstallListener : nsISupports
{
  /**
   * Called when installation by websites is currently disabled.
   *
   * @param  aBrowser
   *         The browser 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 nsIDOMElement aBrowser, 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  aBrowser
   *         The browser 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 nsIDOMElement aBrowser, 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  aBrowser
   *         The browser 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 nsIDOMElement aBrowser, in nsIURI aUri,
                                [array, size_is(aCount)] in nsIVariant aInstalls,
                                [optional] in uint32_t aCount);
};

[scriptable, uuid(a80b89ad-bb1a-4c43-9cb7-3ae656556f78)]
interface amIWebInstallListener2 : nsISupports
{
  /**
   * Called when a non-same-origin resource attempted to initiate an install.
   * Installs will have already been cancelled and cannot be restarted.
   *
   * @param  aBrowser
   *         The browser 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
   */
  boolean onWebInstallOriginBlocked(in nsIDOMElement aBrowser, 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(386906f1-4d18-45bf-bc81-5dcd68e42c3b)]
interface amIWebInstallPrompt : nsISupports
{
  /**
   * Get a confirmation that the user wants to start the installs.
   *
   * @param  aBrowser
   *         The browser 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 nsIDOMElement aBrowser, in nsIURI aUri,
               [array, size_is(aCount)] in nsIVariant aInstalls,
               [optional] in uint32_t aCount);
};