Skip to content

Commit cd96356

Browse files
committed
chore: on startup crash, reset service worker registrations too after cache reset
1 parent 8b82053 commit cd96356

1 file changed

Lines changed: 34 additions & 2 deletions

File tree

src/main.js

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,35 @@ if (window.location.search.indexOf("testEnvironment") > -1) {
159159
});
160160
}
161161

162+
function _unregisterServiceWorkers() {
163+
return new Promise(resolve =>{
164+
if ('serviceWorker' in navigator) {
165+
console.warn("Recovering boot: unregistering all service workers...");
166+
navigator.serviceWorker.getRegistrations().then((registrations) => {
167+
const unregisterPromises = [];
168+
for (let registration of registrations) {
169+
console.warn("Recovering boot: unregistering", registration.scope);
170+
unregisterPromises.push(registration.unregister());
171+
}
172+
Promise.allSettled(unregisterPromises)
173+
.catch(console.error)
174+
.then(()=>{
175+
console.warn("Recovering boot: Success, unregistered all service workers!");
176+
resolve();
177+
});
178+
}).catch(err=>{
179+
console.error("Error getting service worker registrations for boot recovery!!!", err);
180+
window.logger && window.logger.reportError(err,
181+
'Critical error Recovering boot, while resetting service worker registrations');
182+
// wait for 2 more seconds for the error to be reported to bugsnag before reloading page.
183+
setTimeout(resolve, 2000);
184+
});
185+
} else {
186+
resolve();
187+
}
188+
});
189+
}
190+
162191
define(function (require) {
163192

164193

@@ -176,9 +205,12 @@ define(function (require) {
176205
if(window._resetCacheIfNeeded){
177206
window._resetCacheIfNeeded(true)
178207
.finally(()=>{
179-
// wait for 3 seconds for bugsnag to send report.
208+
// wait for 3 seconds for bugsnag to send report and service workers to be active.
180209
setTimeout(()=>{
181-
location.reload();
210+
_unregisterServiceWorkers()
211+
.then(()=>{
212+
location.reload();
213+
});
182214
}, 3000);
183215
});
184216
} else {

0 commit comments

Comments
 (0)