<?xml version="1.0" encoding="UTF-8"?>
<feature id="service-workers"><name>Service workers</name><description>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.</description><group>workers</group><group_name>Workers</group_name><baseline><status>widely</status><low_date>2018-04-30</low_date><high_date>2020-10-30</high_date></baseline><support><browser name="chrome" version="45" supported="true"></browser><browser name="firefox" version="44" supported="true"></browser><browser name="safari" version="11.1" supported="true"></browser><browser name="edge" version="17" supported="true"></browser><browser name="chrome_android" version="45" supported="true"></browser><browser name="firefox_android" version="44" supported="true"></browser><browser name="safari_ios" version="11.3" supported="true"></browser></support><specifications><spec>https://w3c.github.io/ServiceWorker/</spec></specifications><caniuse><id>serviceworkers</id></caniuse><mdn_url>https://developer.mozilla.org/docs/Web/API/Cache</mdn_url><compat_features><key>api.Cache</key><key>api.Cache.add</key><key>api.Cache.addAll</key><key>api.Cache.delete</key><key>api.Cache.keys</key><key>api.Cache.match</key><key>api.Cache.matchAll</key><key>api.Cache.put</key><key>api.Cache.worker_support</key><key>api.CacheStorage</key><key>api.CacheStorage.delete</key><key>api.CacheStorage.has</key><key>api.CacheStorage.keys</key><key>api.CacheStorage.match</key><key>api.CacheStorage.open</key><key>api.CacheStorage.secure_context_required</key><key>api.CacheStorage.worker_support</key><key>api.Client</key><key>api.Client.frameType</key><key>api.Client.id</key><key>api.Client.postMessage</key><key>api.Client.type</key><key>api.Client.url</key><key>api.Clients</key><key>api.Clients.claim</key><key>api.Clients.get</key><key>api.Clients.matchAll</key><key>api.Clients.matchAll.options_includeUncontrolled_parameter</key><key>api.Clients.openWindow</key><key>api.ExtendableEvent</key><key>api.ExtendableEvent.ExtendableEvent</key><key>api.ExtendableEvent.waitUntil</key><key>api.ExtendableEvent.waitUntil.async_waitUntil</key><key>api.ExtendableMessageEvent</key><key>api.ExtendableMessageEvent.ExtendableMessageEvent</key><key>api.ExtendableMessageEvent.data</key><key>api.ExtendableMessageEvent.lastEventId</key><key>api.ExtendableMessageEvent.origin</key><key>api.ExtendableMessageEvent.ports</key><key>api.ExtendableMessageEvent.source</key><key>api.FetchEvent</key><key>api.FetchEvent.FetchEvent</key><key>api.FetchEvent.clientId</key><key>api.FetchEvent.handled</key><key>api.FetchEvent.preloadResponse</key><key>api.FetchEvent.request</key><key>api.FetchEvent.respondWith</key><key>api.FetchEvent.respondWith.networkerror_on_same-origin_cors</key><key>api.FetchEvent.respondWith.resource_url</key><key>api.FetchEvent.resultingClientId</key><key>api.NavigationPreloadManager</key><key>api.NavigationPreloadManager.disable</key><key>api.NavigationPreloadManager.enable</key><key>api.NavigationPreloadManager.getState</key><key>api.NavigationPreloadManager.setHeaderValue</key><key>api.Navigator.serviceWorker</key><key>api.ServiceWorker</key><key>api.ServiceWorker.postMessage</key><key>api.ServiceWorker.scriptURL</key><key>api.ServiceWorker.state</key><key>api.ServiceWorker.statechange_event</key><key>api.ServiceWorkerContainer</key><key>api.ServiceWorkerContainer.controller</key><key>api.ServiceWorkerContainer.controllerchange_event</key><key>api.ServiceWorkerContainer.getRegistration</key><key>api.ServiceWorkerContainer.getRegistrations</key><key>api.ServiceWorkerContainer.message_event</key><key>api.ServiceWorkerContainer.ready</key><key>api.ServiceWorkerContainer.register</key><key>api.ServiceWorkerContainer.startMessages</key><key>api.ServiceWorkerContainer.worker_support</key><key>api.ServiceWorkerGlobalScope</key><key>api.ServiceWorkerGlobalScope.activate_event</key><key>api.ServiceWorkerGlobalScope.clients</key><key>api.ServiceWorkerGlobalScope.fetch_event</key><key>api.ServiceWorkerGlobalScope.install_event</key><key>api.ServiceWorkerGlobalScope.message_event</key><key>api.ServiceWorkerGlobalScope.registration</key><key>api.ServiceWorkerGlobalScope.serviceWorker</key><key>api.ServiceWorkerGlobalScope.skipWaiting</key><key>api.ServiceWorkerRegistration.active</key><key>api.ServiceWorkerRegistration.installing</key><key>api.ServiceWorkerRegistration.navigationPreload</key><key>api.ServiceWorkerRegistration.scope</key><key>api.ServiceWorkerRegistration.unregister</key><key>api.ServiceWorkerRegistration.update</key><key>api.ServiceWorkerRegistration.updateViaCache</key><key>api.ServiceWorkerRegistration.updatefound_event</key><key>api.ServiceWorkerRegistration.waiting</key><key>api.WindowClient</key><key>api.WindowClient.ancestorOrigins</key><key>api.WindowClient.focus</key><key>api.WindowClient.focused</key><key>api.WindowClient.navigate</key><key>api.WindowClient.visibilityState</key><key>api.WorkerNavigator.serviceWorker</key><key>api.caches</key><key>api.caches.secure_context_required</key><key>api.caches.worker_support</key><key>http.headers.Service-Worker-Navigation-Preload</key></compat_features><canonical_url>https://nowyoucanuse.com/features--service-workers.html</canonical_url></feature>