Spec-Zone.ru › Web Extensions

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

cookieStoreId

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API