webRequest.onResponseStarted
Срабатывает при получении первого байта тела ответа.
Это событие только информационное.
Синтаксис
browser.webRequest.onResponseStarted.addListener( listener, // function filter, // object extraInfoSpec // optional array of strings ) browser.webRequest.onResponseStarted.removeListener(listener) browser.webRequest.onResponseStarted.hasListener(listener)
События имеют три функции:
addListener(callback, filter, extraInfoSpec)-
Добавляет слушатель к этому событию.
removeListener(listener)-
Прекращает прослушивание этого события. Аргумент
listener— это слушатель, который нужно удалить. hasListener(listener)-
Проверяет, зарегистрирован ли
listenerдля этого события. Возвращаетtrue, если слушатель зарегистрирован, иfalse, в противном случае.
Синтаксис addListener
Параметры
callback-
Функция, которая будет вызвана при возникновении этого события. Функции будут переданы следующие аргументы:
details-
object. Детали запроса. См. раздел details для получения дополнительной информации.
filter-
webRequest.RequestFilter. Фильтр, который ограничивает события, которые будут отправлены этому слушателю. -
extraInfoSpecНеобязательно -
arrayдляstring. Дополнительные параметры для события. Можно передать только одно значение:-
"responseHeaders": включитьresponseHeadersв объектdetails, переданный слушателю
-
Дополнительные объекты
details
-
string. Если запрос поступает из вкладки, открытой в контекстной идентичности, — идентификатор хранилища cookie этой контекстной идентичности. documentUrl-
string. URL документа, в котором будет загружен ресурс. Например, если веб-страница по адресу "https://example.com" содержит изображение или iframe, тоdocumentUrlдля изображения или iframe будет "https://example.com". Для верхнего уровня документаdocumentUrlне определено. frameId-
integer. Ноль, если запрос происходит в основном фрейме; положительное значение — ID подфрейма, в котором происходит запрос. Если документ (под)фрейма загружен (typeравноmain_frameилиsub_frame),frameIdуказывает ID этого фрейма, а не ID внешнего фрейма. Идентификаторы фреймов уникальны для вкладки. fromCache-
boolean. Указывает, был ли этот ответ получен из кэша на диске. incognito-
boolean. Является ли запрос из окна приватного просмотра. ip-
string. IP-адрес сервера, к которому был отправлен запрос. Может быть литеральной IPv6-адресом. method-
string. Стандартный HTTP-метод: например, "GET" или "POST". originUrl-
string. URL ресурса, который спровоцировал запрос. Например, если "https://example.com" содержит ссылку, и пользователь нажимает на неё, тоoriginUrlдля получившегося запроса — "https://example.com".originUrlчасто, но не всегда, совпадает сdocumentUrl. Например, если страница содержит iframe, а iframe содержит ссылку, которая загружает новый документ в iframe, тоdocumentUrlдля получившегося запроса будет родительским документом iframe, аoriginUrl— URL документа в iframe, содержащем ссылку. parentFrameId-
integer. ID фрейма, содержащего фрейм, отправивший запрос. Установлено в -1, если родительского фрейма не существует. proxyInfo-
object. Это свойство присутствует только в случае использования прокси. Оно содержит следующие свойства:host-
string. Имя хоста прокси-сервера. port-
integer. Номер порта прокси-сервера. type-
string. Тип прокси-сервера. Одно из:- "http": HTTP-прокси (или SSL CONNECT для HTTPS)
- "https": HTTP-проксирование через TLS-соединение с прокси
- "socks": SOCKS v5-прокси
- "socks4": SOCKS v4-прокси
- "direct": без прокси
- "unknown": неизвестный прокси
username-
string. Имя пользователя для службы прокси. proxyDNS-
boolean. Истина, если прокси будет выполнять разрешение доменных имён на основе предоставленного имени хоста, что означает, что клиент не должен выполнять собственное разрешение DNS. failoverTimeout-
integer. Время ожидания переключения на резервный прокси в секундах. Если подключение к прокси прерывается, прокси не будет использоваться в течение этого периода.
requestId-
string. Идентификатор запроса. Идентификаторы запросов уникальны в сессии браузера, поэтому их можно использовать для связывания разных событий, связанных с одним запросом. -
responseHeadersНеобязательно -
webRequest.HttpHeaders. Заголовки HTTP-ответа, полученные вместе с этим ответом. statusCode-
integer. Стандартный HTTP-код состояния, возвращённый сервером. statusLine-
string. Строка состояния HTTP ответа или строка 'HTTP/0.9 200 OK' для ответов HTTP/0.9 (т. е. ответов без строки состояния) или пустая строка, если нет заголовков. tabId-
integer. ID вкладки, в которой происходит запрос. Установлено в -1, если запрос не связан с вкладкой. thirdParty-
boolean. Указывает, являются ли запрос и иерархия окна контента сторонними. timeStamp-
number. Время срабатывания этого события в миллисекундах с начала эпохи. type-
webRequest.ResourceType. Тип запрашиваемого ресурса: например, "изображение", "скрипт", "стиль". url-
string. Цель запроса. urlClassification-
object. Тип отслеживания, связанный с запросом, если запрос был классифицирован Защита от отслеживания Firefox. Это объект со следующими свойствами:firstParty-
arrayдляstrings. Флаги классификации для первого запроса. thirdParty-
arrayдляstrings. Флаги классификации для запросов или иерархии окна сторонних участников.
Флаги классификации включают:
-
fingerprintingиfingerprinting_content: указывает, что запрос участвует в определении пользователя.fingerprinting_contentуказывает, что запрос загружен из источника, который был признан определяющим пользователя, но не считается участвующим в отслеживании, например, платежный провайдер. -
cryptominingиcryptomining_content: аналогично категории определения пользователя, но для ресурсов майнинга криптовалюты. -
tracking,tracking_ad,tracking_analytics,tracking_social, иtracking_content: указывает, что запрос участвует в отслеживании.tracking— любой общий запрос отслеживания, суффиксыad,analytics,social, иcontentидентифицируют тип трекера. -
any_basic_tracking: мета-флаг, объединяющий любые флаги отслеживания и определения пользователя, за исключениемtracking_contentиfingerprinting_content. -
any_strict_tracking: мета-флаг, объединяющий любые флаги отслеживания и определения пользователя, включаяtracking_contentиfingerprinting_content. -
any_social_tracking: мета-флаг, объединяющий любые флаги социального отслеживания.
Совместимость с браузерами
| Рабочий стол | Мобильный | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | |
onResponseStarted |
Да | 14 | 45 | ? | Да | 14extraInfoSpec опции не поддерживаются. |
? | ? | 48 | ? | Нет | ? |
Примеры
let target = "https://developer.mozilla.org/*"; /* e.g. "https://developer.mozilla.org/en-US/Firefox/Releases" 200 HTTP/1.1 200 OK */ function logResponse(responseDetails) { console.log(responseDetails.url); console.log(responseDetails.statusCode); console.log(responseDetails.statusLine); } browser.webRequest.onResponseStarted.addListener( logResponse, {urls: [target]} );
Примечание: Данный API основан на API chrome.webRequest Chromium. Данная документация получена из web_request.json кода Chromium.
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/onResponseStarted