From 5a36b32a9565e5c5c2f2e2b1bd16fc8664a05182 Mon Sep 17 00:00:00 2001 From: Ilya Kreymer Date: Tue, 12 Sep 2023 21:36:18 -0700 Subject: [PATCH] loading: keep 'serveIndex' query arg on all sw.js loads, not just in embed.js (#242) fixes embed 'purge cache + reload' bump to 1.8.12 --- CHANGES.md | 3 +++ package.json | 2 +- src/appmain.ts | 1 + src/sw.js | 29 +++++++++++++++++++++++++++++ 4 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 src/sw.js diff --git a/CHANGES.md b/CHANGES.md index da273a6..d78ae7d 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,9 @@ ## CHANGES +v1.8.12 +- Loading: Fixes embed 'Purge Cache + Reload', ensure '?serveIndex=1' is always set on all service worker loading + v1.8.11 - Loading: Use default html index, avoid custom html injection (via wabac.js 2.16.12) diff --git a/package.json b/package.json index 3ce304b..7041615 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "replaywebpage", "productName": "ReplayWeb.page", - "version": "1.8.11", + "version": "1.8.12", "description": "Serverless Web Archive Replay", "repository": "https://github.com/webrecorder/replayweb.page", "homepage": "https://replayweb.page/", diff --git a/src/appmain.ts b/src/appmain.ts index 932f94a..d8a6ba4 100644 --- a/src/appmain.ts +++ b/src/appmain.ts @@ -447,6 +447,7 @@ export class ReplayWebApp extends LitElement { if (this.useRuffle) { qp.set("injectScripts", "ruffle/ruffle.js"); } + qp.set("serveIndex", "1"); query = qp.toString(); if (query.length) { name += "?" + query; diff --git a/src/sw.js b/src/sw.js new file mode 100644 index 0000000..117f1e6 --- /dev/null +++ b/src/sw.js @@ -0,0 +1,29 @@ +import INDEX_HTML from "../index.html"; + +import { SWReplay } from "@webrecorder/wabac/src/swmain"; + +import { WorkerLoader } from "@webrecorder/wabac/src/loaders"; + +if (self.registration) { + const staticData = new Map(); + + const prefix = self.registration.scope; + + staticData.set(prefix, { type: "text/html", content: INDEX_HTML }); + staticData.set(prefix + "index.html", { + type: "text/html", + content: INDEX_HTML, + }); + + const sp = new URLSearchParams(self.location.search); + + const defaultConfig = {}; + + if (sp.get("ruffle") == "1") { + defaultConfig.injectScripts = ["ruffle/ruffle.js"]; + } + + self.sw = new SWReplay({ staticData, defaultConfig }); +} else { + new WorkerLoader(self); +}