AddonManager Reference

class AddonManager()

This is the public API that UI and developers should be calling. All methods just forward to AddonManagerInternal.

AddonManager.addAddonListener()

Adds a new AddonListener if the listener is not already registered.

Arguments:
  • aListener (AddonManagerListener) – The AddonListener to add.
AddonManager.addInstallListener()

Adds a new InstallListener if the listener is not already registered.

Arguments:
  • aListener – The InstallListener to add
AddonManager.addManagerListener()

Adds a new AddonManagerListener if the listener is not already registered.

Arguments:
  • aListener (AddonManagerListener) – The listener to add
AddonManager.addStartupChange()

Adds a add-on to the list of detected changes for this startup. If addStartupChange is called multiple times for the same add-on in the same startup then only the most recent change will be remembered.

Arguments:
  • aType – The type of change as a string. Providers can define their own types of changes or use the existing defined STARTUP_CHANGE_* constants
  • aID – The ID of the add-on
AddonManager.addTypeListener()

Adds a new TypeListener if the listener is not already registered.

Arguments:
  • aListener (TypeListener) – The TypeListener to add
AddonManager.addUpgradeListener()

Adds new or overrides existing UpgradeListener.

Arguments:
  • aInstanceID – The instance ID of an addon to register a listener for.
  • aCallback – The callback to invoke when updates are available for this addon.
Throws:

if there is no addon matching the instanceID

AddonManager.backgroundUpdateCheck()

Performs a background update check by starting an update for all add-ons that can be updated.

Returns:null – Promise Resolves when the background update check is complete (the resulting addon installations may still be in progress).
AddonManager.callAddonListeners()

Calls all registered AddonListeners with an event. Any parameters after the method parameter are passed to the listener.

Arguments:
  • aMethod – The method on the listeners to call
AddonManager.callInstallListeners()

Calls all registered InstallListeners with an event. Any parameters after the extraListeners parameter are passed to the listener.

Arguments:
  • aMethod – The method on the listeners to call
  • aExtraListeners – An optional array of extra InstallListeners to also call
Returns:

false if any of the listeners returned false, true otherwise

AddonManager.callManagerListeners()

Calls all registered AddonManagerListeners with an event. Any parameters after the method parameter are passed to the listener.

Arguments:
  • aMethod – The method on the listeners to call
AddonManager.callProviders()

Calls a method on all registered providers if it exists and consumes any thrown exception. Return values are ignored. Any parameters after the method parameter are passed to the provider’s method. WARNING: Do not use for asynchronous calls; callProviders() does not invoke callbacks if provider methods throw synchronous exceptions.

Arguments:
  • aMethod – The method name to call
AddonManager.escapeAddonURI()

Replaces %…% strings in an addon url (update and updateInfo) with appropriate values.

Arguments:
  • aAddon – The Addon representing the add-on
  • aUri – The string representation of the URI to escape
  • aAppVersion – The optional application version to use for %APP_VERSION%
Returns:

The appropriately escaped URI.

AddonManager.getActiveAddons()

Gets active add-ons of specific types.

This is similar to getAddonsByTypes() but it may return a limited amount of information about only active addons. Consequently, it can be implemented by providers using only immediately available data as opposed to getAddonsByTypes which may require I/O).

Arguments:
  • aTypes – An optional array of types to retrieve. Each type is a string name
AddonManager.getAddonByID()

Asynchronously gets an add-on with a specific ID.

Arguments:
  • aID (string) – The ID of the add-on to retrieve
Throws:

if the aID argument is not specified

Returns:

Promise – resolves with the found Addon or null if no such add-on exists. Never rejects.

AddonManager.getAddonByInstanceID()

Returns an Addon corresponding to an instance ID.

Arguments:
  • aInstanceID – An Addon Instance ID symbol
Throws:

if the aInstanceID argument is not specified or the AddonManager is not initialized

Returns:

Promise

AddonManager.getAddonBySyncGUID()

Asynchronously get an add-on with a specific Sync GUID.

Arguments:
  • aGUID – String GUID of add-on to retrieve
Throws:

if the aGUID argument is not specified

AddonManager.getAddonsByIDs()

Asynchronously gets an array of add-ons.

Arguments:
  • aIDs – The array of IDs to retrieve
Throws:

if the aIDs argument is not specified

Returns:

Promise

AddonManager.getAddonsByTypes()

Asynchronously gets add-ons of specific types.

Arguments:
  • aTypes – An optional array of types to retrieve. Each type is a string name
AddonManager.getAddonsWithOperationsByTypes()

Asynchronously gets add-ons that have operations waiting for an application restart to complete.

Arguments:
  • aTypes – An optional array of types to retrieve. Each type is a string name
AddonManager.getAllAddons()

Asynchronously gets all installed add-ons.

AddonManager.getAllInstalls()

Asynchronously gets all current AddonInstalls.

AddonManager.getInstallForFile()

Asynchronously gets an AddonInstall for an nsIFile.

Arguments:
  • aFile – The nsIFile where the add-on is located
  • aMimetype – An optional mimetype hint for the add-on
Throws:

if the aFile or aCallback arguments are not specified

AddonManager.getInstallForURL()

Asynchronously gets an AddonInstall for a URL.

Arguments:
  • aUrl – The string represenation of the URL the add-on is located at
  • aMimetype – The mimetype of the add-on
  • aHash – An optional hash of the add-on
  • aName – An optional placeholder name while the add-on is being downloaded
  • aIcons – Optional placeholder icons while the add-on is being downloaded
  • aVersion – An optional placeholder version while the add-on is being downloaded
  • aBrowser – An optional <browser> element for download permissions prompts.
Throws:

if the aUrl, aCallback or aMimetype arguments are not specified

AddonManager.getInstallsByTypes()

Asynchronously gets all current AddonInstalls optionally limiting to a list of types.

Arguments:
  • aTypes – An optional array of types to retrieve. Each type is a string name
Throws:

If the aCallback argument is not specified

AddonManager.getPreferredIconURL()

Gets an icon from the icon set provided by the add-on that is closest to the specified size.

The optional window parameter will be used to determine the screen resolution and select a more appropriate icon. Calling this method with 48px on retina screens will try to match an icon of size 96px.

Arguments:
  • aAddon – An addon object, meaning: An object with either an icons property that is a key-value list of icon size and icon URL, or an object having an iconURL and icon64URL property.
  • aSize – Ideal icon size in pixels
  • aWindow – Optional window object for determining the correct scale.
Returns:

String – The absolute URL of the icon or null if the addon doesn’t have icons

AddonManager.getStartupChanges()

Gets an array of add-on IDs that changed during the most recent startup.

Arguments:
  • aType – The type of startup change to get
Returns:

An array of add-on IDs

AddonManager.init
AddonManager.installAddonFromAOM()

Starts installation of an AddonInstall created from add-ons manager front-end code (e.g., drag-and-drop of xpis or “Install Add-on from File”

Arguments:
  • browser – The browser element where the installation was initiated
  • uri – The URI of the page where the installation was initiated
  • install – The AddonInstall to be installed
AddonManager.installAddonFromWebpage()

Starts installation of an AddonInstall notifying the registered web install listener of blocked or started installs.

Arguments:
  • aMimetype – The mimetype of add-ons being installed
  • aBrowser – The optional browser element that started the installs
  • aInstallingPrincipal – The nsIPrincipal that initiated the install
  • aInstall – The AddonInstall to be installed
AddonManager.installTemporaryAddon()

Installs a temporary add-on from a local file or directory.

Arguments:
  • aFile – An nsIFile for the file or directory of the add-on to be temporarily installed.
Returns:

a Promise that rejects if the add-on is not a valid restartless add-on or if the same ID is already temporarily installed.

AddonManager.isInstallAllowed()

Checks whether a particular source is allowed to install add-ons of a given mimetype.

Arguments:
  • aMimetype – The mimetype of the add-on
  • aInstallingPrincipal – The nsIPrincipal that initiated the install
Returns:

true if the source is allowed to install this mimetype

AddonManager.isInstallEnabled()

Checks whether installation is enabled for a particular mimetype.

Arguments:
  • aMimetype – The mimetype to check
Returns:

true if installation is enabled for the mimetype

AddonManager.isReady

Boolean indicating whether AddonManager startup has completed.

AddonManager.mapURIToAddonID()

Synchronously map a URI to the corresponding Addon ID.

Mappable URIs are limited to in-application resources belonging to the add-on, such as Javascript compartments, XUL windows, XBL bindings, etc. but do not include URIs from meta data, such as the add-on homepage.

Arguments:
  • aURI – nsIURI to map to an addon id
Returns:

string containing the Addon ID or null

AddonManager.markProviderSafe()

Mark a provider as safe to access via AddonManager APIs, before its startup has completed.

Normally a provider isn’t marked as safe until after its (synchronous) startup() method has returned. Until a provider has been marked safe, it won’t be used by any of the AddonManager APIs. markProviderSafe() allows a provider to mark itself as safe during its startup; this can be useful if the provider wants to perform tasks that block startup, which happen after its required initialization tasks and therefore when the provider is in a safe state.

Arguments:
  • aProvider – Provider object to mark safe
AddonManager.notifyAddonChanged()

Notifies all providers that an add-on has been enabled when that type of add-on only supports a single add-on being enabled at a time. This allows the providers to disable theirs if necessary.

Arguments:
  • aID – The ID of the enabled add-on
  • aType – The type of the enabled add-on
  • aPendingRestart – A boolean indicating if the change will only take place the next time the application is restarted
AddonManager.observe()

Notified when a preference we’re interested in has changed.

AddonManager.registerProvider()

Registers a new AddonProvider.

Arguments:
  • aProvider (string) – The provider to register
  • aTypes (Array.<string>) – An optional array of add-on types
AddonManager.removeAddonListener()

Removes an AddonListener if the listener is registered.

Arguments:
  • aListener (object) – The AddonListener to remove
AddonManager.removeInstallListener()

Removes an InstallListener if the listener is registered.

Arguments:
  • aListener – The InstallListener to remove
AddonManager.removeManagerListener()

Removes an AddonManagerListener if the listener is registered.

Arguments:
  • aListener (AddonManagerListener) – The listener to remove
AddonManager.removeStartupChange()

Removes a startup change for an add-on.

Arguments:
  • aType – The type of change
  • aID – The ID of the add-on
AddonManager.removeTypeListener()

Removes an TypeListener if the listener is registered.

Arguments:
  • aListener – The TypeListener to remove
AddonManager.removeUpgradeListener()

Removes an UpgradeListener if the listener is registered.

Arguments:
  • aInstanceID – The instance ID of the addon to remove
AddonManager.shouldAutoUpdate()

Determines whether an Addon should auto-update or not.

Arguments:
  • aAddon – The Addon representing the add-on
Returns:

true if the addon should auto-update, false otherwise.

AddonManager.shutdownManager()

Shuts down the addon manager and all registered providers, this must clean up everything in order for automated tests to fake restarts.

Returns:null – Promise that resolves when all providers and dependent modules have finished shutting down
AddonManager.shutdownState()

Report the current state of asynchronous shutdown

AddonManager.startup()

Initializes the AddonManager, loading any known providers and initializing them.

AddonManager.unregisterProvider()

Unregisters an AddonProvider.

Arguments:
  • aProvider – The provider to unregister
Returns:

Whatever the provider’s ‘shutdown’ method returns (if anything). For providers that have async shutdown methods returning Promises, the caller should wait for that Promise to resolve.

AddonManager.updateAddonAppDisabledStates()

Notifies all providers they need to update the appDisabled property for their add-ons in response to an application change such as a blocklist update.

AddonManager.updateAddonRepositoryData()

Notifies all providers that the repository has updated its data for installed add-ons.