Это для Chrome 70 и Firefox 63.
Я создаю веб-расширение, которое использует API webRequest для проверки - помимо прочего - запросов на смешанное содержимое и передачи их пользователю.
Это нормально работает в Firefox, но кажется, что запросы со смешанным контентом, которые блокируются Chrome (т.е. активный смешанный контент, такой как скрипт), вообще не отображаются при прослушивании событий webRequest.
, то есть:такой код:
chrome.webRequest.onCompleted.addListener(
(details) => {
console.log('ON COMPLETED')
console.log(details)
},
{
urls: ['*://*/*'],
types: ['font', 'image', 'media', 'script', 'stylesheet', 'sub_frame', 'xmlhttprequest']
}
)
не отображает ни одного заблокированного запроса смешанного содержимого в Chrome, в отличие от Firefox.Обратите внимание, что эти запросы перечислены в инструментах разработчика Chrome.
Аналогичный код для других событий действует аналогично.Я протестировал onBeforeRequest и onBeforeSendHeaders
Единственное, что "работает", это onErrorOccurn :
chrome.webRequest.onErrorOccurred.addListener(
(details) => {
console.log('ON ERROR OCCURED')
console.log(details)
},
{
urls: ['*://*/*'],
types: ['font', 'image', 'media', 'script', 'stylesheet', 'sub_frame', 'xmlhttprequest']
}
)
Этот код выведет список заблокированных запросов, но, к сожалению, без достаточного количества информации, чтобы быть полезным.В случае запроса к ресурсу http, заблокированному и отображающемуся как заблокированный в инструментах разработчика Chrome, details , предоставляемое onErrorOccured, представляет собой:
error: "net::ERR_ABORTED"
frameId: 0
fromCache: false
initiator: "https://www.zdnet.fr"
method: "GET"
parentFrameId: -1
requestId: "1227"
tabId: 18
timeStamp: 1544624802114.908
type: "script"
url: "https://www.zdnet.fr/actualites/https//js.sddan.com/GS.d?pa=22360&si=1&u=https%3A%2F%2Fwww.zdnet.fr%2Factualites%2Fdes-sites-malveillants-profitent-d-un-bug-de-firefox-vieux-de-11-ans-39877807.htm&r=&rand=1544624801997"
2 проблем здесь:
1 - ошибка (net :: ERR_ABORTED) кажется общей, поскольку она также отображается для еще пары запросов, которые НЕ отображаются в инструментах chrome dev.Это также сообщается в случае 404 с.
2 - Что еще более важно, свойство "url" показывает цель https: //.Это означает, что я не могу обнаружить, что это был запрос со смешанным контентом, и сообщить о нем пользователю.
Может кто-нибудь пролить здесь свет?Как я могу получить доступ к заблокированным запросам смешанного контента в Chrome надежным способом?
Большое спасибо
Большое спасибо