loading fixes:
- update to wabac.js to fix regression with WARC loading, including accidental indexing of metadata records - add periodic ping to service worker during loading, to avoid serviceworker shutdown in firefox - ui: only show 'try again' button if trying again may be possible - dependencies: use wabac 2.6.5 bump to 1.3.11
This commit is contained in:
@@ -1,5 +1,11 @@
|
|||||||
## CHANGES
|
## CHANGES
|
||||||
|
|
||||||
|
v1.3.11
|
||||||
|
- Loading: Fix regression in indexing of WARCs, including ignoring metadata records that were accidentally being indexed.
|
||||||
|
- Loading: Add periodic ping when loading to avoid serviceworker shutdown in Firefox.
|
||||||
|
- UI: On load failure, only add 'try again' option when reasonable.
|
||||||
|
- Dependencies: wabac 2.6.5
|
||||||
|
|
||||||
v1.3.10
|
v1.3.10
|
||||||
- Loading: Improved loading of video, especially on Safari, cache range requests via loading
|
- Loading: Improved loading of video, especially on Safari, cache range requests via loading
|
||||||
- Loading: Improved loading stability from service worker waiting for loading event to finish!
|
- Loading: Improved loading stability from service worker waiting for loading event to finish!
|
||||||
|
|||||||
+2
-2
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "replaywebpage",
|
"name": "replaywebpage",
|
||||||
"productName": "ReplayWeb.page",
|
"productName": "ReplayWeb.page",
|
||||||
"version": "1.3.10",
|
"version": "1.3.11",
|
||||||
"description": "Serverless Web Archive Replay",
|
"description": "Serverless Web Archive Replay",
|
||||||
"repository": "https://github.com/webrecorder/replayweb.page",
|
"repository": "https://github.com/webrecorder/replayweb.page",
|
||||||
"homepage": "https://replayweb.page/",
|
"homepage": "https://replayweb.page/",
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fortawesome/fontawesome-free": "^5.13.0",
|
"@fortawesome/fontawesome-free": "^5.13.0",
|
||||||
"@webrecorder/wabac": "^2.6.4",
|
"@webrecorder/wabac": "^2.6.5",
|
||||||
"bulma": "^0.9.0",
|
"bulma": "^0.9.0",
|
||||||
"electron-log": "^4.3.0",
|
"electron-log": "^4.3.0",
|
||||||
"electron-updater": "^4.3.5",
|
"electron-updater": "^4.3.5",
|
||||||
|
|||||||
+27
-6
@@ -24,6 +24,10 @@ class Loader extends LitElement
|
|||||||
this.tryFileHandle = !!window.showOpenFilePicker;
|
this.tryFileHandle = !!window.showOpenFilePicker;
|
||||||
|
|
||||||
this.fileHandle = null;
|
this.fileHandle = null;
|
||||||
|
|
||||||
|
this.errorAllowRetry = false;
|
||||||
|
|
||||||
|
this.pingInterval = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
static get properties() {
|
static get properties() {
|
||||||
@@ -40,7 +44,8 @@ class Loader extends LitElement
|
|||||||
status: { type: String },
|
status: { type: String },
|
||||||
coll: { type: String },
|
coll: { type: String },
|
||||||
embed: { type: String },
|
embed: { type: String },
|
||||||
tryFileHandle: { type: Boolean }
|
tryFileHandle: { type: Boolean },
|
||||||
|
errorAllowRetry: { type: Boolean }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,6 +67,7 @@ class Loader extends LitElement
|
|||||||
if (event.data.error) {
|
if (event.data.error) {
|
||||||
this.error = event.data.error;
|
this.error = event.data.error;
|
||||||
this.state = "errored";
|
this.state = "errored";
|
||||||
|
this.errorAllowRetry = true;
|
||||||
this.fileHandle = event.data.fileHandle;
|
this.fileHandle = event.data.fileHandle;
|
||||||
if (this.error === "missing_local_file") {
|
if (this.error === "missing_local_file") {
|
||||||
this.tryFileHandle = false;
|
this.tryFileHandle = false;
|
||||||
@@ -84,6 +90,9 @@ class Loader extends LitElement
|
|||||||
}
|
}
|
||||||
this.progress = this.total;
|
this.progress = this.total;
|
||||||
this.percent = 100;
|
this.percent = 100;
|
||||||
|
if (this.pingInterval) {
|
||||||
|
clearInterval(this.pingInterval);
|
||||||
|
}
|
||||||
this.dispatchEvent(new CustomEvent("coll-loaded", {detail: event.data}));
|
this.dispatchEvent(new CustomEvent("coll-loaded", {detail: event.data}));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -106,6 +115,7 @@ Please try loading this page from an HTTPS URL`;
|
|||||||
} else {
|
} else {
|
||||||
this.error = "Sorry, this browser is not supported. Please try a different browser\n(If you're using Firefox, try without Private Mode)";
|
this.error = "Sorry, this browser is not supported. Please try a different browser\n(If you're using Firefox, try without Private Mode)";
|
||||||
}
|
}
|
||||||
|
this.errorAllowRetry = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,6 +141,7 @@ Please try loading this page from an HTTPS URL`;
|
|||||||
this.error = `\
|
this.error = `\
|
||||||
File URLs can not be entered directly or shared.
|
File URLs can not be entered directly or shared.
|
||||||
You can select a file to upload from the main page by clicking the \'Choose File...\' button.`;
|
You can select a file to upload from the main page by clicking the \'Choose File...\' button.`;
|
||||||
|
this.errorAllowRetry = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -163,12 +174,18 @@ You can select a file to upload from the main page by clicking the \'Choose File
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!navigator.serviceWorker.controller) {
|
if (!navigator.serviceWorker.controller) {
|
||||||
navigator.serviceWorker.addEventListener("controllerchange", (event) => {
|
await new Promise((resolve) => {
|
||||||
navigator.serviceWorker.controller.postMessage(msg);
|
navigator.serviceWorker.addEventListener("controllerchange", () => resolve);
|
||||||
});
|
});
|
||||||
} else {
|
|
||||||
navigator.serviceWorker.controller.postMessage(msg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
navigator.serviceWorker.controller.postMessage(msg);
|
||||||
|
|
||||||
|
// ping service worker with messages to avoid shutdown while loading
|
||||||
|
// (mostly for Firefox)
|
||||||
|
this.pingInterval = setInterval(() => {
|
||||||
|
navigator.serviceWorker.controller.postMessage({"msg_type": "ping"});
|
||||||
|
}, 15000);
|
||||||
}
|
}
|
||||||
|
|
||||||
googledriveInit() {
|
googledriveInit() {
|
||||||
@@ -188,6 +205,9 @@ You can select a file to upload from the main page by clicking the \'Choose File
|
|||||||
onCancel() {
|
onCancel() {
|
||||||
if (navigator.serviceWorker && navigator.serviceWorker.controller) {
|
if (navigator.serviceWorker && navigator.serviceWorker.controller) {
|
||||||
navigator.serviceWorker.controller.postMessage({"msg_type": "cancelLoad", "name": this.coll});
|
navigator.serviceWorker.controller.postMessage({"msg_type": "cancelLoad", "name": this.coll});
|
||||||
|
if (this.pingInterval) {
|
||||||
|
clearInterval(this.pingInterval);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -282,7 +302,8 @@ You can select a file to upload from the main page by clicking the \'Choose File
|
|||||||
<div class="has-text-left">
|
<div class="has-text-left">
|
||||||
<div class="error has-text-danger">${this.error}</div>
|
<div class="error has-text-danger">${this.error}</div>
|
||||||
<div>
|
<div>
|
||||||
<a class="button is-warning" @click=${(e) => window.parent.location.reload()}>Try Again</a>
|
${this.errorAllowRetry ? html`
|
||||||
|
<a class="button is-warning" @click=${(e) => window.parent.location.reload()}>Try Again</a>` : ``}
|
||||||
${this.embed ? html`` : html`
|
${this.embed ? html`` : html`
|
||||||
<a href="/" class="button is-warning">Back</a>`}
|
<a href="/" class="button is-warning">Back</a>`}
|
||||||
</div>`;
|
</div>`;
|
||||||
|
|||||||
@@ -760,10 +760,10 @@
|
|||||||
"@webassemblyjs/wast-parser" "1.9.0"
|
"@webassemblyjs/wast-parser" "1.9.0"
|
||||||
"@xtuc/long" "4.2.2"
|
"@xtuc/long" "4.2.2"
|
||||||
|
|
||||||
"@webrecorder/wabac@^2.6.4":
|
"@webrecorder/wabac@^2.6.5":
|
||||||
version "2.6.4"
|
version "2.6.5"
|
||||||
resolved "https://registry.yarnpkg.com/@webrecorder/wabac/-/wabac-2.6.4.tgz#9125c51aae67cb762e0c6927093e8e09a6c160c1"
|
resolved "https://registry.yarnpkg.com/@webrecorder/wabac/-/wabac-2.6.5.tgz#d765adde075dfebed6e7ea849a22d0693142dfbb"
|
||||||
integrity sha512-3GAd5h0Hat0oPNXXCu4FYkTi4LuFUHi8juHgsBFhwAFdL2lVa7chHHu2MzQsQNDwJ3EDmkuu7452c3I4h50Qdw==
|
integrity sha512-h3J0tp8lGQPF3ovSMsO6pOORuW6QMDirTiNDxF/ekqLpnV+kvfYM484BbEzf54VO8jwb/MgC81IYKH6YaVjAgA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@webrecorder/wombat" "^3.1.2"
|
"@webrecorder/wombat" "^3.1.2"
|
||||||
brotli "github:foliojs/brotli.js"
|
brotli "github:foliojs/brotli.js"
|
||||||
|
|||||||
Reference in New Issue
Block a user