Я знаю, что вы можете перехватывать, но не изменять / блокировать все перенаправления следующим образом:
browser.webRequest.onBeforeRedirect.addListener(function (responseDetails) {
console.log(`From ${responseDetails.originUrl} to ${responseDetails.redirectUrl}`);
}, {
urls: ['*://*/*'],
types: ['main_frame']
});
Можно изменить перенаправления на основе HTTP с помощью обратного вызова browser.webRequest.onHeadersReceived
, который ищет заголовки Location
и перезаписывает Значение. Но это все еще оставляет перенаправления на основе JavaScript (window.location
) и <meta>
на основе (http-equiv="refresh"
), ни один из которых не проходит через них.
Как я могу переписать все три типа перенаправлений через расширение? Конечная цель - показать запрос подтверждения для перенаправлений, когда происходит переключение домена, путем перехода на страницу c HTML.