From 1d9b324d3ef3067df8834b9eacedfd49b8b86bb3 Mon Sep 17 00:00:00 2001
From: ed
Date: Thu, 18 Aug 2022 01:02:06 +0200
Subject: [PATCH] explain w/a wasm leaks in workers (chrome bug)
---
copyparty/web/browser.js | 2 ++
copyparty/web/up2k.js | 12 ++++++++++++
copyparty/web/w.hash.js | 1 +
3 files changed, 15 insertions(+)
diff --git a/copyparty/web/browser.js b/copyparty/web/browser.js
index 42fb9d28..062bc92f 100644
--- a/copyparty/web/browser.js
+++ b/copyparty/web/browser.js
@@ -318,6 +318,7 @@ var Ls = {
"u_ehssrch": "server rejected the request to perform search",
"u_ehsinit": "server rejected the request to initiate upload",
"u_ehsdf": "server ran out of disk space!\n\nwill keep retrying, in case someone\nfrees up enough space to continue",
+ "u_emtleak": "it looks like your webbrowser may have a memory leak;\nplease try the following:\n
Uploads will be a bit slower, but oh well.\nSorry for the trouble!",
"u_s404": "not found on server",
"u_expl": "explain",
"u_tu": 'F5
to refresh the pagemt
button in the ⚙️ settings
WARNING: turbo enabled, client may not detect and resume incomplete uploads; see turbo-button tooltip
', @@ -656,6 +657,7 @@ var Ls = { "u_ehssrch": "server nektet forespørselen om å utføre søk", "u_ehsinit": "server nektet forespørselen om å begynne en ny opplastning", "u_ehsdf": "serveren er full!\n\nprøver igjen regelmessig,\ni tilfelle noen rydder litt...", + "u_emtleak": "uff, det er mulig at nettleseren din har en minnelekkasje...\nForeslår at du prøver følgende:\nmt
bryteren under ⚙️ innstillinger
ADVARSEL: turbo er på, avbrutte opplastninger vil muligens ikke oppdages og gjenopptas; hold musepekeren over turbo-knappen for mer info
', diff --git a/copyparty/web/up2k.js b/copyparty/web/up2k.js index afd851a5..6e7ee281 100644 --- a/copyparty/web/up2k.js +++ b/copyparty/web/up2k.js @@ -847,6 +847,7 @@ function up2k_init(subtle) { }, "car": 0, "slow_io": null, + "oserr": false, "modn": 0, "modv": 0, "mod0": null @@ -1365,6 +1366,14 @@ function up2k_init(subtle) { etaskip = 0; } + function got_oserr() { + if (!hws.length || !uc.hashw || st.oserr) + return; + + st.oserr = true; + modal.alert(L.u_emtleak); + } + ///// //// /// actuator @@ -1723,6 +1732,7 @@ function up2k_init(subtle) { pvis.seth(t.n, 2, err + ' @ ' + car); console.log('OS-error', reader.error, '@', car); handled = true; + got_oserr(); } if (handled) { @@ -1841,6 +1851,8 @@ function up2k_init(subtle) { pvis.seth(t.n, 1, d[1]); pvis.seth(t.n, 2, d[2]); console.log(d[1], d[2]); + if (d[1] == 'OS-error') + got_oserr(); pvis.move(t.n, 'ng'); apop(st.busy.hash, t); diff --git a/copyparty/web/w.hash.js b/copyparty/web/w.hash.js index f0ab8e44..bf1d561a 100644 --- a/copyparty/web/w.hash.js +++ b/copyparty/web/w.hash.js @@ -48,6 +48,7 @@ onmessage = (d) => { } }; reader.onerror = function () { + busy = false; var err = reader.error + ''; if (err.indexOf('NotReadableError') !== -1 || // win10-chrome defender