From 9fa008bab2fd1764766757519c7634998d171b78 Mon Sep 17 00:00:00 2001 From: Ilya Kreymer Date: Fri, 22 Nov 2024 17:58:44 -0800 Subject: [PATCH] Nested WACZ + embed reloading fix (#374) - Loading: Fix for loading nested WACZ files (via wabac.js 2.20.7) - Embeds: Support full reload on embeds via fullReload() call on embed web component --- CHANGES.md | 4 ++++ package.json | 4 ++-- src/embed.ts | 7 +++++++ src/item.ts | 10 ++++++++++ yarn.lock | 8 ++++---- 5 files changed, 27 insertions(+), 6 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index f34f1c3..b76095e 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,10 @@ ## CHANGES +v2.2.4 +- Loading: Fix for loading nested WACZ files (via wabac.js 2.20.7) +- Embeds: Support full reload on embeds via fullReload() call on embed web component + v2.2.3 - Fidelity: Update to wabac.js 2.20.6, wombat 3.8.7, improved support for localStorage replay, if available - Fidelity: Improved upport for FB video replay (via wabac.js 2.20.6) diff --git a/package.json b/package.json index fb44751..9f70a30 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "replaywebpage", "productName": "ReplayWeb.page", - "version": "2.2.3", + "version": "2.2.4", "description": "Serverless Web Archive Replay", "repository": "https://github.com/webrecorder/replayweb.page", "homepage": "https://replayweb.page/", @@ -18,7 +18,7 @@ "dependencies": { "@fortawesome/fontawesome-free": "^5.15.4", "@shoelace-style/shoelace": "~2.15.1", - "@webrecorder/wabac": "^2.20.6", + "@webrecorder/wabac": "^2.20.7", "bulma": "^0.9.3", "electron-log": "^4.4.1", "electron-updater": "^6.3.9", diff --git a/src/embed.ts b/src/embed.ts index 44c41db..6594aba 100644 --- a/src/embed.ts +++ b/src/embed.ts @@ -126,6 +126,13 @@ class Embed extends LitElement { } } + fullReload() { + const iframe = this.renderRoot.querySelector("iframe"); + if (iframe?.contentWindow) { + iframe.contentWindow.postMessage({ type: "fullReload" }); + } + } + handleMessage(event: IframeMessage) { const iframe = this.renderRoot.querySelector("iframe"); diff --git a/src/item.ts b/src/item.ts index 6832695..f5c6f14 100644 --- a/src/item.ts +++ b/src/item.ts @@ -229,6 +229,16 @@ class Item extends LitElement { this.observer.observe(this); } + + if (this.embed) { + window.addEventListener("message", (event: MessageEvent) => { + if (event.source === window.parent) { + if (event.data.type === "fullReload") { + void this.deleteFully(true); + } + } + }); + } } async runUpdateLoop() { diff --git a/yarn.lock b/yarn.lock index cedc448..75488d8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1021,10 +1021,10 @@ resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.5.tgz#325db42395cd49fe6c14057f9a900e427df8810e" integrity sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ== -"@webrecorder/wabac@^2.20.6": - version "2.20.6" - resolved "https://registry.yarnpkg.com/@webrecorder/wabac/-/wabac-2.20.6.tgz#8b28b58d5ae900faebd7be30224eadc620838f9e" - integrity sha512-bCvHgfnKHFzEuwPkIxdYIVuBmVTzOgxf96DeDTdZkhPI99iP7AUrz/Y6+qgoD9Vjn4usozUff25vdViD5mtiUg== +"@webrecorder/wabac@^2.20.7": + version "2.20.7" + resolved "https://registry.yarnpkg.com/@webrecorder/wabac/-/wabac-2.20.7.tgz#577fdf44f3c278ee0966b188174b57ac05a22dfc" + integrity sha512-SXy+0aofoVvBzsHn97r+JIE7g4q8sNYox2FyYa5KA3Nv2fO6T+NF9jdrLmLCu+pruz3pvVlJbZqA9djLqE+sNg== dependencies: "@peculiar/asn1-ecc" "^2.3.4" "@peculiar/asn1-schema" "^2.3.3"