2024-02-01 13:40:44 +05:30
|
|
|
export const chromeRunTime = async function (domain: string) {
|
2024-05-11 19:32:36 +05:30
|
|
|
if (browser.runtime && browser.runtime.id) {
|
|
|
|
|
if (import.meta.env.BROWSER === "chrome") {
|
|
|
|
|
const url = new URL(domain)
|
|
|
|
|
const domains = [url.hostname]
|
|
|
|
|
const rules = [
|
|
|
|
|
{
|
|
|
|
|
id: 1,
|
|
|
|
|
priority: 1,
|
|
|
|
|
condition: {
|
|
|
|
|
requestDomains: domains
|
|
|
|
|
},
|
|
|
|
|
action: {
|
|
|
|
|
type: "modifyHeaders",
|
|
|
|
|
requestHeaders: [
|
|
|
|
|
{
|
|
|
|
|
header: "Origin",
|
|
|
|
|
operation: "set",
|
|
|
|
|
value: `${url.protocol}//${url.hostname}`
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
2024-02-01 13:40:44 +05:30
|
|
|
}
|
2024-05-11 19:32:36 +05:30
|
|
|
]
|
|
|
|
|
|
|
|
|
|
await browser.declarativeNetRequest.updateDynamicRules({
|
|
|
|
|
removeRuleIds: rules.map((r) => r.id),
|
|
|
|
|
// @ts-ignore
|
|
|
|
|
addRules: rules
|
|
|
|
|
})
|
|
|
|
|
}
|
2024-02-01 13:40:44 +05:30
|
|
|
|
2024-05-11 19:32:36 +05:30
|
|
|
if (import.meta.env.BROWSER === "firefox") {
|
|
|
|
|
const url = new URL(domain)
|
|
|
|
|
const domains = [`*://${url.hostname}/*`]
|
|
|
|
|
browser.webRequest.onBeforeSendHeaders.addListener(
|
|
|
|
|
(details) => {
|
|
|
|
|
for (let i = 0; i < details.requestHeaders.length; i++) {
|
|
|
|
|
if (details.requestHeaders[i].name === "Origin") {
|
|
|
|
|
details.requestHeaders[i].value =
|
|
|
|
|
`${url.protocol}//${url.hostname}`
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return { requestHeaders: details.requestHeaders }
|
|
|
|
|
},
|
|
|
|
|
{ urls: domains },
|
|
|
|
|
["blocking", "requestHeaders"]
|
|
|
|
|
)
|
|
|
|
|
}
|
2024-02-01 13:40:44 +05:30
|
|
|
}
|
|
|
|
|
}
|