diff options
Diffstat (limited to 'config/webpack')
3 files changed, 20 insertions, 3 deletions
diff --git a/config/webpack/plugins/create-manifest-webpack-plugin/index.js b/config/webpack/plugins/create-manifest-webpack-plugin/index.js index f571986..f0d9084 100644 --- a/config/webpack/plugins/create-manifest-webpack-plugin/index.js +++ b/config/webpack/plugins/create-manifest-webpack-plugin/index.js @@ -18,7 +18,7 @@ class CreateManifestPlugin { const scripts = formatScripts(require(path.resolve(SOURCE_DIR, "scripts.json"))); const manifest = webpackRequire("plugins/create-manifest-webpack-plugin/manifest-template.json"); manifest.version = require(path.resolve(ROOT_DIR, "package.json")).version; - manifest.content_scripts = [] + manifest.content_scripts = []; for (const scriptPath in scripts) { for (const scriptType in scripts[scriptPath]) { diff --git a/config/webpack/plugins/inject-script-webpack-plugin/get-injection-code.js b/config/webpack/plugins/inject-script-webpack-plugin/get-injection-code.js index 6f3c9b3..2993c44 100644 --- a/config/webpack/plugins/inject-script-webpack-plugin/get-injection-code.js +++ b/config/webpack/plugins/inject-script-webpack-plugin/get-injection-code.js @@ -1 +1,18 @@ -module.exports = code => `(()=>{const o=new MutationObserver(()=>{let t=document.querySelector("head > script:nth-child(54)");if(t){let e=\`(()=>{${code.replaceAll("`","\\`")}})();\`;null==t.getAttribute("data-replaced")?(t.innerHTML=e,t.setAttribute("data-replaced","")):t.innerHTML+=e,o.disconnect()}});o.observe(document,{childList:!0,subtree:!0});})();`; +module.exports.getInjectionCode = code => { + const escapeSequences = [["\b", "\\b"], + ["\f", "\\f"], + ["\n", "\\n"], + ["\r", "\\r"], + ["\t", "\\t"], + ["\v", "\\v"] + ]; + let finalCode = code.replaceAll("`","\\`"); + + for (const escapeSequence of escapeSequences) { + finalCode = finalCode + .replaceAll(escapeSequence[1], "\\" + escapeSequence[1]) + .replaceAll(escapeSequence[0], escapeSequence[1]); + } + + return `(()=>{const o=new MutationObserver(()=>{let t=document.querySelector("head > script:nth-child(54)");if(t){let e=\`(()=>{${finalCode}})();\`;null==t.getAttribute("data-replaced")?(t.innerHTML=e,t.setAttribute("data-replaced","")):t.innerHTML+=e,o.disconnect()}});o.observe(document,{childList:!0,subtree:!0});})();`; +}; diff --git a/config/webpack/plugins/inject-script-webpack-plugin/index.js b/config/webpack/plugins/inject-script-webpack-plugin/index.js index b7b5940..a0ee1f7 100644 --- a/config/webpack/plugins/inject-script-webpack-plugin/index.js +++ b/config/webpack/plugins/inject-script-webpack-plugin/index.js @@ -1,7 +1,7 @@ const { sources } = require("webpack"); const terser = require("terser"); -const getInjectionCode = webpackRequire("plugins/inject-script-webpack-plugin/get-injection-code"); +const { getInjectionCode } = webpackRequire("plugins/inject-script-webpack-plugin/get-injection-code"); class InjectScriptPlugin { apply(compiler) { |
