/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* 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/. */ dictionary InstallParameters { sequence receipts = []; sequence categories = []; }; [NoInterfaceObject, NavigatorProperty="mozApps", JSImplementation="@mozilla.org/webapps;1"] interface DOMApplicationsRegistry { [CheckPermissions="webapps-manage"] readonly attribute DOMApplicationsManager mgmt; DOMRequest install(DOMString url, optional InstallParameters params); DOMRequest installPackage(DOMString url, optional InstallParameters params); DOMRequest getSelf(); DOMRequest getInstalled(); DOMRequest checkInstalled(DOMString manifestUrl); }; [JSImplementation="@mozilla.org/webapps/application;1", ChromeOnly] interface DOMApplication : EventTarget { // manifest and updateManifest will be turned into dictionaries once // in bug 1053033 once bug 963382 is fixed. readonly attribute any manifest; readonly attribute any updateManifest; readonly attribute DOMString manifestURL; readonly attribute DOMString origin; readonly attribute DOMString installOrigin; readonly attribute DOMTimeStamp installTime; readonly attribute boolean removable; [Cached, Pure] readonly attribute sequence receipts; readonly attribute double progress; readonly attribute DOMString installState; readonly attribute DOMTimeStamp lastUpdateCheck; readonly attribute DOMTimeStamp updateTime; readonly attribute boolean downloadAvailable; readonly attribute boolean downloading; readonly attribute boolean readyToApplyDownload; readonly attribute long downloadSize; readonly attribute DOMError? downloadError; attribute EventHandler onprogress; attribute EventHandler ondownloadsuccess; attribute EventHandler ondownloaderror; attribute EventHandler ondownloadavailable; attribute EventHandler ondownloadapplied; void download(); void cancelDownload(); DOMRequest launch(optional DOMString? url); DOMRequest clearBrowserData(); DOMRequest checkForUpdate(); /** * Inter-App Communication APIs. * * https://wiki.mozilla.org/WebAPI/Inter_App_Communication_Alt_proposal * */ Promise connect(DOMString keyword, optional any rules); Promise> getConnections(); // Receipts handling functions. DOMRequest addReceipt(optional DOMString receipt); DOMRequest removeReceipt(optional DOMString receipt); DOMRequest replaceReceipt(optional DOMString oldReceipt, optional DOMString newReceipt); }; [JSImplementation="@mozilla.org/webapps/manager;1", ChromeOnly, CheckPermissions="webapps-manage"] interface DOMApplicationsManager : EventTarget { DOMRequest getAll(); DOMRequest getNotInstalled(); void applyDownload(DOMApplication app); DOMRequest uninstall(DOMApplication app); attribute EventHandler oninstall; attribute EventHandler onuninstall; };