При разработке расширения, которое требует перехвата HTTP-запросов, мы столкнулись с проблемой, когда навигация была инициирована путем ввода адреса в поле «Выполнить».После отладки и регистрации было замечено, что прослушиватели событий не были подключены до того, как навигация фактически началась, хотя связанные объекты были настроены.Только после того, как окно открыто и навигация фактически началась, новые навигации могут быть перехвачены.
Чтобы увидеть это, присоедините прослушиватель событий к событию onBeforeRequest объекта webRequest расширения, закройте браузер и запустите новую навигациюиспользуя ссылку быстрого доступа или, например, введя адрес в поле «Выполнить».
Вот соответствующий код:
// hook up the listener
chrome.webRequest.onBeforeRequest.addListener(onBeforeRequestCallback, { types:['main_frame'],urls:['*://*/*']}, ['blocking']);
function onBeforeRequestCallback(requestDetails) {
console.log('onBeforeRequestCallback called for request url:'+requestDetails.url);
}
Частичный манифест json:
"permissions": [
"*://*/*",
"tabs",
"webRequest",
"webRequestBlocking",
"storage"
],
"background": {
"scripts": [
"background.js"
],
"persistent": true
},