// GENERATED CONTENT - DO NOT EDIT // Content of this file was automatically extracted from the Service Workers spec. // See https://w3c.github.io/ServiceWorker/ [SecureContext, Exposed=(Window,Worker)] interface ServiceWorker : EventTarget { readonly attribute USVString scriptURL; readonly attribute ServiceWorkerState state; void postMessage(any message, optional sequence transfer = []); // event attribute EventHandler onstatechange; }; ServiceWorker includes AbstractWorker; enum ServiceWorkerState { "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 update(); [NewObject] Promise 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 ready; [NewObject] Promise register(USVString scriptURL, optional RegistrationOptions options); [NewObject] Promise getRegistration(optional USVString clientURL = ""); [NewObject] Promise> getRegistrations(); void 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 enable(); Promise disable(); Promise setHeaderValue(ByteString value); Promise 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; [NewObject] Promise skipWaiting(); attribute EventHandler oninstall; attribute EventHandler onactivate; attribute EventHandler onfetch; // event attribute EventHandler onmessage; // event.source of the message events is Client object attribute EventHandler onmessageerror; }; [Exposed=ServiceWorker] interface Client { readonly attribute USVString url; readonly attribute DOMString id; readonly attribute ClientType type; void postMessage(any message, optional sequence transfer = []); }; [Exposed=ServiceWorker] interface WindowClient : Client { readonly attribute VisibilityState visibilityState; readonly attribute boolean focused; [SameObject] readonly attribute FrozenArray ancestorOrigins; [NewObject] Promise focus(); [NewObject] Promise navigate(USVString url); }; [Exposed=ServiceWorker] interface Clients { // The objects returned will be new instances every time [NewObject] Promise get(DOMString id); [NewObject] Promise> matchAll(optional ClientQueryOptions options); [NewObject] Promise openWindow(USVString url); [NewObject] Promise claim(); }; dictionary ClientQueryOptions { boolean includeUncontrolled = false; ClientType type = "window"; }; enum ClientType { "window", "worker", "sharedworker", "all" }; [Constructor(DOMString type, optional ExtendableEventInit eventInitDict), Exposed=ServiceWorker] interface ExtendableEvent : Event { void waitUntil(Promise f); }; dictionary ExtendableEventInit : EventInit { // Defined for the forward compatibility across the derived events }; [Constructor(DOMString type, FetchEventInit eventInitDict), Exposed=ServiceWorker] interface FetchEvent : ExtendableEvent { [SameObject] readonly attribute Request request; readonly attribute Promise preloadResponse; readonly attribute DOMString clientId; readonly attribute DOMString resultingClientId; readonly attribute DOMString targetClientId; void respondWith(Promise r); }; dictionary FetchEventInit : ExtendableEventInit { required Request request; required Promise preloadResponse; DOMString clientId = ""; DOMString resultingClientId = ""; DOMString targetClientId = ""; }; [Constructor(DOMString type, optional ExtendableMessageEventInit eventInitDict), Exposed=ServiceWorker] interface ExtendableMessageEvent : ExtendableEvent { readonly attribute any data; readonly attribute USVString origin; readonly attribute DOMString lastEventId; [SameObject] readonly attribute (Client or ServiceWorker or MessagePort)? source; readonly attribute FrozenArray ports; }; dictionary ExtendableMessageEventInit : ExtendableEventInit { any data = null; USVString origin = ""; DOMString lastEventId = ""; (Client or ServiceWorker or MessagePort)? source = null; sequence ports = []; }; partial interface WindowOrWorkerGlobalScope { [SecureContext, SameObject] readonly attribute CacheStorage caches; }; [SecureContext, Exposed=(Window,Worker)] interface Cache { [NewObject] Promise match(RequestInfo request, optional CacheQueryOptions options); [NewObject] Promise> matchAll(optional RequestInfo request, optional CacheQueryOptions options); [NewObject] Promise add(RequestInfo request); [NewObject] Promise addAll(sequence requests); [NewObject] Promise put(RequestInfo request, Response response); [NewObject] Promise delete(RequestInfo request, optional CacheQueryOptions options); [NewObject] Promise> keys(optional RequestInfo request, optional CacheQueryOptions options); }; dictionary CacheQueryOptions { boolean ignoreSearch = false; boolean ignoreMethod = false; boolean ignoreVary = false; DOMString cacheName; }; [SecureContext, Exposed=(Window,Worker)] interface CacheStorage { [NewObject] Promise match(RequestInfo request, optional CacheQueryOptions options); [NewObject] Promise has(DOMString cacheName); [NewObject] Promise open(DOMString cacheName); [NewObject] Promise delete(DOMString cacheName); [NewObject] Promise> keys(); };