diff --git a/baselines/dom.generated.d.ts b/baselines/dom.generated.d.ts index e288240a6..ffb9ef8bb 100644 --- a/baselines/dom.generated.d.ts +++ b/baselines/dom.generated.d.ts @@ -151,7 +151,6 @@ interface ClientData { } interface ClientQueryOptions { - includeReserved?: boolean; includeUncontrolled?: boolean; type?: ClientTypes; } @@ -373,14 +372,15 @@ interface ExtendableMessageEventInit extends ExtendableEventInit { data?: any; lastEventId?: string; origin?: string; - ports?: MessagePort[] | null; - source?: object | ServiceWorker | MessagePort | null; + ports?: MessagePort[]; + source?: object | ServiceWorker | MessagePort; } interface FetchEventInit extends ExtendableEventInit { clientId?: string; + preloadResponse: Promise; request: Request; - reservedClientId?: string; + resultingClientId?: string; targetClientId?: string; } @@ -962,6 +962,11 @@ interface MutationObserverInit { subtree?: boolean; } +interface NavigationPreloadState { + enabled?: boolean; + headerValue?: string; +} + interface NotificationAction { action: string; icon?: string; @@ -1530,6 +1535,8 @@ interface RTCTransportStats extends RTCStats { interface RegistrationOptions { scope?: string; + type?: WorkerType; + updateViaCache?: ServiceWorkerUpdateViaCache; } interface RequestInit { @@ -2902,13 +2909,13 @@ declare var CSSSupportsRule: { }; interface Cache { - add(request: Request | string): Promise; - addAll(requests: (Request | string)[]): Promise; - delete(request: Request | string, options?: CacheQueryOptions): Promise; - keys(request?: Request | string, options?: CacheQueryOptions): Promise; - match(request: Request | string, options?: CacheQueryOptions): Promise; - matchAll(request?: Request | string, options?: CacheQueryOptions): Promise; - put(request: Request | string, response: Response): Promise; + add(request: RequestInfo): Promise; + addAll(requests: RequestInfo[]): Promise; + delete(request: RequestInfo, options?: CacheQueryOptions): Promise; + keys(request?: RequestInfo, options?: CacheQueryOptions): Promise>; + match(request: RequestInfo, options?: CacheQueryOptions): Promise; + matchAll(request?: RequestInfo, options?: CacheQueryOptions): Promise>; + put(request: RequestInfo, response: Response): Promise; } declare var Cache: { @@ -2920,7 +2927,7 @@ interface CacheStorage { delete(cacheName: string): Promise; has(cacheName: string): Promise; keys(): Promise; - match(request: Request | string, options?: CacheQueryOptions): Promise; + match(request: RequestInfo, options?: CacheQueryOptions): Promise; open(cacheName: string): Promise; } @@ -9458,7 +9465,7 @@ interface MessageEvent extends Event { readonly data: any; readonly origin: string; readonly ports: ReadonlyArray; - readonly source: Window | null; + readonly source: MessageEventSource; initMessageEvent(type: string, bubbles: boolean, cancelable: boolean, data: any, origin: string, lastEventId: string, source: Window): void; } @@ -9613,6 +9620,18 @@ declare var NamedNodeMap: { new(): NamedNodeMap; }; +interface NavigationPreloadManager { + disable(): Promise; + enable(): Promise; + getState(): Promise; + setHeaderValue(value: string): Promise; +} + +declare var NavigationPreloadManager: { + prototype: NavigationPreloadManager; + new(): NavigationPreloadManager; +}; + interface Navigator extends NavigatorID, NavigatorOnLine, NavigatorContentUtils, NavigatorStorageUtils, MSNavigatorDoNotTrack, MSFileSaver, NavigatorBeacon, NavigatorConcurrentHardware, NavigatorUserMedia, NavigatorLanguage { readonly activeVRDisplays: ReadonlyArray; readonly authentication: WebAuthentication; @@ -13333,18 +13352,18 @@ declare var ServiceWorker: { interface ServiceWorkerContainerEventMap { "controllerchange": Event; - "message": ServiceWorkerMessageEvent; + "message": MessageEvent; "messageerror": MessageEvent; } interface ServiceWorkerContainer extends EventTarget { readonly controller: ServiceWorker | null; oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null; - onmessage: ((this: ServiceWorkerContainer, ev: ServiceWorkerMessageEvent) => any) | null; + onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null; onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null; readonly ready: Promise; getRegistration(clientURL?: string): Promise; - getRegistrations(): Promise; + getRegistrations(): Promise>; register(scriptURL: string, options?: RegistrationOptions): Promise; startMessages(): void; addEventListener(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; @@ -13378,10 +13397,12 @@ interface ServiceWorkerRegistrationEventMap { interface ServiceWorkerRegistration extends EventTarget { readonly active: ServiceWorker | null; readonly installing: ServiceWorker | null; + readonly navigationPreload: NavigationPreloadManager; onupdatefound: ((this: ServiceWorkerRegistration, ev: Event) => any) | null; readonly pushManager: PushManager; readonly scope: string; readonly sync: SyncManager; + readonly updateViaCache: ServiceWorkerUpdateViaCache; readonly waiting: ServiceWorker | null; getNotifications(filter?: GetNotificationOptions): Promise; showNotification(title: string, options?: NotificationOptions): Promise; @@ -16552,7 +16573,7 @@ type RTCIceGatherCandidate = RTCIceCandidateDictionary | RTCIceCandidateComplete type RTCTransport = RTCDtlsTransport | RTCSrtpSdesTransport; type USVString = string; type payloadtype = number; -type ClientTypes = "window" | "worker" | "sharedworker" | "all"; +type MessageEventSource = Window | MessagePort | ServiceWorker; type AppendMode = "segments" | "sequence"; type AudioContextLatencyCategory = "balanced" | "interactive" | "playback"; type AudioContextState = "suspended" | "running" | "closed"; @@ -16562,6 +16583,7 @@ type CanPlayTypeResult = "" | "maybe" | "probably"; type CanvasFillRule = "nonzero" | "evenodd"; type ChannelCountMode = "max" | "clamped-max" | "explicit"; type ChannelInterpretation = "speakers" | "discrete"; +type ClientTypes = "window" | "worker" | "sharedworker" | "all"; type DisplayCaptureSurfaceType = "monitor" | "window" | "application" | "browser"; type DistanceModelType = "linear" | "inverse" | "exponential"; type DocumentReadyState = "loading" | "interactive" | "complete"; @@ -16641,6 +16663,7 @@ type RequestRedirect = "follow" | "error" | "manual"; type ResponseType = "basic" | "cors" | "default" | "error" | "opaque" | "opaqueredirect"; type ScopedCredentialType = "ScopedCred"; type ServiceWorkerState = "installing" | "installed" | "activating" | "activated" | "redundant"; +type ServiceWorkerUpdateViaCache = "imports" | "all" | "none"; type TextTrackKind = "subtitles" | "captions" | "descriptions" | "chapters" | "metadata"; type TextTrackMode = "disabled" | "hidden" | "showing"; type TouchType = "direct" | "stylus"; @@ -16649,4 +16672,5 @@ type VRDisplayEventReason = "mounted" | "navigation" | "requested" | "unmounted" type VREye = "left" | "right"; type VideoFacingModeEnum = "user" | "environment" | "left" | "right"; type VisibilityState = "hidden" | "visible" | "prerender" | "unloaded"; +type WorkerType = "classic" | "module"; type XMLHttpRequestResponseType = "" | "arraybuffer" | "blob" | "document" | "json" | "text"; \ No newline at end of file diff --git a/baselines/webworker.generated.d.ts b/baselines/webworker.generated.d.ts index 5f5cd3a64..0305beb86 100644 --- a/baselines/webworker.generated.d.ts +++ b/baselines/webworker.generated.d.ts @@ -19,7 +19,6 @@ interface CacheQueryOptions { } interface ClientQueryOptions { - includeReserved?: boolean; includeUncontrolled?: boolean; type?: ClientTypes; } @@ -55,14 +54,15 @@ interface ExtendableMessageEventInit extends ExtendableEventInit { data?: any; lastEventId?: string; origin?: string; - ports?: MessagePort[] | null; - source?: Client | ServiceWorker | MessagePort | null; + ports?: MessagePort[]; + source?: Client | ServiceWorker | MessagePort; } interface FetchEventInit extends ExtendableEventInit { clientId?: string; + preloadResponse: Promise; request: Request; - reservedClientId?: string; + resultingClientId?: string; targetClientId?: string; } @@ -98,6 +98,11 @@ interface MessageEventInit extends EventInit { source?: object | null; } +interface NavigationPreloadState { + enabled?: boolean; + headerValue?: string; +} + interface NotificationAction { action: string; icon?: string; @@ -161,6 +166,12 @@ interface PushSubscriptionOptionsInit { userVisibleOnly?: boolean; } +interface RegistrationOptions { + scope?: string; + type?: WorkerType; + updateViaCache?: ServiceWorkerUpdateViaCache; +} + interface RequestInit { body?: BodyInit | null; cache?: RequestCache; @@ -248,13 +259,13 @@ interface Body { } interface Cache { - add(request: Request | string): Promise; - addAll(requests: (Request | string)[]): Promise; - delete(request: Request | string, options?: CacheQueryOptions): Promise; - keys(request?: Request | string, options?: CacheQueryOptions): Promise; - match(request: Request | string, options?: CacheQueryOptions): Promise; - matchAll(request?: Request | string, options?: CacheQueryOptions): Promise; - put(request: Request | string, response: Response): Promise; + add(request: RequestInfo): Promise; + addAll(requests: RequestInfo[]): Promise; + delete(request: RequestInfo, options?: CacheQueryOptions): Promise; + keys(request?: RequestInfo, options?: CacheQueryOptions): Promise>; + match(request: RequestInfo, options?: CacheQueryOptions): Promise; + matchAll(request?: RequestInfo, options?: CacheQueryOptions): Promise>; + put(request: RequestInfo, response: Response): Promise; } declare var Cache: { @@ -266,7 +277,7 @@ interface CacheStorage { delete(cacheName: string): Promise; has(cacheName: string): Promise; keys(): Promise; - match(request: Request | string, options?: CacheQueryOptions): Promise; + match(request: RequestInfo, options?: CacheQueryOptions): Promise; open(cacheName: string): Promise; } @@ -277,7 +288,6 @@ declare var CacheStorage: { interface Client { readonly id: string; - readonly reserved: boolean; readonly type: ClientTypes; readonly url: string; postMessage(message: any, transfer?: any[]): void; @@ -291,7 +301,7 @@ declare var Client: { interface Clients { claim(): Promise; get(id: string): Promise; - matchAll(options?: ClientQueryOptions): Promise; + matchAll(options?: ClientQueryOptions): Promise>; openWindow(url: string): Promise; } @@ -553,7 +563,7 @@ interface ExtendableMessageEvent extends ExtendableEvent { readonly data: any; readonly lastEventId: string; readonly origin: string; - readonly ports: ReadonlyArray | null; + readonly ports: ReadonlyArray; readonly source: Client | ServiceWorker | MessagePort | null; } @@ -564,8 +574,9 @@ declare var ExtendableMessageEvent: { interface FetchEvent extends ExtendableEvent { readonly clientId: string; + readonly preloadResponse: Promise; readonly request: Request; - readonly reservedClientId: string; + readonly resultingClientId: string; readonly targetClientId: string; respondWith(r: Promise): void; } @@ -948,7 +959,7 @@ interface MessageEvent extends Event { readonly data: any; readonly origin: string; readonly ports: ReadonlyArray; - readonly source: object | null; + readonly source: MessageEventSource; initMessageEvent(type: string, bubbles: boolean, cancelable: boolean, data: any, origin: string, lastEventId: string, source: object): void; } @@ -977,6 +988,18 @@ declare var MessagePort: { new(): MessagePort; }; +interface NavigationPreloadManager { + disable(): Promise; + enable(): Promise; + getState(): Promise; + setHeaderValue(value: string): Promise; +} + +declare var NavigationPreloadManager: { + prototype: NavigationPreloadManager; + new(): NavigationPreloadManager; +}; + interface NavigatorBeacon { sendBeacon(url: string, data?: Blob | Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer | FormData | string | null): boolean; } @@ -1358,6 +1381,33 @@ declare var ServiceWorker: { new(): ServiceWorker; }; +interface ServiceWorkerContainerEventMap { + "controllerchange": Event; + "message": MessageEvent; + "messageerror": MessageEvent; +} + +interface ServiceWorkerContainer extends EventTarget { + readonly controller: ServiceWorker | null; + oncontrollerchange: ((this: ServiceWorkerContainer, ev: Event) => any) | null; + onmessage: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null; + onmessageerror: ((this: ServiceWorkerContainer, ev: MessageEvent) => any) | null; + readonly ready: Promise; + getRegistration(clientURL?: string): Promise; + getRegistrations(): Promise>; + register(scriptURL: string, options?: RegistrationOptions): Promise; + startMessages(): void; + addEventListener(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; + addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; + removeEventListener(type: K, listener: (this: ServiceWorkerContainer, ev: ServiceWorkerContainerEventMap[K]) => any, options?: boolean | EventListenerOptions): void; + removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; +} + +declare var ServiceWorkerContainer: { + prototype: ServiceWorkerContainer; + new(): ServiceWorkerContainer; +}; + interface ServiceWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap { "activate": ExtendableEvent; "fetch": FetchEvent; @@ -1403,10 +1453,12 @@ interface ServiceWorkerRegistrationEventMap { interface ServiceWorkerRegistration extends EventTarget { readonly active: ServiceWorker | null; readonly installing: ServiceWorker | null; + readonly navigationPreload: NavigationPreloadManager; onupdatefound: ((this: ServiceWorkerRegistration, ev: Event) => any) | null; readonly pushManager: PushManager; readonly scope: string; readonly sync: SyncManager; + readonly updateViaCache: ServiceWorkerUpdateViaCache; readonly waiting: ServiceWorker | null; getNotifications(filter?: GetNotificationOptions): Promise; showNotification(title: string, options?: NotificationOptions): Promise; @@ -1547,7 +1599,7 @@ interface WindowClient extends Client { readonly focused: boolean; readonly visibilityState: VisibilityState; focus(): Promise; - navigate(url: string): Promise; + navigate(url: string): Promise; } declare var WindowClient: { @@ -1623,6 +1675,7 @@ declare var WorkerLocation: { }; interface WorkerNavigator extends NavigatorID, NavigatorOnLine, NavigatorBeacon, NavigatorConcurrentHardware { + readonly serviceWorker: ServiceWorkerContainer; } declare var WorkerNavigator: { @@ -1830,8 +1883,9 @@ type GLushort = number; type IDBKeyPath = string; type USVString = string; type payloadtype = number; -type ClientTypes = "window" | "worker" | "sharedworker" | "all"; +type MessageEventSource = object | MessagePort | ServiceWorker; type BinaryType = "blob" | "arraybuffer"; +type ClientTypes = "window" | "worker" | "sharedworker" | "all"; type IDBCursorDirection = "next" | "nextunique" | "prev" | "prevunique"; type IDBRequestReadyState = "pending" | "done"; type IDBTransactionMode = "readonly" | "readwrite" | "versionchange"; @@ -1851,5 +1905,7 @@ type RequestMode = "navigate" | "same-origin" | "no-cors" | "cors"; type RequestRedirect = "follow" | "error" | "manual"; type ResponseType = "basic" | "cors" | "default" | "error" | "opaque" | "opaqueredirect"; type ServiceWorkerState = "installing" | "installed" | "activating" | "activated" | "redundant"; +type ServiceWorkerUpdateViaCache = "imports" | "all" | "none"; type VisibilityState = "hidden" | "visible" | "prerender" | "unloaded"; +type WorkerType = "classic" | "module"; type XMLHttpRequestResponseType = "" | "arraybuffer" | "blob" | "document" | "json" | "text"; \ No newline at end of file diff --git a/inputfiles/addedTypes.json b/inputfiles/addedTypes.json index d08eefb01..8d02ba4f2 100644 --- a/inputfiles/addedTypes.json +++ b/inputfiles/addedTypes.json @@ -42,7 +42,24 @@ "interface": {} }, "enums": { - "enum": {} + "enum": { + "ClientTypes": { + "name": "ClientTypes", + "value": [ + "window", + "worker", + "sharedworker", + "all" + ] + }, + "WorkerType": { + "name": "WorkerType", + "value": [ + "classic", + "module" + ] + } + } }, "interfaces": { "interface": { @@ -2991,8 +3008,18 @@ "override-type": "number" }, { - "new-type": "ClientTypes", - "override-type": "\"window\" | \"worker\" | \"sharedworker\" | \"all\"" + "new-type": "MessageEventSource", + "type": [ + { + "type": "Window" + }, + { + "type": "MessagePort" + }, + { + "type": "ServiceWorker" + } + ] } ] } diff --git a/inputfiles/idl/Service Workers.widl b/inputfiles/idl/Service Workers.widl new file mode 100644 index 000000000..1e53db915 --- /dev/null +++ b/inputfiles/idl/Service Workers.widl @@ -0,0 +1,217 @@ +[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(); +}; diff --git a/inputfiles/idlSources.json b/inputfiles/idlSources.json index b8c7645be..225bdadee 100644 --- a/inputfiles/idlSources.json +++ b/inputfiles/idlSources.json @@ -39,6 +39,10 @@ "url": "https://w3c.github.io/resource-timing/", "title": "Resource Timing" }, + { + "url": "https://w3c.github.io/ServiceWorker/", + "title": "Service Workers" + }, { "url": "https://w3c.github.io/touch-events/", "title": "Touch Events" diff --git a/inputfiles/knownWorkerTypes.json b/inputfiles/knownWorkerTypes.json index d862c0ae0..2a3e2bd00 100644 --- a/inputfiles/knownWorkerTypes.json +++ b/inputfiles/knownWorkerTypes.json @@ -54,7 +54,10 @@ "ImageData", "MessageChannel", "MessageEvent", + "MessageEventSource", "MessagePort", + "NavigationPreloadManager", + "NavigationPreloadState", "Notification", "NotificationAction", "Performance", @@ -75,15 +78,19 @@ "PushSubscriptionOptions", "ReadableStream", "ReadableStreamReader", + "RegistrationOptions", "Request", "Response", "ServiceWorker", + "ServiceWorkerContainer", "ServiceWorkerRegistration", + "ServiceWorkerUpdateViaCache", "SyncManager", "URL", "VibratePattern", "WebSocket", "Worker", + "WorkerType", "XMLHttpRequest", "XMLHttpRequestUpload", "AbstractWorker", diff --git a/inputfiles/overridingTypes.json b/inputfiles/overridingTypes.json index c5974cb51..6beb5dde7 100644 --- a/inputfiles/overridingTypes.json +++ b/inputfiles/overridingTypes.json @@ -1031,10 +1031,14 @@ }, "MessageEvent": { "name": "MessageEvent", - "constructor": { - "override-signatures": [ - "new(type: string, eventInitDict?: MessageEventInit): MessageEvent" - ] + "properties": { + "property": { + "source": { + "name": "source", + "nullable": 0, + "override-type": "MessageEventSource" + } + } } }, "File": { @@ -1747,6 +1751,22 @@ ] } } + }, + "events": { + "event": [ + { + "name": "controllerchange", + "type": "Event" + }, + { + "name": "message", + "type": "MessageEvent" + }, + { + "name": "messageerror", + "type": "MessageEvent" + } + ] } }, "IntersectionObserverEntry": { @@ -2179,13 +2199,45 @@ "name": "ServiceWorkerGlobalScope", "events": { "event": [ + { + "name": "install", + "type": "ExtendableEvent" + }, + { + "name": "activate", + "type": "ExtendableEvent" + }, + { + "name": "fetch", + "type": "FetchEvent" + }, + { + "name": "message", + "type": "ExtendableMessageEvent" + }, + { + "name": "messageerror", + "type": "MessageEvent" + }, + { + "name": "notificationclick", + "type": "NotificationEvent" + }, + { + "name": "notificationclose", + "type": "NotificationEvent" + }, { "name": "push", "type": "PushEvent" }, { - "name": "pushsubscriptionevent", + "name": "pushsubscriptionchange", "type": "PushSubscriptionChangeEvent" + }, + { + "name": "sync", + "type": "SyncEvent" } ] } @@ -2212,6 +2264,32 @@ } ] } + }, + "Cache": { + "name": "Cache", + "methods": { + "method": { + "match": { + "name": "match", + "override-signatures": [ + "match(request: RequestInfo, options?: CacheQueryOptions): Promise" + ] + } + } + } + }, + "CacheStorage": { + "name": "CacheStorage", + "methods": { + "method": { + "match": { + "name": "match", + "override-signatures": [ + "match(request: RequestInfo, options?: CacheQueryOptions): Promise" + ] + } + } + } } } },