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:\nUploads will be a bit slower, but oh well.\nSorry for the trouble!", "u_s404": "not found on server", "u_expl": "explain", "u_tu": '

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:\nOpplastning vil gå litt tregere, men det får så være.\nBeklager bryderiet!", "u_s404": "ikke funnet på serveren", "u_expl": "forklar", "u_tu": '

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