From 9ae5ddb330dd76355f5a3ab51c74be02ea4ef0fa Mon Sep 17 00:00:00 2001 From: Bianca Nenciu Date: Tue, 9 May 2023 17:36:20 +0200 Subject: [PATCH] FIX: Service worker for Safari (#21435) The first rule in the service worker is bypassed for Safari, but the previous detection method was matching any browser running on macOS. --- app/assets/javascripts/service-worker.js.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/service-worker.js.erb b/app/assets/javascripts/service-worker.js.erb index e16d8d9300c..1538851c1e8 100644 --- a/app/assets/javascripts/service-worker.js.erb +++ b/app/assets/javascripts/service-worker.js.erb @@ -19,7 +19,7 @@ var externalCacheName = "external-" + cacheVersion; // https://bugs.chromium.org/p/chromium/issues/detail?id=1286367 var chromeVersionMatch = navigator.userAgent.match(/Chrome\/97.0.(\d+)/); var isBrokenChrome97 = chromeVersionMatch && parseInt(chromeVersionMatch[1]) <= 4692; -var isApple = /iPhone|iPod|Mac OS/.test(navigator.userAgent); +var isApple = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); // Cache all GET requests, so Discourse can be used while offline workbox.routing.registerRoute(