Spec-Zone.ru › Web Extensions

webRequest.onCompleted

Срабатывает, когда запрос завершен.

Это событие является только информационным.

Синтаксис

browser.webRequest.onCompleted.addListener(
  listener,             // function
  filter,               //  object
  extraInfoSpec         //  optional array of strings
)
browser.webRequest.onCompleted.removeListener(listener)
browser.webRequest.onCompleted.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. Идентификатор вкладки, в которой происходит запрос. Установлено в -1, если запрос не связан с вкладкой.

thirdParty

boolean. Указывает, является ли запрос и его иерархия окна сторонними.

timeStamp

number. Время срабатывания события в миллисекундах с начала эпохи.

type

webRequest.ResourceType. Тип запрашиваемого ресурса: например, "image", "script", "stylesheet".

url

string. Цель запроса.

urlClassification

object. Тип отслеживания, связанный с запросом, если запрос был классифицирован Firefox Tracking Protection. Это объект со следующими свойствами:

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 for Android Opera Android Safari on IOS Samsung Internet
onCompleted Да 14 45 ? Да
14extraInfoSpec опции не поддерживаются.
? ? 48 ? Нет ?

Примеры

let target = "https://developer.mozilla.org/*";

/*
e.g.
"https://developer.mozilla.org/en-US/"
200

or:

"https://developer.mozilla.org/en-US/xfgkdkjdfhs"
404
*/
function logResponse(responseDetails) {
  console.log(responseDetails.url);
  console.log(responseDetails.statusCode);
}

browser.webRequest.onCompleted.addListener(
  logResponse,
  {urls: [target]}
);

Примеры расширений

  • stored-credentials

Примечание: Этот API основан на API Chromium's chrome.webRequest. Данная документация получена из 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/onCompleted

Spec-Zone.ru

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