API WebRequest не регистрирует заблокированные запросы со смешанным содержимым - PullRequest
0 голосов
/ 12 декабря 2018

Это для 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 надежным способом?

Большое спасибо

Большое спасибо

...