display-override-member-media-feature-service-worker.js (2241B)
1 // Some user agents only offer app installation if there is a SW and it handles 2 // offline requests. 3 4 const cacheVersion = "1.2"; 5 const CACHE_NAME = `cache-v${cacheVersion}`; 6 7 // The resources cached by this service worker. 8 const resources = [ 9 "display-override-member-app-region-window-controls-overlay-manual.tentative.html", 10 "display-override-member-css-environment-variables-window-controls-overlay-manual.tentative.html", 11 "display-override-member-media-feature-browser-manual.tentative.html", 12 "display-override-member-media-feature-fullscreen-manual.tentative.html", 13 "display-override-member-media-feature-minimal-ui-manual.tentative.html", 14 "display-override-member-media-feature-standalone-manual.tentative.html", 15 "display-override-member-media-feature-standalone-overrides-browser-manual.tentative.html", 16 "display-override-member-media-feature-window-controls-overlay-overrides-browser-manual.tentative.html", 17 "display-override-member-media-feature-service-worker.js", 18 "resources/display-override-member-media-feature-manual.js", 19 "resources/icon.png", 20 ]; 21 22 // Load all resources for this service worker. 23 const precache = async () => { 24 const cache = await caches.open(CACHE_NAME); 25 await cache.addAll(resources); 26 }; 27 28 // Get a resource from the cache. 29 const fromCache = async request => { 30 const cache = await caches.open(CACHE_NAME); 31 return await cache.match(request.url); 32 }; 33 34 // Attempt to get resources from the network first, fallback to the cache if we're 35 // offline. 36 const networkFallbackToCache = async request => { 37 try { 38 const response = await fetch(request); 39 if (response.ok) return response; 40 } catch (err) {} 41 return await fromCache(request); 42 }; 43 44 // When we have a new service worker, update the caches and swap immediately. 45 self.addEventListener("install", e => { 46 e.waitUntil(precache().then(() => self.skipWaiting())); 47 }); 48 49 // Claim existing clients. 50 self.addEventListener("activate", e => { 51 e.waitUntil(self.clients.claim()); 52 }); 53 54 // When a resource need to be fetched, check whether it is 55 // contained in the cache and return the cached version, otherwise 56 // get it from the network. 57 self.addEventListener("fetch", e => { 58 e.respondWith(networkFallbackToCache(e.request)); 59 });