An interface describing a global application service that handles performing
 background update checks and provides utilities for selecting and
 downloading update patches.
[scriptable, uuid(9849c4bf-5197-4d22-baa8-e3b44a1703d2)]
interface nsIApplicationUpdateService : nsISupports

Attributes

 The Update Checker used for background update checking.
readonly attribute nsIUpdateChecker backgroundChecker
 Whether or not the Update Service can download and install updates.
 This is a function of whether or not the current user has access
 privileges to the install directory.
readonly attribute boolean canUpdate
 Whether or not there is an download happening at the moment.
readonly attribute boolean isDownloading

Methods

 Adds a listener that receives progress and state information about the
 update that is currently being downloaded, e.g. to update a user
 interface.
 @param   listener
          An object implementing nsIRequestObserver and optionally
          nsIProgressEventSink that is to be notified of state and
          progress information as the update is downloaded.
void addDownloadListener(in nsIRequestObserver listener)

AString downloadUpdate(in nsIUpdate update, in boolean background)
 Pauses the active update download process
void pauseDownload()
 Removes a listener that is receiving progress and state information
 about the update that is currently being downloaded.
 @param   listener
          The listener object to remove.
void removeDownloadListener(in nsIRequestObserver listener)
 Selects the best update to install from a list of available updates.
 @param   updates
          An array of updates that are available
 @param   updateCount
          The length of the |updates| array
nsIUpdate selectUpdate([array, size_is(updateCount)] in nsIUpdate updates, in unsigned long updateCount)