diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
commit | 0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d (patch) | |
tree | a31f07c9bcca9d56ce61e9a1ffd30ef350d513aa /testing/web-platform/tests/interfaces/service-workers.idl | |
parent | Initial commit. (diff) | |
download | firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.tar.xz firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.zip |
Adding upstream version 115.8.0esr.upstream/115.8.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/tests/interfaces/service-workers.idl')
-rw-r--r-- | testing/web-platform/tests/interfaces/service-workers.idl | 240 |
1 files changed, 240 insertions, 0 deletions
diff --git a/testing/web-platform/tests/interfaces/service-workers.idl b/testing/web-platform/tests/interfaces/service-workers.idl new file mode 100644 index 0000000000..6d44d61deb --- /dev/null +++ b/testing/web-platform/tests/interfaces/service-workers.idl @@ -0,0 +1,240 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content was automatically extracted by Reffy into webref +// (https://github.com/w3c/webref) +// Source: Service Workers Nightly (https://w3c.github.io/ServiceWorker/) + +[SecureContext, Exposed=(Window,Worker)] +interface ServiceWorker : EventTarget { + readonly attribute USVString scriptURL; + readonly attribute ServiceWorkerState state; + undefined postMessage(any message, sequence<object> transfer); + undefined postMessage(any message, optional StructuredSerializeOptions options = {}); + + // event + attribute EventHandler onstatechange; +}; +ServiceWorker includes AbstractWorker; + +enum ServiceWorkerState { + "parsed", + "installing", + "installed", + "activating", + "activated", + "redundant" +}; + +[SecureContext, Exposed=(Window,Worker)] +interface ServiceWorkerRegistration : EventTarget { + readonly attribute ServiceWorker? installing; + readonly attribute ServiceWorker? waiting; + readonly attribute ServiceWorker? active; + [SameObject] readonly attribute NavigationPreloadManager navigationPreload; + + readonly attribute USVString scope; + readonly attribute ServiceWorkerUpdateViaCache updateViaCache; + + [NewObject] Promise<undefined> update(); + [NewObject] Promise<boolean> unregister(); + + // event + attribute EventHandler onupdatefound; +}; + +enum ServiceWorkerUpdateViaCache { + "imports", + "all", + "none" +}; + +partial interface Navigator { + [SecureContext, SameObject] readonly attribute ServiceWorkerContainer serviceWorker; +}; + +partial interface WorkerNavigator { + [SecureContext, SameObject] readonly attribute ServiceWorkerContainer serviceWorker; +}; + +[SecureContext, Exposed=(Window,Worker)] +interface ServiceWorkerContainer : EventTarget { + readonly attribute ServiceWorker? controller; + readonly attribute Promise<ServiceWorkerRegistration> ready; + + [NewObject] Promise<ServiceWorkerRegistration> register(USVString scriptURL, optional RegistrationOptions options = {}); + + [NewObject] Promise<(ServiceWorkerRegistration or undefined)> getRegistration(optional USVString clientURL = ""); + [NewObject] Promise<FrozenArray<ServiceWorkerRegistration>> getRegistrations(); + + undefined startMessages(); + + // events + attribute EventHandler oncontrollerchange; + attribute EventHandler onmessage; // event.source of message events is ServiceWorker object + attribute EventHandler onmessageerror; +}; + +dictionary RegistrationOptions { + USVString scope; + WorkerType type = "classic"; + ServiceWorkerUpdateViaCache updateViaCache = "imports"; +}; + +[SecureContext, Exposed=(Window,Worker)] +interface NavigationPreloadManager { + Promise<undefined> enable(); + Promise<undefined> disable(); + Promise<undefined> setHeaderValue(ByteString value); + Promise<NavigationPreloadState> getState(); +}; + +dictionary NavigationPreloadState { + boolean enabled = false; + ByteString headerValue; +}; + +[Global=(Worker,ServiceWorker), Exposed=ServiceWorker] +interface ServiceWorkerGlobalScope : WorkerGlobalScope { + [SameObject] readonly attribute Clients clients; + [SameObject] readonly attribute ServiceWorkerRegistration registration; + [SameObject] readonly attribute ServiceWorker serviceWorker; + + [NewObject] Promise<undefined> skipWaiting(); + + attribute EventHandler oninstall; + attribute EventHandler onactivate; + attribute EventHandler onfetch; + + attribute EventHandler onmessage; + attribute EventHandler onmessageerror; +}; + +[Exposed=ServiceWorker] +interface Client { + readonly attribute USVString url; + readonly attribute FrameType frameType; + readonly attribute DOMString id; + readonly attribute ClientType type; + undefined postMessage(any message, sequence<object> transfer); + undefined postMessage(any message, optional StructuredSerializeOptions options = {}); +}; + +[Exposed=ServiceWorker] +interface WindowClient : Client { + readonly attribute DocumentVisibilityState visibilityState; + readonly attribute boolean focused; + [SameObject] readonly attribute FrozenArray<USVString> ancestorOrigins; + [NewObject] Promise<WindowClient> focus(); + [NewObject] Promise<WindowClient?> navigate(USVString url); +}; + +enum FrameType { + "auxiliary", + "top-level", + "nested", + "none" +}; + +[Exposed=ServiceWorker] +interface Clients { + // The objects returned will be new instances every time + [NewObject] Promise<(Client or undefined)> get(DOMString id); + [NewObject] Promise<FrozenArray<Client>> matchAll(optional ClientQueryOptions options = {}); + [NewObject] Promise<WindowClient?> openWindow(USVString url); + [NewObject] Promise<undefined> claim(); +}; + +dictionary ClientQueryOptions { + boolean includeUncontrolled = false; + ClientType type = "window"; +}; + +enum ClientType { + "window", + "worker", + "sharedworker", + "all" +}; + +[Exposed=ServiceWorker] +interface ExtendableEvent : Event { + constructor(DOMString type, optional ExtendableEventInit eventInitDict = {}); + undefined waitUntil(Promise<any> f); +}; + +dictionary ExtendableEventInit : EventInit { + // Defined for the forward compatibility across the derived events +}; + +[Exposed=ServiceWorker] +interface FetchEvent : ExtendableEvent { + constructor(DOMString type, FetchEventInit eventInitDict); + [SameObject] readonly attribute Request request; + readonly attribute Promise<any> preloadResponse; + readonly attribute DOMString clientId; + readonly attribute DOMString resultingClientId; + readonly attribute DOMString replacesClientId; + readonly attribute Promise<undefined> handled; + + undefined respondWith(Promise<Response> r); +}; + +dictionary FetchEventInit : ExtendableEventInit { + required Request request; + Promise<any> preloadResponse; + DOMString clientId = ""; + DOMString resultingClientId = ""; + DOMString replacesClientId = ""; + Promise<undefined> handled; +}; + +[Exposed=ServiceWorker] +interface ExtendableMessageEvent : ExtendableEvent { + constructor(DOMString type, optional ExtendableMessageEventInit eventInitDict = {}); + readonly attribute any data; + readonly attribute USVString origin; + readonly attribute DOMString lastEventId; + [SameObject] readonly attribute (Client or ServiceWorker or MessagePort)? source; + readonly attribute FrozenArray<MessagePort> ports; +}; + +dictionary ExtendableMessageEventInit : ExtendableEventInit { + any data = null; + USVString origin = ""; + DOMString lastEventId = ""; + (Client or ServiceWorker or MessagePort)? source = null; + sequence<MessagePort> ports = []; +}; + +partial interface mixin WindowOrWorkerGlobalScope { + [SecureContext, SameObject] readonly attribute CacheStorage caches; +}; + +[SecureContext, Exposed=(Window,Worker)] +interface Cache { + [NewObject] Promise<(Response or undefined)> match(RequestInfo request, optional CacheQueryOptions options = {}); + [NewObject] Promise<FrozenArray<Response>> matchAll(optional RequestInfo request, optional CacheQueryOptions options = {}); + [NewObject] Promise<undefined> add(RequestInfo request); + [NewObject] Promise<undefined> addAll(sequence<RequestInfo> requests); + [NewObject] Promise<undefined> put(RequestInfo request, Response response); + [NewObject] Promise<boolean> delete(RequestInfo request, optional CacheQueryOptions options = {}); + [NewObject] Promise<FrozenArray<Request>> keys(optional RequestInfo request, optional CacheQueryOptions options = {}); +}; + +dictionary CacheQueryOptions { + boolean ignoreSearch = false; + boolean ignoreMethod = false; + boolean ignoreVary = false; +}; + +[SecureContext, Exposed=(Window,Worker)] +interface CacheStorage { + [NewObject] Promise<(Response or undefined)> match(RequestInfo request, optional MultiCacheQueryOptions options = {}); + [NewObject] Promise<boolean> has(DOMString cacheName); + [NewObject] Promise<Cache> open(DOMString cacheName); + [NewObject] Promise<boolean> delete(DOMString cacheName); + [NewObject] Promise<sequence<DOMString>> keys(); +}; + +dictionary MultiCacheQueryOptions : CacheQueryOptions { + DOMString cacheName; +}; |