Files
tubestation/dom/webidl/ServiceWorkerRegistration.webidl
Andrew Sutherland 5fa466d4ef Bug 1113522 - Expose ServiceWorker in Workers. r=dom-worker-reviewers,webidl,edenchuang,emilio
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
2024-10-24 03:02:37 +00:00

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;
};
*/