From e13af11121dcc786b73f46487db63c7392e27d45 Mon Sep 17 00:00:00 2001 From: star knight <64941905+starknt@users.noreply.github.com> Date: Mon, 29 Apr 2024 00:43:07 +0800 Subject: [PATCH] fix: firefox rule (#691) * fix: firefox rule * fix: add default URL when URI is extension URI --- src/background/index.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/background/index.ts b/src/background/index.ts index 3b5f309e..830a29f9 100644 --- a/src/background/index.ts +++ b/src/background/index.ts @@ -6,6 +6,10 @@ browser.runtime.onInstalled.addListener((): void => { console.log('Extension installed') }) +function isExtensionUri(url: string) { + return new URL(url).origin === new URL(browser.runtime.getURL('')).origin +} + // eslint-disable-next-line node/prefer-global/process if (process.env.FIREFOX) { browser.webRequest.onBeforeSendHeaders.addListener( @@ -13,10 +17,11 @@ if (process.env.FIREFOX) { const requestHeaders: browser.WebRequest.HttpHeaders = [] if (details.documentUrl) { const url = new URL(details.documentUrl) + const extensionUri = isExtensionUri(details.documentUrl) details.requestHeaders = details.requestHeaders || [] for (let i = 0; i < details.requestHeaders.length; i++) { if (details.requestHeaders[i].name.toLowerCase() === 'origin' || details.requestHeaders[i].name.toLowerCase() === 'referer') - requestHeaders.push({ name: details.requestHeaders[i].name, value: url.origin }) + requestHeaders.push({ name: details.requestHeaders[i].name, value: extensionUri ? 'https://www.bilibili.com' : url.origin }) else requestHeaders.push(details.requestHeaders[i]) }