We are able to remove ServiceWorkerVisible and instead use ServiceWorkersEnabled in its place since we are no longer limiting where ServiceWorker instances are exposed. The correctness of ExtendableMessageEvent.source is addressed later in the stack. Although we enable skip-waiting-installed.https.html here, we also have to make it expected it will sometimes fail due to an inherent IPC race; bug 1926641 describes the situation. Differential Revision: https://phabricator.services.mozilla.com/D180914
64 lines
2.1 KiB
Plaintext
64 lines
2.1 KiB
Plaintext
/* -*- 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/.
|
|
*
|
|
* The origin of this IDL file is
|
|
* http://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html
|
|
* https://w3c.github.io/push-api/
|
|
* https://notifications.spec.whatwg.org/
|
|
* https://wicg.github.io/cookie-store/#idl-index
|
|
*/
|
|
|
|
[Func="ServiceWorkersEnabled",
|
|
Exposed=(Window,Worker)]
|
|
interface ServiceWorkerRegistration : EventTarget {
|
|
readonly attribute ServiceWorker? installing;
|
|
readonly attribute ServiceWorker? waiting;
|
|
readonly attribute ServiceWorker? active;
|
|
|
|
[Pref="dom.serviceWorkers.navigationPreload.enabled", SameObject]
|
|
readonly attribute NavigationPreloadManager navigationPreload;
|
|
|
|
readonly attribute USVString scope;
|
|
[Throws]
|
|
readonly attribute ServiceWorkerUpdateViaCache updateViaCache;
|
|
|
|
[Throws, NewObject]
|
|
Promise<undefined> update();
|
|
|
|
[Throws, NewObject]
|
|
Promise<boolean> unregister();
|
|
|
|
// event
|
|
attribute EventHandler onupdatefound;
|
|
};
|
|
|
|
enum ServiceWorkerUpdateViaCache {
|
|
"imports",
|
|
"all",
|
|
"none"
|
|
};
|
|
|
|
// https://w3c.github.io/push-api/
|
|
partial interface ServiceWorkerRegistration {
|
|
[Throws, Exposed=(Window,Worker), Pref="dom.push.enabled"]
|
|
readonly attribute PushManager pushManager;
|
|
};
|
|
|
|
// https://notifications.spec.whatwg.org/
|
|
partial interface ServiceWorkerRegistration {
|
|
[NewObject, Func="mozilla::dom::Notification::PrefEnabled"]
|
|
Promise<undefined> showNotification(DOMString title, optional NotificationOptions options = {});
|
|
[NewObject, Func="mozilla::dom::Notification::PrefEnabled"]
|
|
Promise<sequence<Notification>> getNotifications(optional GetNotificationOptions filter = {});
|
|
};
|
|
|
|
/* Bug 1475599 - We decide to do not implement the entire cookie-store spec.
|
|
* Instead, we implement only the subset that is compatible with document.cookie
|
|
[Exposed=(ServiceWorker,Window)]
|
|
partial interface ServiceWorkerRegistration {
|
|
[SameObject] readonly attribute CookieStoreManager cookies;
|
|
};
|
|
*/
|