Skip to content

Commit 7c16857

Browse files
authored
fix regression in 0.12.x for app: (#239)
- still need to register service worker if in app - update checkSW() to check if no service worker and register on load - in extension, service worker always provided by system - fixes #233, #231, related to #217
1 parent 39c57bb commit 7c16857

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

src/ui/app.js

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ import { html, css, wrapCss, IS_APP, apiPrefix } from "replaywebpage/src/misc";
33
// replaywebpage imports
44
import { ReplayWebApp, Embed, Loader } from "replaywebpage";
55

6+
import { SWManager } from "replaywebpage/src/swmanager";
7+
68
import fasHelp from "@fortawesome/fontawesome-free/svgs/solid/question-circle.svg";
79
import fasPlus from "@fortawesome/fontawesome-free/svgs/solid/plus.svg";
810

@@ -141,15 +143,27 @@ class ArchiveWebApp extends ReplayWebApp
141143
}
142144
}
143145

144-
async checkDoubleSW() {
146+
async checkSW() {
145147
const regs = await navigator.serviceWorker.getRegistrations();
148+
// Remove double SW
146149
for (const reg of regs) {
147150
if (reg.active && reg.active.scriptURL.endsWith("/replay/sw.js")) {
148151
if (await reg.unregister()) {
149152
self.location.reload();
150153
}
151154
}
152155
}
156+
157+
// For App: If no SW, register here
158+
if (IS_APP && !regs.length) {
159+
this.swmanager = new SWManager({ name: this.swName, appName: this.appName });
160+
this.swmanager
161+
.register()
162+
.catch(
163+
() =>
164+
(this.swErrorMsg = this.swmanager.renderErrorReport(this.mainLogo)),
165+
);
166+
}
153167
}
154168

155169
firstUpdated() {
@@ -159,7 +173,7 @@ class ArchiveWebApp extends ReplayWebApp
159173
return super.firstUpdated();
160174
}
161175

162-
this.checkDoubleSW();
176+
this.checkSW();
163177

164178
this.initRoute();
165179

0 commit comments

Comments
 (0)