From 852499e29612eb9056aef21ea9d6dc04efe9d692 Mon Sep 17 00:00:00 2001 From: ed Date: Sat, 1 Apr 2023 16:08:45 +0000 Subject: [PATCH] dont panic in case of extension-injected css --- copyparty/web/browser.js | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/copyparty/web/browser.js b/copyparty/web/browser.js index 95f5d562..bb5b14a8 100644 --- a/copyparty/web/browser.js +++ b/copyparty/web/browser.js @@ -6707,22 +6707,27 @@ var globalcss = (function () { var dcs = document.styleSheets; for (var a = 0; a < dcs.length; a++) { - var base = dcs[a].href, + var ds, base = ''; + try { + base = dcs[a].href; + if (!base) + continue; + ds = dcs[a].cssRules; - - if (!base) - continue; - - base = base.replace(/[^/]+$/, ''); - for (var b = 0; b < ds.length; b++) { - var css = ds[b].cssText.split(/\burl\(/g); - ret += css[0]; - for (var c = 1; c < css.length; c++) { - var delim = (/^["']/.exec(css[c])) ? css[c].slice(0, 1) : ''; - ret += 'url(' + delim + ((css[c].slice(0, 8).indexOf('://') + 1 || css[c].startsWith('/')) ? '' : base) + - css[c].slice(delim ? 1 : 0); + base = base.replace(/[^/]+$/, ''); + for (var b = 0; b < ds.length; b++) { + var css = ds[b].cssText.split(/\burl\(/g); + ret += css[0]; + for (var c = 1; c < css.length; c++) { + var delim = (/^["']/.exec(css[c])) ? css[c].slice(0, 1) : ''; + ret += 'url(' + delim + ((css[c].slice(0, 8).indexOf('://') + 1 || css[c].startsWith('/')) ? '' : base) + + css[c].slice(delim ? 1 : 0); + } + ret += '\n'; } - ret += '\n'; + } + catch (ex) { + console.log('could not read css', a, base); } } return ret;