WPT
wpt / service-workers / idlharness.https.any.worker.html
Spec: Service Workers ↗
Runs: Chrome 155.0.8039.0 (wpt@6ec9fd59f, 2026-09-03) | Firefox 157.0a1 (wpt@6ec9fd59f, 2026-09-03) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-795e1 (wpt@7e3d005d7, 2026-09-03) | Servo Servo 0.6 (wpt@09159dcb3, 2026-09-02) | Blitz 188486089 (wpt@a95401e4e, 2026-09-02)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 115/155 | 155/155 | 155/155 | 135/155 | 37/155 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| idl_test setup | PASS | PASS | PASS | PASS | FAIL | — |
| idl_test validation | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Navigator: original interface defined | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Navigator: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface WorkerNavigator: original interface defined | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface WorkerNavigator: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface mixin WindowOrWorkerGlobalScope: original interface mixin defined | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface mixin WindowOrWorkerGlobalScope: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Navigator[2]: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface mixin NavigatorID: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Partial interface Window: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| ServiceWorker includes AbstractWorker: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Window includes GlobalEventHandlers: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Window includes WindowEventHandlers: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Window includes WindowOrWorkerGlobalScope: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| WorkerGlobalScope includes WindowOrWorkerGlobalScope: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Navigator includes NavigatorID: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Navigator includes NavigatorLanguage: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Navigator includes NavigatorOnLine: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Navigator includes NavigatorContentUtils: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Navigator includes NavigatorCookies: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Navigator includes NavigatorPlugins: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Navigator includes NavigatorConcurrentHardware: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Window includes AnimationFrameProvider: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| WorkerNavigator includes NavigatorID: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| WorkerNavigator includes NavigatorLanguage: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| WorkerNavigator includes NavigatorOnLine: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| WorkerNavigator includes NavigatorConcurrentHardware: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Window includes WindowSessionStorage: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| Window includes WindowLocalStorage: member names are unique | PASS | PASS | PASS | PASS | PASS | — |
| ServiceWorker interface: existence and properties of interface object | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorker interface object length | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorker interface object name | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorker interface: existence and properties of interface prototype object | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorker interface: existence and properties of interface prototype object's "constructor" property | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorker interface: existence and properties of interface prototype object's @@unscopables property | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorker interface: attribute scriptURL | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorker interface: attribute state | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorker interface: operation postMessage(any, sequence<object>) | FAIL | PASS | PASS | FAIL | FAIL | — |
| ServiceWorker interface: operation postMessage(any, optional StructuredSerializeOptions) | FAIL | PASS | PASS | FAIL | FAIL | — |
| ServiceWorker interface: attribute onstatechange | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerRegistration interface: existence and properties of interface object | PASS | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerRegistration interface object length | PASS | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerRegistration interface object name | PASS | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerRegistration interface: existence and properties of interface prototype object | PASS | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerRegistration interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerRegistration interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerRegistration interface: attribute installing | PASS | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerRegistration interface: attribute waiting | PASS | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerRegistration interface: attribute active | PASS | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerRegistration interface: attribute navigationPreload | PASS | PASS | PASS | FAIL | FAIL | — |
| ServiceWorkerRegistration interface: attribute scope | PASS | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerRegistration interface: attribute updateViaCache | PASS | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerRegistration interface: operation update() | PASS | PASS | PASS | FAIL | FAIL | — |
| ServiceWorkerRegistration interface: operation unregister() | PASS | PASS | PASS | FAIL | FAIL | — |
| ServiceWorkerRegistration interface: attribute onupdatefound | PASS | PASS | PASS | FAIL | FAIL | — |
| ServiceWorkerContainer interface: existence and properties of interface object | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerContainer interface object length | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerContainer interface object name | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerContainer interface: existence and properties of interface prototype object | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerContainer interface: existence and properties of interface prototype object's "constructor" property | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerContainer interface: existence and properties of interface prototype object's @@unscopables property | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerContainer interface: attribute controller | FAIL | PASS | PASS | FAIL | FAIL | — |
| ServiceWorkerContainer interface: attribute ready | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerContainer interface: operation register((TrustedScriptURL or USVString), optional RegistrationOptions) | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerContainer interface: operation getRegistration(optional USVString) | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerContainer interface: operation getRegistrations() | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerContainer interface: operation startMessages() | FAIL | PASS | PASS | FAIL | FAIL | — |
| ServiceWorkerContainer interface: attribute oncontrollerchange | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerContainer interface: attribute onmessage | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerContainer interface: attribute onmessageerror | FAIL | PASS | PASS | PASS | FAIL | — |
| ServiceWorkerContainer must be primary interface of navigator.serviceWorker | FAIL | PASS | PASS | PASS | — | — |
| Stringification of navigator.serviceWorker | FAIL | PASS | PASS | PASS | — | — |
| ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "controller" with the proper type | FAIL | PASS | PASS | FAIL | — | — |
| ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "ready" with the proper type | FAIL | PASS | PASS | PASS | — | — |
| ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "register((TrustedScriptURL or USVString), optional RegistrationOptions)" with the proper type | FAIL | PASS | PASS | PASS | — | — |
| ServiceWorkerContainer interface: calling register((TrustedScriptURL or USVString), optional RegistrationOptions) on navigator.serviceWorker with too few arguments must throw TypeError | FAIL | PASS | PASS | PASS | — | — |
| ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistration(optional USVString)" with the proper type | FAIL | PASS | PASS | PASS | — | — |
| ServiceWorkerContainer interface: calling getRegistration(optional USVString) on navigator.serviceWorker with too few arguments must throw TypeError | FAIL | PASS | PASS | PASS | — | — |
| ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "getRegistrations()" with the proper type | FAIL | PASS | PASS | PASS | — | — |
| ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "startMessages()" with the proper type | FAIL | PASS | PASS | FAIL | — | — |
| ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "oncontrollerchange" with the proper type | FAIL | PASS | PASS | PASS | — | — |
| ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessage" with the proper type | FAIL | PASS | PASS | PASS | — | — |
| ServiceWorkerContainer interface: navigator.serviceWorker must inherit property "onmessageerror" with the proper type | FAIL | PASS | PASS | PASS | — | — |
| NavigationPreloadManager interface: existence and properties of interface object | PASS | PASS | PASS | FAIL | FAIL | — |
| NavigationPreloadManager interface object length | PASS | PASS | PASS | FAIL | FAIL | — |
| NavigationPreloadManager interface object name | PASS | PASS | PASS | FAIL | FAIL | — |
| NavigationPreloadManager interface: existence and properties of interface prototype object | PASS | PASS | PASS | FAIL | FAIL | — |
| NavigationPreloadManager interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | FAIL | FAIL | — |
| NavigationPreloadManager interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | FAIL | FAIL | — |
| NavigationPreloadManager interface: operation enable() | PASS | PASS | PASS | FAIL | FAIL | — |
| NavigationPreloadManager interface: operation disable() | PASS | PASS | PASS | FAIL | FAIL | — |
| NavigationPreloadManager interface: operation setHeaderValue(ByteString) | PASS | PASS | PASS | FAIL | FAIL | — |
| NavigationPreloadManager interface: operation getState() | PASS | PASS | PASS | FAIL | FAIL | — |
| ServiceWorkerGlobalScope interface: existence and properties of interface object | PASS | PASS | PASS | PASS | PASS | — |
| Client interface: existence and properties of interface object | PASS | PASS | PASS | PASS | PASS | — |
| WindowClient interface: existence and properties of interface object | PASS | PASS | PASS | PASS | PASS | — |
| Clients interface: existence and properties of interface object | PASS | PASS | PASS | PASS | PASS | — |
| ExtendableEvent interface: existence and properties of interface object | PASS | PASS | PASS | PASS | PASS | — |
| InstallEvent interface: existence and properties of interface object | PASS | PASS | PASS | PASS | PASS | — |
| FetchEvent interface: existence and properties of interface object | PASS | PASS | PASS | PASS | PASS | — |
| ExtendableMessageEvent interface: existence and properties of interface object | PASS | PASS | PASS | PASS | PASS | — |
| Cache interface: existence and properties of interface object | PASS | PASS | PASS | PASS | FAIL | — |
| Cache interface object length | PASS | PASS | PASS | PASS | FAIL | — |
| Cache interface object name | PASS | PASS | PASS | PASS | FAIL | — |
| Cache interface: existence and properties of interface prototype object | PASS | PASS | PASS | PASS | FAIL | — |
| Cache interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | PASS | FAIL | — |
| Cache interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | PASS | FAIL | — |
| Cache interface: operation match(RequestInfo, optional CacheQueryOptions) | PASS | PASS | PASS | PASS | FAIL | — |
| Cache interface: operation matchAll(optional RequestInfo, optional CacheQueryOptions) | PASS | PASS | PASS | PASS | FAIL | — |
| Cache interface: operation add(RequestInfo) | PASS | PASS | PASS | PASS | FAIL | — |
| Cache interface: operation addAll(sequence<RequestInfo>) | PASS | PASS | PASS | PASS | FAIL | — |
| Cache interface: operation put(RequestInfo, Response) | PASS | PASS | PASS | PASS | FAIL | — |
| Cache interface: operation delete(RequestInfo, optional CacheQueryOptions) | PASS | PASS | PASS | PASS | FAIL | — |
| Cache interface: operation keys(optional RequestInfo, optional CacheQueryOptions) | PASS | PASS | PASS | PASS | FAIL | — |
| Cache must be primary interface of self.cacheInstance | PASS | PASS | PASS | PASS | — | — |
| Stringification of self.cacheInstance | PASS | PASS | PASS | PASS | — | — |
| Cache interface: self.cacheInstance must inherit property "match(RequestInfo, optional CacheQueryOptions)" with the proper type | PASS | PASS | PASS | PASS | — | — |
| Cache interface: calling match(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | — | — |
| Cache interface: self.cacheInstance must inherit property "matchAll(optional RequestInfo, optional CacheQueryOptions)" with the proper type | PASS | PASS | PASS | PASS | — | — |
| Cache interface: calling matchAll(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | — | — |
| Cache interface: self.cacheInstance must inherit property "add(RequestInfo)" with the proper type | PASS | PASS | PASS | PASS | — | — |
| Cache interface: calling add(RequestInfo) on self.cacheInstance with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | — | — |
| Cache interface: self.cacheInstance must inherit property "addAll(sequence<RequestInfo>)" with the proper type | PASS | PASS | PASS | PASS | — | — |
| Cache interface: calling addAll(sequence<RequestInfo>) on self.cacheInstance with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | — | — |
| Cache interface: self.cacheInstance must inherit property "put(RequestInfo, Response)" with the proper type | PASS | PASS | PASS | PASS | — | — |
| Cache interface: calling put(RequestInfo, Response) on self.cacheInstance with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | — | — |
| Cache interface: self.cacheInstance must inherit property "delete(RequestInfo, optional CacheQueryOptions)" with the proper type | PASS | PASS | PASS | PASS | — | — |
| Cache interface: calling delete(RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | — | — |
| Cache interface: self.cacheInstance must inherit property "keys(optional RequestInfo, optional CacheQueryOptions)" with the proper type | PASS | PASS | PASS | PASS | — | — |
| Cache interface: calling keys(optional RequestInfo, optional CacheQueryOptions) on self.cacheInstance with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | — | — |
| CacheStorage interface: existence and properties of interface object | PASS | PASS | PASS | PASS | FAIL | — |
| CacheStorage interface object length | PASS | PASS | PASS | PASS | FAIL | — |
| CacheStorage interface object name | PASS | PASS | PASS | PASS | FAIL | — |
| CacheStorage interface: existence and properties of interface prototype object | PASS | PASS | PASS | PASS | FAIL | — |
| CacheStorage interface: existence and properties of interface prototype object's "constructor" property | PASS | PASS | PASS | PASS | FAIL | — |
| CacheStorage interface: existence and properties of interface prototype object's @@unscopables property | PASS | PASS | PASS | PASS | FAIL | — |
| CacheStorage interface: operation match(RequestInfo, optional MultiCacheQueryOptions) | PASS | PASS | PASS | PASS | FAIL | — |
| CacheStorage interface: operation has(DOMString) | PASS | PASS | PASS | PASS | FAIL | — |
| CacheStorage interface: operation open(DOMString) | PASS | PASS | PASS | PASS | FAIL | — |
| CacheStorage interface: operation delete(DOMString) | PASS | PASS | PASS | PASS | FAIL | — |
| CacheStorage interface: operation keys() | PASS | PASS | PASS | PASS | FAIL | — |
| CacheStorage must be primary interface of caches | PASS | PASS | PASS | PASS | — | — |
| Stringification of caches | PASS | PASS | PASS | PASS | — | — |
| CacheStorage interface: caches must inherit property "match(RequestInfo, optional MultiCacheQueryOptions)" with the proper type | PASS | PASS | PASS | PASS | — | — |
| CacheStorage interface: calling match(RequestInfo, optional MultiCacheQueryOptions) on caches with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | — | — |
| CacheStorage interface: caches must inherit property "has(DOMString)" with the proper type | PASS | PASS | PASS | PASS | — | — |
| CacheStorage interface: calling has(DOMString) on caches with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | — | — |
| CacheStorage interface: caches must inherit property "open(DOMString)" with the proper type | PASS | PASS | PASS | PASS | — | — |
| CacheStorage interface: calling open(DOMString) on caches with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | — | — |
| CacheStorage interface: caches must inherit property "delete(DOMString)" with the proper type | PASS | PASS | PASS | PASS | — | — |
| CacheStorage interface: calling delete(DOMString) on caches with too few arguments must throw TypeError | PASS | PASS | PASS | PASS | — | — |
| CacheStorage interface: caches must inherit property "keys()" with the proper type | PASS | PASS | PASS | PASS | — | — |
| WorkerGlobalScope interface: attribute caches | PASS | PASS | PASS | PASS | FAIL | — |
| WorkerNavigator interface: attribute serviceWorker | FAIL | PASS | PASS | PASS | FAIL | — |