fix: use script.src for content.js interceptor injection to bypass CSP
CI / test (pull_request) Successful in 14s

The inline script.textContent injection in content.js violated the
strict CSP on sites like Pornhub ('script-src' without 'unsafe-inline').

Move interceptor code to a separate interceptors.js file and inject
via script.src = chrome.runtime.getURL('interceptors.js'). Chrome
treats extension-originated <script src> as content scripts — not
as page inline code — so the page's CSP does not apply.

- New src/inject/interceptors.js with all main-world interceptor code
- content.js now creates <script src> instead of <script textContent>
- Vite config updated to build interceptors.js to dist/
This commit is contained in:
robot committed 2026-08-11 06:43:54 +00:00
1 parent 0d4b62c485
commit a621db9674
3 files changed
+146 -114

No files matched your search

+3
View File
@@ -57,6 +57,9 @@ export default defineConfig({
content: resolve(__dirname, 'src/content/content.js'),
viewer: resolve(__dirname, 'src/viewer/viewer.html'),
viewerIndex: resolve(__dirname, 'src/viewer/index.html'),
probeFn: resolve(__dirname, 'src/viewer/probeFn.js'),
scrapeFn: resolve(__dirname, 'src/viewer/scrapeFn.js'),
interceptors: resolve(__dirname, 'src/inject/interceptors.js'),
},
output: {
entryFileNames: '[name].js',