diff --git a/src/assets/manifest.chrome.json b/src/assets/manifest.chrome.json index f587326..919414d 100644 --- a/src/assets/manifest.chrome.json +++ b/src/assets/manifest.chrome.json @@ -1,5 +1,5 @@ { "background": { - "service_worker": "index.js" + "service_worker": "worker.js" } } diff --git a/src/assets/manifest.common.json b/src/assets/manifest.common.json index b5a9ed2..4cad974 100644 --- a/src/assets/manifest.common.json +++ b/src/assets/manifest.common.json @@ -10,7 +10,7 @@ "default_title": "movie-web extension", "default_popup": "popup.html" }, - "permissions": ["storage", "tabs", "cookies", "scripting"], + "permissions": ["declarativeNetRequest"], "host_permissions": [""], "web_accessible_resources": [ { diff --git a/src/assets/manifest.firefox.json b/src/assets/manifest.firefox.json index 1446a79..8af40a9 100644 --- a/src/assets/manifest.firefox.json +++ b/src/assets/manifest.firefox.json @@ -1,6 +1,6 @@ { "background": { - "scripts": ["index.js"] + "scripts": ["worker.js"] }, "browser_specific_settings": { "gecko": { diff --git a/src/index.ts b/src/index.ts index 3a43a43..f337c40 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,10 +1,36 @@ -chrome.webRequest.onBeforeSendHeaders.addListener( - (details) => { - console.log(details); - return { requestHeaders: details.requestHeaders }; - }, - { urls: [''] }, - ['blocking', 'requestHeaders'], -); +chrome.declarativeNetRequest.updateDynamicRules({ + removeRuleIds: [666], + addRules: [ + { + id: 666, + priority: 1, + condition: { + initiatorDomains: ['movie-web.app'], + }, + action: { + type: chrome.declarativeNetRequest.RuleActionType.MODIFY_HEADERS, + requestHeaders: [ + { + header: 'X-Test', + operation: chrome.declarativeNetRequest.HeaderOperation.SET, + value: 'Hello world', + }, + ], + responseHeaders: [ + { + header: 'Access-Control-Allow-Origin', + operation: chrome.declarativeNetRequest.HeaderOperation.SET, + value: '*', + }, + { + header: 'Access-Control-Allow-Methods', + operation: chrome.declarativeNetRequest.HeaderOperation.SET, + value: 'POST,GET,OPTIONS,PUT', + }, + ], + }, + }, + ], +}); console.log('loaded extension'); diff --git a/vite.config.ts b/vite.config.ts index 02df9af..c2728b5 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,4 +1,4 @@ -import { resolve, sep } from 'path' +import { resolve, dirname } from 'path' import { defineConfig } from 'vite' import { manifestMerge } from './plugins/manifest'; import { viteStaticCopy } from 'vite-plugin-static-copy' @@ -19,12 +19,13 @@ export default defineConfig({ viteStaticCopy({ targets: staticAssets.map(file => ({ src: resolve(__dirname, file), - dest: resolve(__dirname, file.replace(/^src/, 'dist')), + dest: dirname(resolve(__dirname, file.replace(/^src/, 'dist'))), })) }) ], root: "src", build: { + emptyOutDir: true, minify: false, rollupOptions: { output: [{