Service worker enthusiasmThe first thing any implementation needs.ChromeSupportedFirefoxSupportedOperaSupportedSamsung InternetSupportedSafariSupportedEdgeSupportedChrome: Shipped.Firefox: Shipped.Samsung Internet: Shipped. Based on Chromium 44.2403 with some additions and changes. (See "Service Worker" section.)Safari: Shipped.Edge: Shipped.Support does not include iOS versions of third-party browsers on that platform (see Safari support).
PromisesNot service worker-specific, but required by service worker. Spec.ChromeSupported since version 36FirefoxSupported since version 29OperaSupported since version 23Samsung InternetSupported since version 2SafariSupported since version 9EdgeSupported since version 13
DebuggingState of debugging tools.ChromeSupported since version 40FirefoxSupported since version 47OperaSupportedSamsung InternetSupportedSafariSupported since version 11.1EdgeSupported since version 17Chrome: You can debug service worker scripts as any other. "Application" panel in devtools has service worker & cache sections.Firefox: Debuggable from the "Workers" page in about:debugging.Firefox: Web Console can display console messages from service workers.Firefox: about:serviceworkers has some under-the-hood stuff.Opera: Debuggable from the resources panel in Opera developer if you enable super-experimental devtools.Opera: Console messages from the service worker appear in the pages' console in Opera stable.Safari: See 'service workers' in the 'develop' menu to open an inspector for a particular service worker.Edge: See the service worker section in the sources panel.Chrome & Opera: Debuggable from the resources panel in Chrome Canary and Opera developer if you enable super-experimental devtools.Chrome & Opera: Console messages from the service worker appear in the pages' console.Chrome & Opera & Samsung Internet: chrome://serviceworker-internals resp. browser://serviceworker-internals (in Opera developer) has some under-the-hood stuff.
navigator.serviceWorkerNamespace for page-side service worker API. Spec. Test.ChromeSupported since version 40FirefoxSupported since version 44OperaSupported since version 27Samsung InternetSupported since version 4SafariSupported since version 11.1EdgeSupported since version 17
Register / unregisterRegister for a SW and get a registration instance back, unregister undoes. Spec. Test.ChromeSupported since version 40FirefoxSupported since version 44OperaSupported since version 27Samsung InternetSupported since version 4SafariSupported since version 11.1EdgeSupported since version 17
postMessage to & from workerSpec. Test.ChromeSupported since version 45FirefoxSupported since version 44OperaSupported since version 32Samsung InternetSupported since version 4SafariSupported since version 11.1EdgeSupported since version 17
Fetch eventFires for pages and all sub-resources. Spec. Test.ChromeSupported since version 40FirefoxSupported since version 44OperaSupported since version 27Samsung InternetSupported since version 4SafariSupported since version 11.1EdgeSupported since version 17
fetchEvent.requestSpec. Test.ChromeSupported since version 40FirefoxSupported since version 44OperaSupported since version 27Samsung InternetSupported since version 4SafariSupported since version 11.1EdgeSupported since version 17
fetchEvent.respondWith()Spec. Test.ChromeSupported since version 40FirefoxSupported since version 44OperaSupported since version 27Samsung InternetSupported since version 4SafariSupported since version 11.1EdgeSupported since version 17
Install eventInstall event fires in a newly discovered SW. Includes InstallEvent.waitUntil(). Spec. TestChromeSupported since version 40FirefoxSupported since version 44OperaSupported since version 27Samsung InternetSupported since version 4SafariSupported since version 11.1EdgeSupported since version 17
self.skipWaiting()Allow an installing worker to take over from the current active worker once installed. Spec. Test.ChromeSupported since version 42FirefoxSupported since version 44OperaSupported since version 27Samsung InternetSupported since version 4SafariSupported since version 11.1EdgeSupported since version 17
Activate eventActivate event fires once this worker becomes the active worker in a registration. Includes event.waitUntil(). Spec. Test.ChromeSupported since version 40FirefoxSupported since version 44OperaSupported since version 27Samsung InternetSupported since version 4SafariSupported since version 11.1EdgeSupported since version 17
clients.claim()Allow an active worker to take control of pages in its scope (eg, documents that were loaded before the SW was registered). Spec. Test.ChromeSupported since version 42FirefoxSupported since version 44OperaSupported since version 33Samsung InternetSupported since version 4SafariSupported since version 11.1EdgeSupported since version 17
Update checksBrowser checks for SW updates after navigation. Spec.ChromeSupported since version 40FirefoxSupported since version 44OperaSupported since version 27Samsung InternetSupported since version 4SafariSupported since version 11.1EdgeSupported since version 17
Service worker lifecycleAllow a next version to be in waiting & take over when appropriate.ChromeSupported since version 40FirefoxSupported since version 44OperaSupported since version 27Samsung InternetSupported since version 4SafariSupported since version 11.1EdgeSupported since version 17
RequestSpec. Test.ChromeSupported since version 40FirefoxSupported since version 39OperaSupported since version 27Samsung InternetSupported since version 4SafariSupported since version 10.1EdgeSupported since version 14
ResponseSpec. Test.ChromeSupported since version 40FirefoxSupported since version 39OperaSupported since version 33Samsung InternetSupported since version 4SafariSupported since version 10.1EdgeSupported since version 14Chrome & Samsung Internet: URLSearchParams not supported yet
fetch(request)Spec. Test.ChromeSupported since version 40FirefoxSupported since version 39OperaSupported since version 27Samsung InternetSupported since version 4SafariSupported since version 10.1EdgeSupported since version 14Polyfill available
cachesSpec. Test.ChromeSupported since version 46FirefoxSupported since version 44OperaSupported since version 33Samsung InternetSupported since version 4SafariSupported since version 11.1EdgeSupported since version 16
serviceWorker.readySpec. Test.ChromeSupportedFirefoxSupported since version 44OperaSupported since version 33Samsung InternetSupported since version 4SafariSupported since version 11.1EdgeSupported since version 17
Background syncDeferring tasks until the user has connectivity. Spec. Test.ChromeSupported since version 49FirefoxNo supportOperaNo supportSamsung InternetNo supportSafariNo supportEdgeNo supportFirefox: Bug 1217544Edge: In development