proof of concept, its theoritically possible for this extension to work

This commit is contained in:
mrjvs
2023-12-24 01:20:32 +01:00
parent e8283cb16c
commit 90e07088a7
5 changed files with 40 additions and 13 deletions

View File

@@ -1,5 +1,5 @@
{
"background": {
"service_worker": "index.js"
"service_worker": "worker.js"
}
}

View File

@@ -10,7 +10,7 @@
"default_title": "movie-web extension",
"default_popup": "popup.html"
},
"permissions": ["storage", "tabs", "cookies", "scripting"],
"permissions": ["declarativeNetRequest"],
"host_permissions": ["<all_urls>"],
"web_accessible_resources": [
{

View File

@@ -1,6 +1,6 @@
{
"background": {
"scripts": ["index.js"]
"scripts": ["worker.js"]
},
"browser_specific_settings": {
"gecko": {

View File

@@ -1,10 +1,36 @@
chrome.webRequest.onBeforeSendHeaders.addListener(
(details) => {
console.log(details);
return { requestHeaders: details.requestHeaders };
},
{ urls: ['<all_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');

View File

@@ -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: [{