gecko/dom/system/nsISystemUpdateProvider.idl

74 lines
2.3 KiB
Plaintext

/* 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"
[scriptable, uuid(775edbf5-b4a9-400c-b0ad-ea3c3a027097)]
interface nsISystemUpdateListener : nsISupports
{
/**
* callback for notifying an update package is available for download.
*/
void onUpdateAvailable(in DOMString type,
in DOMString version,
in DOMString description,
in unsigned long long buildDate,
in unsigned long long size);
/**
* callback for notifying the download progress.
*/
void onProgress(in unsigned long long loaded, in unsigned long long total);
/**
* callback for notifying an update package is ready to apply.
*/
void onUpdateReady();
/**
* callback for notifying any error while
* checking/downloading/applying an update package.
*/
void onError(in DOMString errMsg);
};
[scriptable, uuid(c9b7c166-b9cf-4396-a6de-39275e1c0a36)]
interface nsISystemUpdateProvider : nsISupports
{
void checkForUpdate();
void startDownload();
void stopDownload();
void applyUpdate();
/**
* Set the available parameter to the update provider.
* The available parameter is implementation-dependent.
* e.g. "update-url", "last-update-date", "update-status", "update-interval"
*
* @param name The number of languages.
* @param languages An array of languages.
* @return true when setting an available parameter,
* false when setting an unavailable parameter.
*/
bool setParameter(in DOMString name, in DOMString value);
/**
* Get the available parameter from the update provider.
* The available parameter is implementation-dependent.
*
* @param name The available parameter.
* @return The corresponding value to the name.
* Return null if try to get unavailable parameter.
*/
DOMString getParameter(in DOMString name);
/**
* NOTE TO IMPLEMENTORS:
* Need to consider if it is necessary to fire the pending event when
* registering the listener.
* (E.g. UpdateAvailable or UpdateReady event.)
*/
void setListener(in nsISystemUpdateListener listener);
void unsetListener();
};