misc fixes:

- import from '@webrecorder/wabac' package for sw.js, though using github overrides for now
- replay: show loading spinner on beforeunload event in iframe
- embed: support passing basePageUrl param as part of extraConfig for custom top-level page
This commit is contained in:
Ilya Kreymer
2020-06-21 20:49:16 -07:00
parent e9bfcb28e9
commit d1d5fbd0e4
10 changed files with 41 additions and 25 deletions
+2 -3
View File
@@ -9,7 +9,7 @@
"license": "AGPL-3.0-or-later",
"dependencies": {
"@fortawesome/fontawesome-free": "^5.13.0",
"@webrecorder/wabac": "github:https://github.com/webrecorder/wabac.js#master",
"@webrecorder/wabac": "github:https://github.com/webrecorder/wabac.js",
"bulma": "^0.8.2",
"flexsearch": "^0.6.32",
"keyword-mark-element": "^0.1.2",
@@ -17,8 +17,7 @@
"marked": "^1.0.0",
"mime-types": "^2.1.27",
"pretty-bytes": "^5.3.0",
"register-service-worker": "^1.7.1",
"wabac": "github:https://github.com/webrecorder/wabac.js#master"
"register-service-worker": "^1.7.1"
},
"devDependencies": {
"css-loader": "^3.5.3",
+10
View File
@@ -304,6 +304,16 @@ class App extends LitElement
}
}
if (this.pageParams.get("basePageUrl")) {
if (!this.loadInfo) {
this.loadInfo = {extraConfig: {}}
}
if (!this.loadInfo.extraConfig) {
this.loadInfo.extraConfig = {};
}
this.loadInfo.extraConfig.baseUrl = this.pageParams.get("basePageUrl");
}
if (this.pageParams.get("customColl")) {
if (!this.loadInfo) {
this.loadInfo = {}
+1 -1
View File
@@ -8,7 +8,7 @@ import {app, session, BrowserWindow, ipcMain, shell} from 'electron';
import path from 'path';
import fs from 'fs';
import { ArchiveResponse, Rewriter } from 'wabac/src/rewrite';
import { ArchiveResponse, Rewriter } from '@webrecorder/wabac/src/rewrite';
import { PassThrough } from 'stream';
+1 -1
View File
@@ -1,6 +1,6 @@
"use strict";
import { CollectionLoader } from 'wabac/src/loaders';
import { CollectionLoader } from '@webrecorder/wabac/src/loaders';
const { ipcRenderer, contextBridge } = require('electron');
+1
View File
@@ -112,6 +112,7 @@ class Embed extends LitElement
source: this.source,
customColl: this.coll,
config: this.config,
basePageUrl: window.location.href.split("#")[0],
embed: this.embed,
}).toString();
+9 -3
View File
@@ -123,7 +123,7 @@ class Replay extends LitElement
this.replayTS = event.data.ts;
this.replayUrl = event.data.url;
this.title = event.data.title || this.title;
this.clearLoading();
this.clearLoading(iframe.contentWindow);
if (event.data.icons) {
const icons = event.data.icons;
@@ -166,17 +166,23 @@ class Replay extends LitElement
const iframe = this.renderRoot.querySelector("iframe");
if (!iframe || !iframe.contentDocument || !iframe.contentWindow ||
(iframe.contentDocument.readyState === "complete" && !iframe.contentWindow._WBWombat)) {
this.clearLoading();
this.clearLoading(iframe && iframe.contentWindow);
}
}, 5000);
}
clearLoading() {
clearLoading(iframeWin) {
this.isLoading = false;
if (this._loadPoll) {
window.clearInterval(this._loadPoll);
this._loadPoll = null;
}
if (iframeWin) {
iframeWin.addEventListener("beforeunload", () => {
this.isLoading = true;
});
}
}
static get styles() {
+2 -2
View File
@@ -11,11 +11,11 @@ if (self.registration) {
staticData.set(prefix + "index.html", {type: "text/html", content: INDEX_HTML});
//staticData.set(prefix + "ui.js", {type: "application/javascript", content: UI_JS});
const { SWReplay } = require('wabac/src/swmain');
const { SWReplay } = require('@webrecorder/wabac/src/swmain');
self.sw = new SWReplay(staticData);
} else if (self.postMessage) {
// Inited as Web Worker
const { WorkerLoader } = require('wabac/src/loaders');
const { WorkerLoader } = require('@webrecorder/wabac/src/loaders');
const loader = new WorkerLoader(self);
}
+3 -3
View File
File diff suppressed because one or more lines are too long
+9 -9
View File
File diff suppressed because one or more lines are too long
+3 -3
View File
@@ -291,9 +291,9 @@
"@webassemblyjs/wast-parser" "1.9.0"
"@xtuc/long" "4.2.2"
"@webrecorder/wabac@github:https://github.com/webrecorder/wabac.js#master", "wabac@github:https://github.com/webrecorder/wabac.js#master":
"@webrecorder/wabac@github:https://github.com/webrecorder/wabac.js":
version "2.0.1"
resolved "https://codeload.github.com/webrecorder/wabac.js/tar.gz/47ba5e77b6a1a55eab314e85cb9fad106a5a17ca"
resolved "https://codeload.github.com/webrecorder/wabac.js/tar.gz/72128c30f07c5685b13b6cb7b7503a4986fdbe03"
dependencies:
brotli "github:foliojs/brotli.js"
fast-xml-parser "^3.15.1"
@@ -6312,7 +6312,7 @@ widest-line@^3.1.0:
"wombat@github:webrecorder/wombat":
version "3.0.0"
resolved "https://codeload.github.com/webrecorder/wombat/tar.gz/b05b406b331050318caffa84f27348f689bdf53a"
resolved "https://codeload.github.com/webrecorder/wombat/tar.gz/2035caa5fc9dc51dd1d58c7c0781d8be8a652255"
worker-farm@^1.7.0:
version "1.7.0"