From 656d0fa76235a8f0b1e78fee906a3d0fd8ab51ec Mon Sep 17 00:00:00 2001 From: Selase Krakani <849886+s3lase@users.noreply.github.com> Date: Sun, 11 Dec 2022 16:37:41 +0000 Subject: [PATCH] DEV: Use isSecureContext for service worker registrations (#19407) Currently, we check if the site is loaded over `https` before registering the service worker. This prevents the service worker from being registered in a standard dev/test setup. This change replaces the protocol check with `isSecureContext` property check. In addition to resources delivered over `https`, `isSecureContext` returns `true` for resources loaded over `http://127.0.0.1`, `http://localhost`, `http://*.localhost` and `file://`. --- .../javascripts/discourse/app/lib/register-service-worker.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/assets/javascripts/discourse/app/lib/register-service-worker.js b/app/assets/javascripts/discourse/app/lib/register-service-worker.js index 095ac6c141..c4fa02bc94 100644 --- a/app/assets/javascripts/discourse/app/lib/register-service-worker.js +++ b/app/assets/javascripts/discourse/app/lib/register-service-worker.js @@ -5,9 +5,7 @@ export function registerServiceWorker( serviceWorkerURL, registerOptions = {} ) { - const isSecured = document.location.protocol === "https:"; - - if (isSecured && "serviceWorker" in navigator) { + if (window.isSecureContext && "serviceWorker" in navigator) { const caps = container.lookup("capabilities:main"); const isAppleBrowser = caps.isSafari ||