Implemented by
Interface representing a system for the installation and management of
Extensions, Themes etc.
XXXben - Some of this stuff should go into a management-ey interface,
some into an app-startup-ey interface.
[scriptable, uuid(a3f5396c-a6e8-414a-8fbc-c8d831746328)]
interface nsIExtensionManager : nsISupports
Attributes
The Extensions Datasource
XXXben - the datasource should be registered with the RDF system, so it
can be accessed via rdf:extensions, and not exposed through the API
like this.
readonly attribute
nsIRDFDataSource
datasource
An enumeration of all registered Install Items
readonly attribute
nsISimpleEnumerator
installLocations
Methods
Adds active download entries to the UI
@param items
A list of nsIUpdateItems to entries to add
@param itemCount
The length of |items|
@param fromChrome
true when called from chrome
false when not called from chrome (e.g. web page)
void
addDownloads([array, size_is(itemCount)] in nsIUpdateItem items, in unsigned long itemCount, in boolean fromChrome)
Adds a download progress listener so the front end can listen to download
and install progress.
@param listener
The listener to add
@returns the index of the added listen in the listener list.
long
addUpdateListener(in nsIAddonUpdateListener listener)
Determines if there are incompatible items installed (and offers to
upgrade them to newer versions if available, via a UI).
@returns true if there were incompatible items that were disabled
and the application needs to restart to re-register components,
chrome etc, false otherwise.
boolean
checkForMismatches()
Disables an enabled item
@param id
The GUID of the item.
void
disableItem(in AString id)
Enables a disabled item
@param id
The GUID of the item.
void
enableItem(in AString id)
Retrieves a list of nsIUpdateItems of items that are incompatible
with the supplied parameters.
@param id
The id of the application to check compatibility against
@param version
The version of the application to check compatibility against
@param type
The type of item to return
@param includeDisabled
true if disabled items should be included in the result set,
false otherwise
@param countRef
The XPCJS reference to the number of items returned.
@returns An array of incompatible nsIUpdateItems.
void
getIncompatibleItemList(in AString id, in AString version, in unsigned long type, in boolean includeDisabled, out unsigned long itemCount, [array, size_is(itemCount), retval] out nsIUpdateItem items)
Gets the Install Location for an item
@param id
The GUID of the item
@returns The Install Location where the item is installed.
nsIInstallLocation
getInstallLocation(in AString id)
Gets a nsIUpdateItem for the item with the specified id.
@param id
The GUID of the item to construct a nsIUpdateItem for.
@returns The nsIUpdateItem representing the item.
nsIUpdateItem
getItemForID(in AString id)
Retrieves a list of visible nsIUpdateItems of items matching the
specified type.
@param type
The type of item to return.
@param countRef
The XPCJS reference to the number of items returned.
@returns An array of nsIUpdateItems matching the id/type filter.
XXXben - it would be good if this function took an optional
install location.
void
getItemList(in unsigned long type, out unsigned long itemCount, [array, size_is(itemCount), retval] out nsIUpdateItem items)
Handle command line flags, e.g. -install-global-[extension|theme]
@param cmdLine
the command line the application was started with
XXXben - move this off this API - currently it is only used for
global installation, and the apprunner can do this directly
with |installItemFromFile|
void
handleCommandLineArgs(in nsICommandLine cmdline)
Installs an item from a XPI/JAR file into the location specified.
@param xpiFile
The source file to install from. This function stages a copy
of this file for persistence across potential application
restarts, you are responsible for removing the file you pass
in.
@param installLocationKey
The name identifier of an Install Location to install into.
void
installItemFromFile(in nsIFile xpiFile, in AString installLocationKey)
Move an Item to the index of another item in its container.
@param movingID
The ID of an item to be moved.
@param destinationID
The ID of an item to move an item to.
void
moveToIndexOf(in AString movingID, in AString destinationID)
Removes an active download from the UI
@param url
The URL of the active download to remove
void
removeDownload(in AString url)
Removes a download progress listener.
@param index
The index of the listener to remove.
void
removeUpdateListenerAt(in long index)
Starts the Extension Manager, checking for item changes, additions and
removals, and finishing pending operations.
@param commandLine
The command line the application was started with.
@returns true if the application has rewritten the extensions.ini file
and needs to restart to register components/chrome etc,
false otherwise
boolean
start(in nsICommandLine commandLine)
Uninstalls an item
@param id
The GUID of the item.
void
uninstallItem(in AString id)
Checks for updates to a list of items.
@param items
An array of nsIUpdateItems to check for updates for.
@param itemCount
The length of |items|
@param versionUpdateOnly
false if this check should find the newest versions available,
true if it should only find newer target application compatibility
information for the currently installed version.
2 if this check should only find target application compatibility
information for the currently installed version and synchronize
the values.
@param listener
An nsIAddonUpdateCheckListener object which will be notified during
the update check process.
void
update([array, size_is(itemCount)] in nsIUpdateItem items, in unsigned long itemCount, in unsigned long versionUpdateOnly, in nsIAddonUpdateCheckListener listener)
Compare to: