Spec-Zone.ru › Web Extensions

webRequest.onBeforeRedirect

Вызывается, когда происходит переадресация, инициированная сервером.

Обратите внимание, что вы не можете передать "blocking" для этого события, поэтому вы не можете изменить или отменить запрос из этого события: оно только информативное.

Синтаксис

browser.webRequest.onBeforeRedirect.addListener(
  listener,             // function
  filter,               //  object
  extraInfoSpec         //  optional array of strings
)
browser.webRequest.onBeforeRedirect.removeListener(listener)
browser.webRequest.onBeforeRedirect.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. Ноль, если запрос происходит в основном фрейме; положительное значение — это идентификатор подфрейма, в котором происходит запрос. Если документ (под-)фрейма загружен (type main_frame или sub_frame), frameId указывает на идентификатор этого фрейма, а не внешнего фрейма. Идентификаторы фреймов уникальны в рамках вкладки.

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. Время ожидания резервного копирования в секундах. Если соединение с прокси прерывается, прокси больше не будет использоваться в течение этого периода.

redirectUrl

string. Новый URL.

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. Тип запрашиваемого ресурса: например, "изображение", "скрипт", "стиль".

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

Примеры

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

/*
e.g.
"https://developer.mozilla.org/"
"https://developer.mozilla.org/en-US/"
*/
function logResponse(responseDetails) {
  console.log(responseDetails.url);
  console.log(responseDetails.redirectUrl);
}

browser.webRequest.onBeforeRedirect.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/onBeforeRedirect

Spec-Zone.ru

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