Widely Available
Workers
id: service-workers
Service workers
The service worker of a website is a script that runs in its own thread and which acts as local proxy that intercepts network requests from the website. Use a service worker to implement advanced caching strategies, offline support, background tasks, or push notification support on your website.
Baseline Status:
Achieved Widely Available on Oct 30, 2020 (Cross-browser Newly Available since Apr 30, 2018).
Desktop Browser Engine Support
Google Chrome
45
Supported
Mozilla Firefox
44
Supported
Apple Safari
11.1
Supported
Microsoft Edge
17
Supported
Mobile Browser Engine Support
Chrome Android
45
Firefox Android
44
Safari iOS
11.3
Specifications and References
MDN Browser Compat Data Keys:
api.Cache ↗
api.Cache.add ↗
api.Cache.addAll ↗
api.Cache.delete ↗
api.Cache.keys ↗
api.Cache.match ↗
api.Cache.matchAll ↗
api.Cache.put ↗
api.Cache.worker_support ↗
api.CacheStorage ↗
api.CacheStorage.delete ↗
api.CacheStorage.has ↗
api.CacheStorage.keys ↗
api.CacheStorage.match ↗
api.CacheStorage.open ↗
api.CacheStorage.secure_context_required ↗
api.CacheStorage.worker_support ↗
api.Client ↗
api.Client.frameType ↗
api.Client.id ↗
api.Client.postMessage ↗
api.Client.type ↗
api.Client.url ↗
api.Clients ↗
api.Clients.claim ↗
api.Clients.get ↗
api.Clients.matchAll ↗
api.Clients.matchAll.options_includeUncontrolled_parameter ↗
api.Clients.openWindow ↗
api.ExtendableEvent ↗
api.ExtendableEvent.ExtendableEvent ↗
api.ExtendableEvent.waitUntil ↗
api.ExtendableEvent.waitUntil.async_waitUntil ↗
api.ExtendableMessageEvent ↗
api.ExtendableMessageEvent.ExtendableMessageEvent ↗
api.ExtendableMessageEvent.data ↗
api.ExtendableMessageEvent.lastEventId ↗
api.ExtendableMessageEvent.origin ↗
api.ExtendableMessageEvent.ports ↗
api.ExtendableMessageEvent.source ↗
api.FetchEvent ↗
api.FetchEvent.FetchEvent ↗
api.FetchEvent.clientId ↗
api.FetchEvent.handled ↗
api.FetchEvent.preloadResponse ↗
api.FetchEvent.request ↗
api.FetchEvent.respondWith ↗
api.FetchEvent.respondWith.networkerror_on_same-origin_cors ↗
api.FetchEvent.respondWith.resource_url ↗
api.FetchEvent.resultingClientId ↗
api.NavigationPreloadManager ↗
api.NavigationPreloadManager.disable ↗
api.NavigationPreloadManager.enable ↗
api.NavigationPreloadManager.getState ↗
api.NavigationPreloadManager.setHeaderValue ↗
api.Navigator.serviceWorker ↗
api.ServiceWorker ↗
api.ServiceWorker.postMessage ↗
api.ServiceWorker.scriptURL ↗
api.ServiceWorker.state ↗
api.ServiceWorker.statechange_event ↗
api.ServiceWorkerContainer ↗
api.ServiceWorkerContainer.controller ↗
api.ServiceWorkerContainer.controllerchange_event ↗
api.ServiceWorkerContainer.getRegistration ↗
api.ServiceWorkerContainer.getRegistrations ↗
api.ServiceWorkerContainer.message_event ↗
api.ServiceWorkerContainer.ready ↗
api.ServiceWorkerContainer.register ↗
api.ServiceWorkerContainer.startMessages ↗
api.ServiceWorkerContainer.worker_support ↗
api.ServiceWorkerGlobalScope ↗
api.ServiceWorkerGlobalScope.activate_event ↗
api.ServiceWorkerGlobalScope.clients ↗
api.ServiceWorkerGlobalScope.fetch_event ↗
api.ServiceWorkerGlobalScope.install_event ↗
api.ServiceWorkerGlobalScope.message_event ↗
api.ServiceWorkerGlobalScope.registration ↗
api.ServiceWorkerGlobalScope.serviceWorker ↗
api.ServiceWorkerGlobalScope.skipWaiting ↗
api.ServiceWorkerRegistration.active ↗
api.ServiceWorkerRegistration.installing ↗
api.ServiceWorkerRegistration.navigationPreload ↗
api.ServiceWorkerRegistration.scope ↗
api.ServiceWorkerRegistration.unregister ↗
api.ServiceWorkerRegistration.update ↗
api.ServiceWorkerRegistration.updateViaCache ↗
api.ServiceWorkerRegistration.updatefound_event ↗
api.ServiceWorkerRegistration.waiting ↗
api.WindowClient ↗
api.WindowClient.ancestorOrigins ↗
api.WindowClient.focus ↗
api.WindowClient.focused ↗
api.WindowClient.navigate ↗
api.WindowClient.visibilityState ↗
api.WorkerNavigator.serviceWorker ↗
api.caches ↗
api.caches.secure_context_required ↗
api.caches.worker_support ↗
http.headers.Service-Worker-Navigation-Preload ↗