Skip to content

Commit 7b1d2a0

Browse files
authored
Merge pull request #26 from tamo/sw-unavailable
Output error when navigator.serviceWorker is unavailable
2 parents 031110a + 4dadf68 commit 7b1d2a0

File tree

2 files changed

+26
-23
lines changed

2 files changed

+26
-23
lines changed

coi-serviceworker.js

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -115,29 +115,32 @@ if (typeof window === 'undefined') {
115115
return;
116116
}
117117

118-
// In some environments (e.g. Chrome incognito mode) this won't be available
119-
if (n.serviceWorker) {
120-
n.serviceWorker.register(window.document.currentScript.src).then(
121-
(registration) => {
122-
!coi.quiet && console.log("COOP/COEP Service Worker registered", registration.scope);
123-
124-
registration.addEventListener("updatefound", () => {
125-
!coi.quiet && console.log("Reloading page to make use of updated COOP/COEP Service Worker.");
126-
window.sessionStorage.setItem("coiReloadedBySelf", "updatefound");
127-
coi.doReload();
128-
});
118+
// In some environments (e.g. Firefox private mode) this won't be available
119+
if (!n.serviceWorker) {
120+
!coi.quiet && console.error("COOP/COEP Service Worker not registered, perhaps due to private mode.");
121+
return;
122+
}
129123

130-
// If the registration is active, but it's not controlling the page
131-
if (registration.active && !n.serviceWorker.controller) {
132-
!coi.quiet && console.log("Reloading page to make use of COOP/COEP Service Worker.");
133-
window.sessionStorage.setItem("coiReloadedBySelf", "notcontrolling");
134-
coi.doReload();
135-
}
136-
},
137-
(err) => {
138-
!coi.quiet && console.error("COOP/COEP Service Worker failed to register:", err);
124+
n.serviceWorker.register(window.document.currentScript.src).then(
125+
(registration) => {
126+
!coi.quiet && console.log("COOP/COEP Service Worker registered", registration.scope);
127+
128+
registration.addEventListener("updatefound", () => {
129+
!coi.quiet && console.log("Reloading page to make use of updated COOP/COEP Service Worker.");
130+
window.sessionStorage.setItem("coiReloadedBySelf", "updatefound");
131+
coi.doReload();
132+
});
133+
134+
// If the registration is active, but it's not controlling the page
135+
if (registration.active && !n.serviceWorker.controller) {
136+
!coi.quiet && console.log("Reloading page to make use of COOP/COEP Service Worker.");
137+
window.sessionStorage.setItem("coiReloadedBySelf", "notcontrolling");
138+
coi.doReload();
139139
}
140-
);
141-
}
140+
},
141+
(err) => {
142+
!coi.quiet && console.error("COOP/COEP Service Worker failed to register:", err);
143+
}
144+
);
142145
})();
143146
}

coi-serviceworker.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)