Skip to content

Commit 1352a83

Browse files
committed
async fetch fix: attempt to load directly first, if fails, attempt to load in-frame via the autofetch behavior (using browsertrix-behaviors 0.2.3)
update to latest wabac.js 2.7.10 update to latest ruffle bump to 0.6.10
1 parent 275acf7 commit 1352a83

File tree

9 files changed

+116
-159
lines changed

9 files changed

+116
-159
lines changed

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
{
22
"name": "archiveweb.page",
3-
"version": "0.6.9",
3+
"version": "0.6.10",
44
"main": "index.js",
55
"description": "Create Web Archives directly in your browser",
66
"repository": "https://github.com/webrecorder/archiveweb.page",
77
"author": "Webrecorder Software",
88
"license": "AGPL-3.0-or-later",
99
"dependencies": {
1010
"@fortawesome/fontawesome-free": "^5.13.0",
11-
"@webrecorder/wabac": "^2.7.9",
12-
"browsertrix-behaviors": "^0.2.2",
11+
"@webrecorder/wabac": "^2.7.10",
12+
"browsertrix-behaviors": "^0.2.3",
1313
"bulma": "^0.9.2",
1414
"flexsearch": "^0.6.32",
1515
"hash-wasm": "^4.4.1",
@@ -21,7 +21,7 @@
2121
"lodash": "^4.17.20",
2222
"node-fetch": "^2.6.1",
2323
"pretty-bytes": "^5.3.0",
24-
"replaywebpage": "^1.4.4",
24+
"replaywebpage": "^1.4.6",
2525
"uuid": "^8.3.2",
2626
"warcio": "^1.4.5"
2727
},

src/recorder.js

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1175,34 +1175,18 @@ class Recorder {
11751175
}
11761176
}
11771177

1178-
doAsyncFetch(request, /*sessions = []*/) {
1179-
//return this.doAsyncFetchInBrowser(request, sessions);
1180-
return this.doAsyncFetchDirect(request);
1181-
}
1182-
1183-
async doAsyncFetchInBrowser(request, sessions) {
1184-
if (this._fetchUrls.has(request.url)) {
1185-
console.log("Skipping, already fetching: " + request.url);
1186-
return;
1187-
}
1188-
1178+
async doAsyncFetchInBrowser(request, sessions, skipCheck = false) {
11891179
this._fetchUrls.add(request.url);
11901180

1191-
const expression = `
1192-
(async (url) => {
1193-
console.log("Async Fetching: " + url);
1194-
const resp = await fetch(url, {"redirect": "manual"});
1195-
return resp.status;
1196-
})("${request.url}");
1197-
`;
1181+
const expression = `self.__bx_behaviors.doAsyncFetch("${request.url}")`;
11981182

11991183
console.log("Start Async Load: " + request.url);
12001184

12011185
const result = await this.pageEval("__awp_async_fetch__", expression, sessions);
12021186
console.log("Async Fetch Result: " + JSON.stringify(result));
12031187
}
12041188

1205-
async doAsyncFetchDirect(request) {
1189+
async doAsyncFetch(request, sessions) {
12061190
if (!request || !this.isValidUrl(request.url)) {
12071191
return;
12081192
}
@@ -1213,6 +1197,7 @@ class Recorder {
12131197
}
12141198

12151199
request.pageInfo = this.pageInfo;
1200+
request.sessions = sessions;
12161201

12171202
this._fetchQueue.push(request);
12181203

@@ -1258,6 +1243,11 @@ class Recorder {
12581243
if (resp.status !== 200) {
12591244
console.warn(`async fetch error ${resp.status}, retrying without headers`);
12601245
resp = await fetch(request.url);
1246+
if (resp.status >= 400) {
1247+
console.warn(`async fetch returned: ${resp.status}, trying in-browser fetch`);
1248+
await this.doAsyncFetchInBrowser(request, request.sessions, true);
1249+
return;
1250+
}
12611251
}
12621252

12631253
const payload = await resp.arrayBuffer();

wr-ext/bg.js

Lines changed: 20 additions & 23 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

wr-ext/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "Webrecorder ArchiveWeb.page",
33
"description": "Create high-fidelity web archives directly in your browser",
4-
"version": "0.6.9",
4+
"version": "0.6.10",
55
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",
66
"permissions": [
77
"debugger",

wr-ext/popup.js

Lines changed: 10 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

wr-ext/replay/sw.js

Lines changed: 29 additions & 32 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

wr-ext/replay/ui.js

Lines changed: 24 additions & 24 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

wr-ext/ruffle/ruffle.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

yarn.lock

Lines changed: 18 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -832,12 +832,12 @@
832832
"@webassemblyjs/wast-parser" "1.9.0"
833833
"@xtuc/long" "4.2.2"
834834

835-
"@webrecorder/wabac@^2.7.7":
836-
version "2.7.7"
837-
resolved "https://registry.yarnpkg.com/@webrecorder/wabac/-/wabac-2.7.7.tgz#89e42fcc8d0b971209edab6e27e83e727cf60b0d"
838-
integrity sha512-7uKOVcJA8h+TA3xek+EBkzm5r4SYUUPyAxwyAPoRhn+cvuJcxYUN1Q6LuK47eHwJE4dYLSJr8+b5DMHl3orzRw==
835+
"@webrecorder/wabac@^2.7.10":
836+
version "2.7.10"
837+
resolved "https://registry.yarnpkg.com/@webrecorder/wabac/-/wabac-2.7.10.tgz#50b06ea78975db489be0ac82ac288e704a9c5244"
838+
integrity sha512-9NmkV3TO+vhTGhEpaqjF7gaUUsAS1zSvp84y0hpkdwDv9WefcILgiR/0PElRmDE6OpYHvsv8QzonW9BUrFMMIg==
839839
dependencies:
840-
"@webrecorder/wombat" "^3.1.8"
840+
"@webrecorder/wombat" "^3.2.2"
841841
brotli "github:foliojs/brotli.js"
842842
fast-xml-parser "^3.15.1"
843843
format-link-header "^3.1.1"
@@ -854,37 +854,10 @@
854854
warcio "^1.4.6"
855855
wbn "^0.0.3"
856856

857-
"@webrecorder/wabac@^2.7.9":
858-
version "2.7.9"
859-
resolved "https://registry.yarnpkg.com/@webrecorder/wabac/-/wabac-2.7.9.tgz#1eaa011ab53dee124a793385e2f353ddadac114b"
860-
integrity sha512-92u3eIdINhXWcddF6EVfVu+eMy4mitA9580e3CLEo3CgCtQa5mF/gIfpSYw8k8RnaE7HUWqEaNZ7QXFPIF8X/Q==
861-
dependencies:
862-
"@webrecorder/wombat" "^3.2.1"
863-
brotli "github:foliojs/brotli.js"
864-
fast-xml-parser "^3.15.1"
865-
format-link-header "^3.1.1"
866-
http-status-codes "^2.1.4"
867-
idb "^5.0.1"
868-
js-levenshtein "^1.1.6"
869-
js-yaml "^3.13.1"
870-
json-2-csv "^3.7.1"
871-
pako "^1.0.10"
872-
parse-link-header "^1.0.1"
873-
parse5-html-rewriting-stream "^6.0.1"
874-
parse5-sax-parser "^6.0.1"
875-
path-parser "^6.1.0"
876-
warcio "^1.4.6"
877-
wbn "^0.0.3"
878-
879-
"@webrecorder/wombat@^3.1.8":
880-
version "3.1.8"
881-
resolved "https://registry.yarnpkg.com/@webrecorder/wombat/-/wombat-3.1.8.tgz#fab4446ecf6f84e0ab52b31260ccbdda76fa45ce"
882-
integrity sha512-0kdyxV+U9P1RC3XS445czFh8nUlk8rPnMIpyYCyDBgsXTweGaZCd79FHo/83+EYnpl0YBCXHV5lt0yaT3mmLZA==
883-
884-
"@webrecorder/wombat@^3.2.1":
885-
version "3.2.1"
886-
resolved "https://registry.yarnpkg.com/@webrecorder/wombat/-/wombat-3.2.1.tgz#f587fbfd0910758edd13a61e461c03b348784747"
887-
integrity sha512-JSoJJ1sskM1+u0zycMHwiNhQNbMFoTh8AV35mW9BjMhTU2wcKM4SHkJpKDjVBLI+KqGy1Vn44kvmde0ZZ1n7ag==
857+
"@webrecorder/wombat@^3.2.2":
858+
version "3.2.2"
859+
resolved "https://registry.yarnpkg.com/@webrecorder/wombat/-/wombat-3.2.2.tgz#e803d6929f9c55d0e68bf0f4b363114c27695924"
860+
integrity sha512-oe+EMpPZUo5YoPjvrfxrf8+z/atBh9yzr7S2xFOeXXpeBt/s62rFY84n/tuE6poIKtYHSD9Radjap7JSuE9F6w==
888861

889862
"@xtuc/ieee754@^1.2.0":
890863
version "1.2.0"
@@ -1683,10 +1656,10 @@ browserify-zlib@^0.2.0:
16831656
dependencies:
16841657
pako "~1.0.5"
16851658

1686-
browsertrix-behaviors@^0.2.2:
1687-
version "0.2.2"
1688-
resolved "https://registry.yarnpkg.com/browsertrix-behaviors/-/browsertrix-behaviors-0.2.2.tgz#50b52fcab80ecb4793827b6affaf20a50a8b6c21"
1689-
integrity sha512-6yuanZtGBm90gSUNAYxkbTt52ikKzs84kDH9eLVTl6Q1H2PMQJHLd4SY47fF/WU5PR0A2yRSQyuU3GAbPefLPQ==
1659+
browsertrix-behaviors@^0.2.3:
1660+
version "0.2.3"
1661+
resolved "https://registry.yarnpkg.com/browsertrix-behaviors/-/browsertrix-behaviors-0.2.3.tgz#207ddbd88c54f388ad9723406982cabe772bceaf"
1662+
integrity sha512-4OaELMXU9bljvEsBMJrwWNLnlHsy9OIOL2ZXa0t0rcSQzAUm3HbhIWWNSh+LY0h/76mljbpsqW0kptIqgNJqvg==
16901663

16911664
buffer-crc32@~0.2.3:
16921665
version "0.2.13"
@@ -9161,13 +9134,13 @@ repeating@^2.0.0:
91619134
dependencies:
91629135
is-finite "^1.0.0"
91639136

9164-
replaywebpage@^1.4.4:
9165-
version "1.4.4"
9166-
resolved "https://registry.yarnpkg.com/replaywebpage/-/replaywebpage-1.4.4.tgz#8f6ab0e1945791847ae78444f3a981c141178cf0"
9167-
integrity sha512-ujA4PiGcU2QdyKIQx9En/pnj4BzFU7anU8FV3TiWjRZyBrmY8HVtyW3OvmFrBbUX/yQdRGJS1FLdg/USkpC/yQ==
9137+
replaywebpage@^1.4.6:
9138+
version "1.4.6"
9139+
resolved "https://registry.yarnpkg.com/replaywebpage/-/replaywebpage-1.4.6.tgz#ca6581eedd2d90cd61cdf27136a4589ac637cc4a"
9140+
integrity sha512-ylC/2QKZ3EwJjv1zR4071euxUN+RPM2mPaibxJjtsQjBSDNsG4xY1WDrIvU8i7fOT0/esJSsXjI5+2XgD0lGDA==
91689141
dependencies:
91699142
"@fortawesome/fontawesome-free" "^5.13.0"
9170-
"@webrecorder/wabac" "^2.7.7"
9143+
"@webrecorder/wabac" "^2.7.10"
91719144
bulma "^0.9.2"
91729145
electron-log "^4.3.0"
91739146
electron-updater "^4.3.5"

0 commit comments

Comments
 (0)