Last active
November 22, 2015 23:44
-
-
Save anaran/d08cf8ccd082e81cf72a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* -*- 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<DOMString> receipts = []; | |
sequence<DOMString> categories = []; | |
}; | |
dictionary LanguageDesc { | |
DOMString target; | |
long revision; | |
DOMString name; | |
}; | |
enum LocaleResourceType { | |
"binary", | |
"json", | |
"text" | |
}; | |
// [NoInterfaceObject, NavigatorProperty="mozApps", | |
// JSImplementation="@mozilla.org/webapps;1"] | |
interface DOMApplicationsRegistry { | |
[CheckAnyPermissions/*="webapps-manage homescreen-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); | |
// Language pack API. | |
// These promises will be rejected if the page is not in an app context, | |
// i.e. they are implicitely acting on getSelf(). | |
Promise<MozMap<sequence<LanguageDesc>>> getAdditionalLanguages(); | |
// Resolves to a different object depending on the dataType value. | |
Promise<any> | |
getLocalizationResource(DOMString language, | |
DOMString version, | |
DOMString path, | |
LocaleResourceType dataType); | |
}; | |
[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; | |
readonly attribute boolean enabled; | |
[Cached, Pure] | |
// readonly attribute sequence<DOMString> 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<MozInterAppConnection> connect(DOMString keyword, optional any rules); | |
Promise<sequence<MozInterAppMessagePort>> getConnections(); | |
// Receipts handling functions. | |
DOMRequest addReceipt(optional DOMString receipt); | |
DOMRequest removeReceipt(optional DOMString receipt); | |
DOMRequest replaceReceipt(optional DOMString oldReceipt, | |
optional DOMString newReceipt); | |
// Export this app as a shareable Blob. | |
Promise<Blob> export(); | |
// Returns the localized value of a property, using either the manifest or | |
// a langpack if one is available. | |
Promise<DOMString> getLocalizedValue(DOMString property, | |
DOMString locale, | |
optional DOMString entryPoint); | |
}; | |
[JSImplementation/*="@mozilla.org/webapps/manager;1"*/, | |
ChromeOnly, | |
CheckAnyPermissions/*="webapps-manage homescreen-webapps-manage"*/] | |
interface DOMApplicationsManager : EventTarget { | |
DOMRequest getAll(); | |
[CheckAnyPermissions/*="webapps-manage"*/] | |
DOMRequest getNotInstalled(); | |
[CheckAnyPermissions/*="webapps-manage"*/] | |
void applyDownload(DOMApplication app); | |
DOMRequest uninstall(DOMApplication app); | |
[CheckAnyPermissions/*"webapps-manage"*/] | |
Promise<DOMApplication> import(Blob blob); | |
[CheckAnyPermissions/*"webapps-manage"*/] | |
Promise<any> extractManifest(Blob blob); | |
[CheckAnyPermissions/*"webapps-manage"*/] | |
void setEnabled(DOMApplication app, boolean state); | |
Promise<Blob> getIcon(DOMApplication app, DOMString iconID, | |
optional DOMString entryPoint); | |
attribute EventHandler oninstall; | |
attribute EventHandler onuninstall; | |
attribute EventHandler onenabledstatechange; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment