WPT
wpt / service-workers / idlharness.https.any.serviceworker.html
Spec: Service Workers ↗
Runs: Chrome 155.0.8042.0 (wpt@168cb0286, 2026-09-04) | Firefox 157.0a1 (wpt@1b4bc17cf, 2026-09-04) | Safari 251 preview (wpt@e7122b73f, 2026-09-04) | Ladybird 1.0-17043 (wpt@25681acff, 2026-09-04) | Servo Servo 0.6 (wpt@2c385f65e, 2026-09-04) | Blitz a50cb8971 (wpt@a95401e4e, 2026-09-03)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 270/302 | 281/302 | 300/302 | 0/302 | 0/302 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| idl_test setup | PASS | PASS | PASS | — | — | — |
| idl_test validation | PASS | PASS | PASS | — | — | — |
| Partial interface Navigator: original interface defined | PASS | PASS | PASS | — | — | — |
| Partial interface Navigator: member names are unique | PASS | PASS | PASS | — | — | — |
| Partial interface WorkerNavigator: original interface defined | PASS | PASS | PASS | — | — | — |
| Partial interface WorkerNavigator: member names are unique | PASS | PASS | PASS | — | — | — |
| Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined | PASS | PASS | PASS | — | — | — |
| Partial interface mixin WindowOrWorkerGlobalScope: member names are unique | PASS | PASS | PASS | — | — | — |
| Partial interface Navigator[2]: member names are unique | PASS | PASS | PASS | — | — | — |
| Partial interface mixin NavigatorID: member names are unique | PASS | PASS | PASS | — | — | — |
| Partial interface Window: member names are unique | PASS | PASS | PASS | — | — | — |
| ServiceWorker includes AbstractWorker: member names are unique | PASS | PASS | PASS | — | — | — |
| Window includes GlobalEventHandlers: member names are unique | PASS | PASS | PASS | — | — | — |
| Window includes WindowEventHandlers: member names are unique | PASS | PASS | PASS | — | — | — |
| Window includes WindowOrWorkerGlobalScope: member names are unique | PASS | PASS | PASS | — | — | — |
| WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique | PASS | PASS | PASS | — | — | — |
| Navigator includes NavigatorID: member names are unique | PASS | PASS | PASS | — | — | — |
| Navigator includes NavigatorLanguage: member names are unique | PASS | PASS | PASS | — | — | — |
| Navigator includes NavigatorOnLine: member names are unique | PASS | PASS | PASS | — | — | — |
| Navigator includes NavigatorContentUtils: member names are unique | PASS | PASS | PASS | — | — | — |
| Navigator includes NavigatorCookies: member names are unique | PASS | PASS | PASS | — | — | — |
| Navigator includes NavigatorPlugins: member names are unique | PASS | PASS | PASS | — | — | — |
| Navigator includes NavigatorConcurrentHardware: member names are unique | PASS | PASS | PASS | — | — | — |
| Window includes AnimationFrameProvider: member names are unique | PASS | PASS | PASS | — | — | — |
| WorkerNavigator includes NavigatorID: member names are unique | PASS | PASS | PASS | — | — | — |
| WorkerNavigator includes NavigatorLanguage: member names are unique | PASS | PASS | PASS | — | — | — |
| WorkerNavigator includes NavigatorOnLine: member names are unique | PASS | PASS | PASS | — | — | — |
| WorkerNavigator includes NavigatorConcurrentHardware: member names are unique | PASS | PASS | PASS | — | — | — |
| Window includes WindowSessionStorage: member names are unique | PASS | PASS | PASS | — | — | — |
| Window includes WindowLocalStorage: member names are unique | PASS | PASS | PASS | — | — | — |
| ServiceWorker interface: existence and properties of interface object | PASS | PASS | PASS | — | — | — |
| ServiceWorker interface object length | PASS | PASS | PASS | — | — | — |
| ServiceWorker interface object name | PASS | PASS | PASS | — | — | — |
| ServiceWorker interface: existence and properties of interface prototype object | PASS | PASS | PASS | — | — | — |
| ServiceWorker interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | — | — | — |
| ServiceWorker interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | — | — | — |
| ServiceWorker interface: attribute scriptURL | PASS | PASS | PASS | — | — | — |
| ServiceWorker interface: attribute state | PASS | PASS | PASS | — | — | — |
| ServiceWorker interface: operation postMessage(any, sequence<object>) | PASS | PASS | PASS | — | — | — |
| ServiceWorker interface: operation postMessage(any, optional StructuredSerializeOptions) | PASS | PASS | PASS | — | — | — |
| ServiceWorker interface: attribute onstatechange | PASS | PASS | PASS | — | — | — |
| ServiceWorker must be primary interface of serviceWorker | PASS | FAIL | PASS | — | — | — |
| Stringification of serviceWorker | PASS | FAIL | PASS | — | — | — |
| ServiceWorker interface: serviceWorker must inherit property "scriptURL" with the proper type | PASS | FAIL | PASS | — | — | — |
| ServiceWorker interface: serviceWorker must inherit property "state" with the proper type | PASS | FAIL | PASS | — | — | — |
| ServiceWorker interface: serviceWorker must inherit property "postMessage(any, sequence<object>)" with the proper type | PASS | FAIL | PASS | — | — | — |
| ServiceWorker interface: calling postMessage(any, sequence<object>) on serviceWorker with too few arguments must throw TypeError | PASS | FAIL | PASS | — | — | — |
| ServiceWorker interface: serviceWorker must inherit property "postMessage(any, optional StructuredSerializeOptions)" with the proper type | PASS | FAIL | PASS | — | — | — |
| ServiceWorker interface: calling postMessage(any, optional StructuredSerializeOptions) on serviceWorker with too few arguments must throw TypeError | PASS | FAIL | PASS | — | — | — |
| ServiceWorker interface: serviceWorker must inherit property "onstatechange" with the proper type | PASS | FAIL | PASS | — | — | — |
| ServiceWorkerRegistration interface: existence and properties of interface object | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface object length | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface object name | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface: existence and properties of interface prototype object | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface: attribute installing | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface: attribute waiting | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface: attribute active | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface: attribute navigationPreload | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface: attribute scope | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface: attribute updateViaCache | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface: operation update() | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface: operation unregister() | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface: attribute onupdatefound | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration must be primary interface of registration | PASS | PASS | PASS | — | — | — |
| Stringification of registration | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface: registration must inherit property "installing" with the proper type | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface: registration must inherit property "waiting" with the proper type | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface: registration must inherit property "active" with the proper type | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface: registration must inherit property "navigationPreload" with the proper type | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface: registration must inherit property "scope" with the proper type | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface: registration must inherit property "updateViaCache" with the proper type | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface: registration must inherit property "update()" with the proper type | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface: registration must inherit property "unregister()" with the proper type | PASS | PASS | PASS | — | — | — |
| ServiceWorkerRegistration interface: registration must inherit property "onupdatefound" with the proper type | PASS | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: existence and properties of interface object | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface object length | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface object name | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: existence and properties of interface prototype object | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: existence and properties of interface prototype object's "constructor" property | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: existence and properties of interface prototype object's @@unscopables property | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: attribute controller | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: attribute ready | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: operation register((TrustedScriptURL or USVString), optional RegistrationOptions) | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: operation getRegistration(optional USVString) | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: operation getRegistrations() | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: operation startMessages() | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: attribute oncontrollerchange | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: attribute onmessage | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: attribute onmessageerror | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer must be primary interface of navigator.serviceWorker | FAIL | PASS | PASS | — | — | — |
| Stringification of navigator.serviceWorker | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "controller" with the proper type | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "ready" with the proper type | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "register((TrustedScriptURL or USVString), optional RegistrationOptions)" with the proper type | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: calling register((TrustedScriptURL or USVString), optional RegistrationOptions) on navigator.serviceWorker with too few arguments must throw TypeError | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistration(optional USVString)" with the proper type | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: calling getRegistration(optional USVString) on navigator.serviceWorker with too few arguments must throw TypeError | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistrations()" with the proper type | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "startMessages()" with the proper type | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "oncontrollerchange" with the proper type | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessage" with the proper type | FAIL | PASS | PASS | — | — | — |
| ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessageerror" with the proper type | FAIL | PASS | PASS | — | — | — |
| NavigationPreloadManager interface: existence and properties of interface object | PASS | PASS | PASS | — | — | — |
| NavigationPreloadManager interface object length | PASS | PASS | PASS | — | — | — |
| NavigationPreloadManager interface object name | PASS | PASS | PASS | — | — | — |
| NavigationPreloadManager interface: existence and properties of interface prototype object | PASS | PASS | PASS | — | — | — |
| NavigationPreloadManager interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | — | — | — |
| NavigationPreloadManager interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | — | — | — |
| NavigationPreloadManager interface: operation enable() | PASS | PASS | PASS | — | — | — |
| NavigationPreloadManager interface: operation disable() | PASS | PASS | PASS | — | — | — |
| NavigationPreloadManager interface: operation setHeaderValue(ByteString) | PASS | PASS | PASS | — | — | — |
| NavigationPreloadManager interface: operation getState() | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: existence and properties of interface object | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface object length | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface object name | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: existence and properties of interface prototype object | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Object.setPrototypeOf should throw a TypeError | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via __proto__ should throw a TypeError | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to a new value via Reflect.setPrototypeOf should return false | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Object.setPrototypeOf should not throw | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via __proto__ should not throw | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of interface prototype object - setting to its original value via Reflect.setPrototypeOf should return true | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: attribute clients | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: attribute registration | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: attribute serviceWorker | PASS | FAIL | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: operation skipWaiting() | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: attribute oninstall | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: attribute onactivate | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: attribute onfetch | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: attribute onmessage | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: attribute onmessageerror | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Object.setPrototypeOf should throw a TypeError | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via __proto__ should throw a TypeError | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to a new value via Reflect.setPrototypeOf should return false | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Object.setPrototypeOf should not throw | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via __proto__ should not throw | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: internal [[SetPrototypeOf]] method of global platform object - setting to its original value via Reflect.setPrototypeOf should return true | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope must be primary interface of self | PASS | PASS | PASS | — | — | — |
| Stringification of self | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: self must inherit property "clients" with the proper type | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: self must inherit property "registration" with the proper type | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: self must inherit property "serviceWorker" with the proper type | PASS | FAIL | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: self must inherit property "skipWaiting()" with the proper type | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: self must inherit property "oninstall" with the proper type | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: self must inherit property "onactivate" with the proper type | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: self must inherit property "onfetch" with the proper type | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: self must inherit property "onmessage" with the proper type | PASS | PASS | PASS | — | — | — |
| ServiceWorkerGlobalScope interface: self must inherit property "onmessageerror" with the proper type | PASS | PASS | PASS | — | — | — |
| WorkerGlobalScope interface: self must inherit property "caches" with the proper type | PASS | PASS | PASS | — | — | — |
| Client interface: existence and properties of interface object | PASS | PASS | PASS | — | — | — |
| Client interface object length | PASS | PASS | PASS | — | — | — |
| Client interface object name | PASS | PASS | PASS | — | — | — |
| Client interface: existence and properties of interface prototype object | PASS | PASS | PASS | — | — | — |
| Client interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | — | — | — |
| Client interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | — | — | — |
| Client interface: attribute url | PASS | PASS | PASS | — | — | — |
| Client interface: attribute frameType | PASS | PASS | PASS | — | — | — |
| Client interface: attribute id | PASS | PASS | PASS | — | — | — |
| Client interface: attribute type | PASS | PASS | PASS | — | — | — |
| Client interface: operation postMessage(any, sequence<object>) | PASS | PASS | PASS | — | — | — |
| Client interface: operation postMessage(any, optional StructuredSerializeOptions) | PASS | PASS | PASS | — | — | — |
| WindowClient interface: existence and properties of interface object | PASS | PASS | PASS | — | — | — |
| WindowClient interface object length | PASS | PASS | PASS | — | — | — |
| WindowClient interface object name | PASS | PASS | PASS | — | — | — |
| WindowClient interface: existence and properties of interface prototype object | PASS | PASS | PASS | — | — | — |
| WindowClient interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | — | — | — |
| WindowClient interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | — | — | — |
| WindowClient interface: attribute visibilityState | PASS | PASS | PASS | — | — | — |
| WindowClient interface: attribute focused | PASS | PASS | PASS | — | — | — |
| WindowClient interface: attribute ancestorOrigins | FAIL | FAIL | PASS | — | — | — |
| WindowClient interface: operation focus() | PASS | PASS | PASS | — | — | — |
| WindowClient interface: operation navigate(USVString) | PASS | PASS | PASS | — | — | — |
| Clients interface: existence and properties of interface object | PASS | PASS | PASS | — | — | — |
| Clients interface object length | PASS | PASS | PASS | — | — | — |
| Clients interface object name | PASS | PASS | PASS | — | — | — |
| Clients interface: existence and properties of interface prototype object | PASS | PASS | PASS | — | — | — |
| Clients interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | — | — | — |
| Clients interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | — | — | — |
| Clients interface: operation get(DOMString) | PASS | PASS | PASS | — | — | — |
| Clients interface: operation matchAll(optional ClientQueryOptions) | PASS | PASS | PASS | — | — | — |
| Clients interface: operation openWindow(USVString) | PASS | PASS | PASS | — | — | — |
| Clients interface: operation claim() | PASS | PASS | PASS | — | — | — |
| Clients must be primary interface of clients | PASS | PASS | PASS | — | — | — |
| Stringification of clients | PASS | PASS | PASS | — | — | — |
| Clients interface: clients must inherit property "get(DOMString)" with the proper type | PASS | PASS | PASS | — | — | — |
| Clients interface: calling get(DOMString) on clients with too few arguments must throw TypeError | PASS | PASS | PASS | — | — | — |
| Clients interface: clients must inherit property "matchAll(optional ClientQueryOptions)" with the proper type | PASS | PASS | PASS | — | — | — |
| Clients interface: calling matchAll(optional ClientQueryOptions) on clients with too few arguments must throw TypeError | PASS | PASS | PASS | — | — | — |
| Clients interface: clients must inherit property "openWindow(USVString)" with the proper type | PASS | PASS | PASS | — | — | — |
| Clients interface: calling openWindow(USVString) on clients with too few arguments must throw TypeError | PASS | PASS | PASS | — | — | — |
| Clients interface: clients must inherit property "claim()" with the proper type | PASS | PASS | PASS | — | — | — |
| ExtendableEvent interface: existence and properties of interface object | PASS | PASS | PASS | — | — | — |
| ExtendableEvent interface object length | PASS | PASS | PASS | — | — | — |
| ExtendableEvent interface object name | PASS | PASS | PASS | — | — | — |
| ExtendableEvent interface: existence and properties of interface prototype object | PASS | PASS | PASS | — | — | — |
| ExtendableEvent interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | — | — | — |
| ExtendableEvent interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | — | — | — |
| ExtendableEvent interface: operation waitUntil(Promise<any>) | PASS | PASS | PASS | — | — | — |
| ExtendableEvent must be primary interface of new ExtendableEvent("type") | PASS | PASS | PASS | — | — | — |
| Stringification of new ExtendableEvent("type") | PASS | PASS | PASS | — | — | — |
| ExtendableEvent interface: new ExtendableEvent("type") must inherit property "waitUntil(Promise<any>)" with the proper type | PASS | PASS | PASS | — | — | — |
| ExtendableEvent interface: calling waitUntil(Promise<any>) on new ExtendableEvent("type") with too few arguments must throw TypeError | PASS | PASS | PASS | — | — | — |
| InstallEvent interface: existence and properties of interface object | PASS | FAIL | PASS | — | — | — |
| InstallEvent interface object length | PASS | FAIL | PASS | — | — | — |
| InstallEvent interface object name | PASS | FAIL | PASS | — | — | — |
| InstallEvent interface: existence and properties of interface prototype object | PASS | FAIL | PASS | — | — | — |
| InstallEvent interface: existence and properties of interface prototype object's "constructor" property | PASS | FAIL | PASS | — | — | — |
| InstallEvent interface: existence and properties of interface prototype object's @@unscopables property | PASS | FAIL | PASS | — | — | — |
| InstallEvent interface: operation addRoutes((RouterRule or sequence<RouterRule>)) | PASS | FAIL | PASS | — | — | — |
| FetchEvent interface: existence and properties of interface object | PASS | PASS | PASS | — | — | — |
| FetchEvent interface object length | PASS | PASS | PASS | — | — | — |
| FetchEvent interface object name | PASS | PASS | PASS | — | — | — |
| FetchEvent interface: existence and properties of interface prototype object | PASS | PASS | PASS | — | — | — |
| FetchEvent interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | — | — | — |
| FetchEvent interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | — | — | — |
| FetchEvent interface: attribute request | PASS | PASS | PASS | — | — | — |
| FetchEvent interface: attribute preloadResponse | PASS | PASS | PASS | — | — | — |
| FetchEvent interface: attribute clientId | PASS | PASS | PASS | — | — | — |
| FetchEvent interface: attribute resultingClientId | PASS | PASS | PASS | — | — | — |
| FetchEvent interface: attribute replacesClientId | FAIL | FAIL | FAIL | — | — | — |
| FetchEvent interface: attribute handled | PASS | PASS | PASS | — | — | — |
| FetchEvent interface: operation respondWith(Promise<Response>) | PASS | PASS | PASS | — | — | — |
| FetchEvent must be primary interface of new FetchEvent("type", { request: new Request("") }) | PASS | PASS | PASS | — | — | — |
| Stringification of new FetchEvent("type", { request: new Request("") }) | PASS | PASS | PASS | — | — | — |
| FetchEvent interface: new FetchEvent("type", { request: new Request("") }) must inherit property "request" with the proper type | PASS | PASS | PASS | — | — | — |
| FetchEvent interface: new FetchEvent("type", { request: new Request("") }) must inherit property "preloadResponse" with the proper type | PASS | PASS | PASS | — | — | — |
| FetchEvent interface: new FetchEvent("type", { request: new Request("") }) must inherit property "clientId" with the proper type | PASS | PASS | PASS | — | — | — |
| FetchEvent interface: new FetchEvent("type", { request: new Request("") }) must inherit property "resultingClientId" with the proper type | PASS | PASS | PASS | — | — | — |
| FetchEvent interface: new FetchEvent("type", { request: new Request("") }) must inherit property "replacesClientId" with the proper type | FAIL | FAIL | FAIL | — | — | — |
| FetchEvent interface: new FetchEvent("type", { request: new Request("") }) must inherit property "handled" with the proper type | PASS | PASS | PASS | — | — | — |
| FetchEvent interface: new FetchEvent("type", { request: new Request("") }) must inherit property "respondWith(Promise<Response>)" with the proper type | PASS | PASS | PASS | — | — | — |
| FetchEvent interface: calling respondWith(Promise<Response>) on new FetchEvent("type", { request: new Request("") }) with too few arguments must throw TypeError | PASS | PASS | PASS | — | — | — |
| ExtendableEvent interface: new FetchEvent("type", { request: new Request("") }) must inherit property "waitUntil(Promise<any>)" with the proper type | PASS | PASS | PASS | — | — | — |
| ExtendableEvent interface: calling waitUntil(Promise<any>) on new FetchEvent("type", { request: new Request("") }) with too few arguments must throw TypeError | PASS | PASS | PASS | — | — | — |
| ExtendableMessageEvent interface: existence and properties of interface object | PASS | PASS | PASS | — | — | — |
| ExtendableMessageEvent interface object length | PASS | PASS | PASS | — | — | — |
| ExtendableMessageEvent interface object name | PASS | PASS | PASS | — | — | — |
| ExtendableMessageEvent interface: existence and properties of interface prototype object | PASS | PASS | PASS | — | — | — |
| ExtendableMessageEvent interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | — | — | — |
| ExtendableMessageEvent interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | — | — | — |
| ExtendableMessageEvent interface: attribute data | PASS | PASS | PASS | — | — | — |
| ExtendableMessageEvent interface: attribute origin | PASS | PASS | PASS | — | — | — |
| ExtendableMessageEvent interface: attribute lastEventId | PASS | PASS | PASS | — | — | — |
| ExtendableMessageEvent interface: attribute source | PASS | PASS | PASS | — | — | — |
| ExtendableMessageEvent interface: attribute ports | PASS | PASS | PASS | — | — | — |
| Cache interface: existence and properties of interface object | PASS | PASS | PASS | — | — | — |
| Cache interface object length | PASS | PASS | PASS | — | — | — |
| Cache interface object name | PASS | PASS | PASS | — | — | — |
| Cache interface: existence and properties of interface prototype object | PASS | PASS | PASS | — | — | — |
| Cache interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | — | — | — |
| Cache interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | — | — | — |
| Cache interface: operation match(RequestInfo, optional CacheQueryOptions) | PASS | PASS | PASS | — | — | — |
| Cache interface: operation matchAll(optional RequestInfo, optional CacheQueryOptions) | PASS | PASS | PASS | — | — | — |
| Cache interface: operation add(RequestInfo) | PASS | PASS | PASS | — | — | — |
| Cache interface: operation addAll(sequence<RequestInfo>) | PASS | PASS | PASS | — | — | — |
| Cache interface: operation put(RequestInfo, Response) | PASS | PASS | PASS | — | — | — |
| Cache interface: operation delete(RequestInfo, optional CacheQueryOptions) | PASS | PASS | PASS | — | — | — |
| Cache interface: operation keys(optional RequestInfo, optional CacheQueryOptions) | PASS | PASS | PASS | — | — | — |
| Cache must be primary interface of self.cacheInstance | PASS | PASS | PASS | — | — | — |
| Stringification of self.cacheInstance | PASS | PASS | PASS | — | — | — |
| Cache interface: self.cacheInstance must inherit property "match(RequestInfo, optional CacheQueryOptions)" with the proper type | PASS | PASS | PASS | — | — | — |
| Cache interface: calling match(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError | PASS | PASS | PASS | — | — | — |
| Cache interface: self.cacheInstance must inherit property "matchAll(optional RequestInfo, optional CacheQueryOptions)" with the proper type | PASS | PASS | PASS | — | — | — |
| Cache interface: calling matchAll(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError | PASS | PASS | PASS | — | — | — |
| Cache interface: self.cacheInstance must inherit property "add(RequestInfo)" with the proper type | PASS | PASS | PASS | — | — | — |
| Cache interface: calling add(RequestInfo) on self.cacheInstance with too few arguments must throw TypeError | PASS | PASS | PASS | — | — | — |
| Cache interface: self.cacheInstance must inherit property "addAll(sequence<RequestInfo>)" with the proper type | PASS | PASS | PASS | — | — | — |
| Cache interface: calling addAll(sequence<RequestInfo>) on self.cacheInstance with too few arguments must throw TypeError | PASS | PASS | PASS | — | — | — |
| Cache interface: self.cacheInstance must inherit property "put(RequestInfo, Response)" with the proper type | PASS | PASS | PASS | — | — | — |
| Cache interface: calling put(RequestInfo, Response) on self.cacheInstance with too few arguments must throw TypeError | PASS | PASS | PASS | — | — | — |
| Cache interface: self.cacheInstance must inherit property "delete(RequestInfo, optional CacheQueryOptions)" with the proper type | PASS | PASS | PASS | — | — | — |
| Cache interface: calling delete(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError | PASS | PASS | PASS | — | — | — |
| Cache interface: self.cacheInstance must inherit property "keys(optional RequestInfo, optional CacheQueryOptions)" with the proper type | PASS | PASS | PASS | — | — | — |
| Cache interface: calling keys(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError | PASS | PASS | PASS | — | — | — |
| CacheStorage interface: existence and properties of interface object | PASS | PASS | PASS | — | — | — |
| CacheStorage interface object length | PASS | PASS | PASS | — | — | — |
| CacheStorage interface object name | PASS | PASS | PASS | — | — | — |
| CacheStorage interface: existence and properties of interface prototype object | PASS | PASS | PASS | — | — | — |
| CacheStorage interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | — | — | — |
| CacheStorage interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | — | — | — |
| CacheStorage interface: operation match(RequestInfo, optional MultiCacheQueryOptions) | PASS | PASS | PASS | — | — | — |
| CacheStorage interface: operation has(DOMString) | PASS | PASS | PASS | — | — | — |
| CacheStorage interface: operation open(DOMString) | PASS | PASS | PASS | — | — | — |
| CacheStorage interface: operation delete(DOMString) | PASS | PASS | PASS | — | — | — |
| CacheStorage interface: operation keys() | PASS | PASS | PASS | — | — | — |
| CacheStorage must be primary interface of caches | PASS | PASS | PASS | — | — | — |
| Stringification of caches | PASS | PASS | PASS | — | — | — |
| CacheStorage interface: caches must inherit property "match(RequestInfo, optional MultiCacheQueryOptions)" with the proper type | PASS | PASS | PASS | — | — | — |
| CacheStorage interface: calling match(RequestInfo, optional MultiCacheQueryOptions) on caches with too few arguments must throw TypeError | PASS | PASS | PASS | — | — | — |
| CacheStorage interface: caches must inherit property "has(DOMString)" with the proper type | PASS | PASS | PASS | — | — | — |
| CacheStorage interface: calling has(DOMString) on caches with too few arguments must throw TypeError | PASS | PASS | PASS | — | — | — |
| CacheStorage interface: caches must inherit property "open(DOMString)" with the proper type | PASS | PASS | PASS | — | — | — |
| CacheStorage interface: calling open(DOMString) on caches with too few arguments must throw TypeError | PASS | PASS | PASS | — | — | — |
| CacheStorage interface: caches must inherit property "delete(DOMString)" with the proper type | PASS | PASS | PASS | — | — | — |
| CacheStorage interface: calling delete(DOMString) on caches with too few arguments must throw TypeError | PASS | PASS | PASS | — | — | — |
| CacheStorage interface: caches must inherit property "keys()" with the proper type | PASS | PASS | PASS | — | — | — |
| WorkerGlobalScope interface: attribute caches | PASS | PASS | PASS | — | — | — |
| WorkerNavigator interface: attribute serviceWorker | FAIL | PASS | PASS | — | — | — |