Skip to content

Commit ddead3d

Browse files
authored
Merge pull request #754 from quoid/inject-js-try-catch-improves
fix: improve error catching of injected user scripts
2 parents 5e6f373 + 305d912 commit ddead3d

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

src/ext/content-scripts/entry-userscripts.js

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,16 @@ function triageJS(userscript) {
4444
function injectJS(userscript) {
4545
const filename = userscript.scriptObject.filename;
4646
const name = userscript.scriptObject.name;
47-
const code = `(async () => {\n${userscript.code}\n})(); //# sourceURL=${
48-
filename.replace(/\s/g, "-") + usTag
49-
}`;
47+
const code = `\
48+
(async () => {
49+
try {
50+
// ===UserScript===start===
51+
${userscript.code}
52+
// ===UserScript====end====
53+
} catch (error) {
54+
console.error(\`${filename.replaceAll("`", "\\`")}\`, error);
55+
}
56+
})(); //# sourceURL=${filename.replace(/[\s"']/g, "-") + usTag}`;
5057
let injectInto = userscript.scriptObject["inject-into"];
5158
// change scope to content since strict CSP event detected
5259
if (injectInto === "auto" && (userscript.fallback || cspFallbackAttempted)) {
@@ -79,7 +86,7 @@ function injectJS(userscript) {
7986
code,
8087
)(userscript.apis);
8188
} catch (error) {
82-
console.error(`"${filename}" error:`, error);
89+
console.error(`${filename}`, error);
8390
}
8491
return;
8592
}

0 commit comments

Comments
 (0)