From eecf7ea77d8b4e851756191f9e134e2cf3c57061 Mon Sep 17 00:00:00 2001 From: Thibault Meunier Date: Tue, 7 Nov 2023 16:38:32 +0100 Subject: [PATCH] Fix Chromium MV3 extension Chromium MV2 used `onBeforeRequest`, which was not replicated for `MV3`. This commit addresses this issue. In addition, cached initiator URL takes precedence over details provided initiator, which might not reflect the main frame domain. --- platform/mv3/chromium/index.ts | 3 +++ src/background/index.ts | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/platform/mv3/chromium/index.ts b/platform/mv3/chromium/index.ts index d8ed969..be3c828 100644 --- a/platform/mv3/chromium/index.ts +++ b/platform/mv3/chromium/index.ts @@ -1,5 +1,6 @@ import { BROWSERS, + handleBeforeRequest, handleBeforeSendHeaders, handleHeadersReceived, handleInstall, @@ -10,6 +11,8 @@ const STORAGE = chrome.storage.local; chrome.runtime.onInstalled.addListener(handleInstall(STORAGE)); +chrome.webRequest.onBeforeRequest.addListener(handleBeforeRequest(), { urls: [''] }); + chrome.webRequest.onBeforeSendHeaders.addListener( handleBeforeSendHeaders(STORAGE), { urls: [''] }, diff --git a/src/background/index.ts b/src/background/index.ts index 4956abb..edd9030 100644 --- a/src/background/index.ts +++ b/src/background/index.ts @@ -236,9 +236,9 @@ export const handleHeadersReceived = initiator = details.url; } else { initiator = - details.initiator ?? details.frameAncestors?.at(0)?.url ?? - cachedTabs[details.tabId]?.url; + cachedTabs[details.tabId]?.url ?? + details.initiator; } if (!initiator) { return;