forked from mirrors/gecko-dev
		
	MozReview-Commit-ID: FldFilY24kf --HG-- extra : rebase_source : 19a8996a443098fbe095cd14653d10dc80f30b68
		
			
				
	
	
		
			94 lines
		
	
	
	
		
			3.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
	
		
			3.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
/* 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/.
 | 
						|
 */
 | 
						|
 | 
						|
/* We need a JSImplementation but cannot get one without a contract ID.
 | 
						|
   Since Addon and AddonInstall are only ever created from JS they don't need
 | 
						|
   real contract IDs. */
 | 
						|
[ChromeOnly, JSImplementation="dummy"]
 | 
						|
interface Addon {
 | 
						|
  // The add-on's ID.
 | 
						|
  readonly attribute DOMString id;
 | 
						|
  // The add-on's version.
 | 
						|
  readonly attribute DOMString version;
 | 
						|
  // The add-on's type (extension, theme, etc.).
 | 
						|
  readonly attribute DOMString type;
 | 
						|
  // The add-on's name in the current locale.
 | 
						|
  readonly attribute DOMString name;
 | 
						|
  // The add-on's description in the current locale.
 | 
						|
  readonly attribute DOMString description;
 | 
						|
  // If the user has enabled this add-on, note that it still may not be running
 | 
						|
  // depending on whether enabling requires a restart or if the add-on is
 | 
						|
  // incompatible in some way.
 | 
						|
  readonly attribute boolean isEnabled;
 | 
						|
  // If the add-on is currently active in the browser.
 | 
						|
  readonly attribute boolean isActive;
 | 
						|
  // If the add-on may be uninstalled
 | 
						|
  readonly attribute boolean canUninstall;
 | 
						|
 | 
						|
  Promise<boolean> uninstall();
 | 
						|
  Promise<void> setEnabled(boolean value);
 | 
						|
};
 | 
						|
 | 
						|
[ChromeOnly, JSImplementation="dummy"]
 | 
						|
interface AddonInstall : EventTarget {
 | 
						|
  // One of the STATE_* symbols from AddonManager.jsm
 | 
						|
  readonly attribute DOMString state;
 | 
						|
  // One of the ERROR_* symbols from AddonManager.jsm, or null
 | 
						|
  readonly attribute DOMString? error;
 | 
						|
  // How many bytes have been downloaded
 | 
						|
  readonly attribute long long progress;
 | 
						|
  // How many total bytes will need to be downloaded or -1 if unknown
 | 
						|
  readonly attribute long long maxProgress;
 | 
						|
 | 
						|
  Promise<void> install();
 | 
						|
  Promise<void> cancel();
 | 
						|
};
 | 
						|
 | 
						|
dictionary addonInstallOptions {
 | 
						|
  required DOMString url;
 | 
						|
  // If a non-empty string is passed for "hash", it is used to verify the
 | 
						|
  // checksum of the downloaded XPI before installing.  If is omitted or if
 | 
						|
  // it is null or empty string, no checksum verification is performed.
 | 
						|
  DOMString? hash = null;
 | 
						|
};
 | 
						|
 | 
						|
[HeaderFile="mozilla/AddonManagerWebAPI.h",
 | 
						|
 Func="mozilla::AddonManagerWebAPI::IsAPIEnabled",
 | 
						|
 NavigatorProperty="mozAddonManager",
 | 
						|
 JSImplementation="@mozilla.org/addon-web-api/manager;1"]
 | 
						|
interface AddonManager : EventTarget {
 | 
						|
  /**
 | 
						|
   * Gets information about an add-on
 | 
						|
   *
 | 
						|
   * @param  id
 | 
						|
   *         The ID of the add-on to test for.
 | 
						|
   * @return A promise. It will resolve to an Addon if the add-on is installed.
 | 
						|
   */
 | 
						|
  Promise<Addon> getAddonByID(DOMString id);
 | 
						|
 | 
						|
  /**
 | 
						|
   * Creates an AddonInstall object for a given URL.
 | 
						|
   *
 | 
						|
   * @param options
 | 
						|
   *        Only one supported option: 'url', the URL of the addon to install.
 | 
						|
   * @return A promise that resolves to an instance of AddonInstall.
 | 
						|
   */
 | 
						|
  Promise<AddonInstall> createInstall(optional addonInstallOptions options);
 | 
						|
 | 
						|
  // Indicator to content whether permissions prompts are enabled
 | 
						|
  readonly attribute boolean permissionPromptsEnabled;
 | 
						|
 | 
						|
  /* Hooks for managing event listeners */
 | 
						|
  [ChromeOnly]
 | 
						|
  void eventListenerWasAdded(DOMString type);
 | 
						|
  [ChromeOnly]
 | 
						|
  void eventListenerWasRemoved(DOMString type);
 | 
						|
};
 | 
						|
 | 
						|
[ChromeOnly,Exposed=System,HeaderFile="mozilla/AddonManagerWebAPI.h"]
 | 
						|
interface AddonManagerPermissions {
 | 
						|
  static boolean isHostPermitted(DOMString host);
 | 
						|
};
 | 
						|
 |