From ff9b8e71c13cffc459851669454a4d79a8dd598b Mon Sep 17 00:00:00 2001 From: Kai Vandivier Date: Fri, 21 Oct 2022 18:00:38 +0200 Subject: [PATCH 1/2] fix(pwa): file SWR filter & allow navigation 403s --- pwa/src/service-worker/service-worker.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pwa/src/service-worker/service-worker.js b/pwa/src/service-worker/service-worker.js index 6f934f6ba..477a2b936 100644 --- a/pwa/src/service-worker/service-worker.js +++ b/pwa/src/service-worker/service-worker.js @@ -99,9 +99,10 @@ export function setUpServiceWorker() { const navigationRouteHandler = ({ request }) => { return fetch(request) .then((response) => { - if (response.type === 'opaqueredirect') { - // It's sending a redirect to the login page. Return - // that to the client + if (response.type === 'opaqueredirect' || !response.ok) { + // It's sending a redirect to the login page, + // or an 'unauthorized'/'forbidden' response. + // Return that to the client return response } @@ -109,7 +110,7 @@ export function setUpServiceWorker() { return matchPrecache(indexUrl) }) .catch(() => { - // Request failed (maybe offline). Return cached response + // Request failed (probably offline). Return cached response return matchPrecache(indexUrl) }) } @@ -137,13 +138,13 @@ export function setUpServiceWorker() { // If not recording, fall through to default caching strategies for app // shell: - // SWR strategy for static assets that can't be precached. + // SWR strategy for image assets that can't be precached. // (Skip in development environments) registerRoute( ({ url }) => PRODUCTION_ENV && urlMeetsAppShellCachingCriteria(url) && - fileExtensionRegexp.test(url.pathname), + /\.(jpg|gif|png|bmp|tiff|ico)$/.test(url.pathname), new StaleWhileRevalidate({ cacheName: 'other-assets' }) ) From 158ea158e58ce6c7bd842344631b06d5f156f0b9 Mon Sep 17 00:00:00 2001 From: Kai Vandivier Date: Mon, 24 Oct 2022 13:30:40 +0200 Subject: [PATCH 2/2] fix: use SWR for fonts --- pwa/src/service-worker/service-worker.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pwa/src/service-worker/service-worker.js b/pwa/src/service-worker/service-worker.js index 477a2b936..9e2817e25 100644 --- a/pwa/src/service-worker/service-worker.js +++ b/pwa/src/service-worker/service-worker.js @@ -144,7 +144,7 @@ export function setUpServiceWorker() { ({ url }) => PRODUCTION_ENV && urlMeetsAppShellCachingCriteria(url) && - /\.(jpg|gif|png|bmp|tiff|ico)$/.test(url.pathname), + /\.(jpg|gif|png|bmp|tiff|ico|woff)$/.test(url.pathname), new StaleWhileRevalidate({ cacheName: 'other-assets' }) )