chrome.webRequest

refresh date: 2026-09-25 robots: noindex

Описание

Используйте API chrome.webRequest, чтобы отслеживать и анализировать трафик, а также перехватывать, блокировать или изменять запросы в процессе передачи.

Разрешения

webRequest

Манифест

Чтобы использовать Web Request API, необходимо объявить разрешение "webRequest" в манифесте расширения, а также указать необходимые разрешения на доступ к хостам. Чтобы перехватить запрос дополнительного ресурса, у расширения должен быть доступ и к запрашиваемому URL, и к инициатору запроса. Пример:

{
  "name": "My extension",
  ...
  "permissions": [
    "webRequest"
  ],
  "host_permissions": [
    "*://*.google.com/*"
  ],
  ...
}

Начиная с Chrome 108, вы можете асинхронно предоставлять учетные данные для событий onAuthRequired, если используете разрешения "webRequest" и "webRequestAuthProvider".

Жизненный цикл запросов

API веб-запросов определяет набор событий, которые следуют за жизненным циклом веб-запроса. Эти события можно использовать для наблюдения за трафиком и его анализа. Некоторые синхронные события позволяют перехватывать, блокировать или изменять запрос.

Ниже показан жизненный цикл событий для успешных запросов, а затем приведены определения событий.

Жизненный цикл веб-запроса с точки зрения API webrequest

onBeforeRequest (синхронный, необязательно)
Срабатывает, когда должен произойти запрос. Это событие отправляется до установки TCP-соединения и может использоваться для отмены или перенаправления запросов.
onBeforeSendHeaders (синхронный, необязательно)
Срабатывает, когда запрос готов к отправке и подготовлены начальные заголовки. Событие предназначено для того, чтобы расширения могли добавлять, изменять и удалять заголовки запросов (*). Событие onBeforeSendHeaders передается всем подписчикам, поэтому разные подписчики могут попытаться изменить запрос. О том, как это обрабатывается, читайте в разделе Сведения о реализации. Это событие можно использовать для отмены запроса.
onSendHeaders
Срабатывает после того, как все расширения получили возможность изменить заголовки запроса, и представляет окончательную версию(*). Событие активируется до того, как заголовки отправляются в сеть. Это событие является информационным и обрабатывается асинхронно. Изменить или отменить запрос нельзя.
onHeadersReceived (синхронный, необязательно)
Срабатывает каждый раз, когда получен заголовок ответа HTTP(S). Из-за переадресаций и запросов аутентификации это может происходить несколько раз за запрос. Это событие позволяет расширениям добавлять, изменять и удалять заголовки ответов, например входящие заголовки Content-Type. Директивы кеширования обрабатываются до активации этого события, поэтому изменение заголовков, например Cache-Control, не влияет на кеш браузера. а также отменять или перенаправлять его.
onAuthRequired (синхронный, необязательно)
Срабатывает, когда для запроса требуется аутентификация пользователя. Это событие можно обрабатывать синхронно, чтобы предоставлять учетные данные для аутентификации. Обратите внимание, что расширения могут предоставлять недействительные учетные данные. Будьте осторожны, чтобы не войти в бесконечный цикл, повторно предоставляя недействительные учетные данные. Этот же способ можно использовать для отмены запроса.
onBeforeRedirect
Срабатывает, когда должно быть выполнено перенаправление. Переадресация может быть вызвана кодом HTTP-ответа или расширением. Это событие является информационным и обрабатывается асинхронно. Изменить или отменить запрос нельзя.
onResponseStarted
Срабатывает, когда получен первый байт тела ответа. Для HTTP-запросов это означает, что доступны строка состояния и заголовки ответа. Это событие носит информационный характер и обрабатывается асинхронно. Изменить или отменить запрос нельзя.
onCompleted
Срабатывает, когда запрос успешно обработан.
onErrorOccurred
Срабатывает, когда запрос не удалось обработать.

API веб-запросов гарантирует, что для каждого запроса в качестве последнего события будет запущено либо onCompleted, либо onErrorOccurred, за одним исключением: если запрос перенаправляется на URL data://, последним зарегистрированным событием будет onBeforeRedirect.

* Обратите внимание, что API веб-запросов представляет расширению абстракцию сетевого стека. Один запрос URL может быть разделен на несколько HTTP-запросов (например, для получения отдельных диапазонов байтов из большого файла) или обработан сетевым стеком без связи с сетью. Поэтому API не предоставляет конечные HTTP-заголовки, которые отправляются в сеть. Например, расширение не видит заголовки, связанные с кешированием.

В настоящее время событию onBeforeSendHeaders не предоставляются следующие заголовки: Этот список не является полным и может изменяться.

  • Авторизация
  • Cache-Control
  • Подключение
  • Content-Length
  • Хост
  • If-Modified-Since
  • If-None-Match
  • If-Range
  • Partial-Data
  • Pragma
  • Proxy-Authorization
  • Proxy-Connection
  • Transfer-Encoding

Начиная с Chrome 79 изменения заголовков запросов влияют на проверки технологии совместного использования ресурсов между разными источниками (CORS). Если измененные заголовки для перекрестных запросов не соответствуют критериям, будет отправлен предварительный запрос CORS, чтобы узнать, может ли сервер принять такие заголовки. Если вам действительно нужно изменить заголовки так, чтобы нарушить протокол CORS, укажите 'extraHeaders' в opt_extraInfoSpec. С другой стороны, изменения заголовка ответа не позволяют обмануть проверки CORS. Если вам нужно обойти протокол CORS, укажите 'extraHeaders' для изменения ответов.

Начиная с Chrome 79, webRequest API по умолчанию не перехватывает предварительные запросы и ответы CORS. Предварительный запрос CORS для URL запроса виден расширению, если для URL запроса есть прослушиватель с 'extraHeaders', указанным в opt_extraInfoSpec. onBeforeRequest также может принимать 'extraHeaders' из Chrome 79.

Начиная с Chrome 79, следующий заголовок запроса не предоставляется и не может быть изменен или удален без указания 'extraHeaders' в opt_extraInfoSpec:

  • Происхождение

Начиная с Chrome 72, если вам нужно изменить ответы до того, как они будут заблокированы блокировкой чтения из разных источников (CORB), укажите 'extraHeaders' в opt_extraInfoSpec.

Начиная с Chrome 72, следующие заголовки запросов не предоставляются и не могут быть изменены или удалены без указания 'extraHeaders' в opt_extraInfoSpec:

  • Accept-Language
  • Accept-Encoding
  • Referer
  • Файл сookie

Начиная с Chrome 72 заголовок ответа Set-Cookie не предоставляется и не может быть изменен или удален без указания 'extraHeaders' в opt_extraInfoSpec.

Начиная с Chrome 89 заголовок ответа X-Frame-Options нельзя изменить или удалить, не указав 'extraHeaders' в opt_extraInfoSpec.

API webRequest предоставляет только те запросы, которые расширение может видеть в соответствии с разрешениями хоста. Кроме того, доступны только следующие схемы: http://, https://, ftp://, file://, ws:// (начиная с Chrome 58), wss:// (начиная с Chrome 58), urn: (начиная с Chrome 91) и chrome-extension://. Кроме того, скрываются даже некоторые запросы с URL, в которых используется одна из указанных выше схем. К ним относятся chrome-extension://other_extension_id, где other_extension_id – это не идентификатор расширения, которое должно обработать запрос, https://www.google.com/chrome и другие запросы, связанные с конфиденциальными данными и важные для работы браузера. Кроме того, синхронные запросы XMLHttpRequest из расширения скрыты от блокирующих обработчиков событий, чтобы предотвратить взаимоблокировки. Обратите внимание, что для некоторых поддерживаемых схем набор доступных событий может быть ограничен из-за особенностей соответствующего протокола. Например, для схемы file: могут быть отправлены только onBeforeRequest, onResponseStarted, onCompleted и onErrorOccurred.

Начиная с Chrome 58, webRequest API поддерживает перехват запроса на подтверждение WebSocket. Поскольку рукопожатие выполняется с помощью запроса на обновление HTTP, его поток вписывается в модель webRequest, ориентированную на HTTP. Обратите внимание, что API не перехватывает:

  • Отдельные сообщения, отправленные через установленное подключение WebSocket.
  • WebSocket закрывает соединение.

Переадресация для запросов WebSocket не поддерживается.

Начиная с версии Chrome 72 расширение сможет перехватывать запрос, только если у него есть разрешения хоста как для запрашиваемого URL, так и для инициатора запроса.

Начиная с Chrome 96, webRequest API поддерживает перехват запроса на установление связи WebTransport по HTTP/3. Поскольку рукопожатие выполняется с помощью HTTP-запроса CONNECT, его поток вписывается в модель webRequest, ориентированную на HTTP. Примечания:

  • После того как сеанс установлен, расширения не могут отслеживать его или вмешиваться в него через webRequest API.
  • Изменение заголовков HTTP-запросов в onBeforeSendHeaders игнорируется.
  • Переадресация и аутентификация не поддерживаются в WebTransport через HTTP/3.

Основные понятия

Как описано в следующих разделах, события в API веб-запросов используют идентификаторы запросов, и вы можете при необходимости указывать фильтры и дополнительную информацию при регистрации прослушивателей событий.

Идентификаторы запросов

Каждый запрос идентифицируется по идентификатору запроса. Этот идентификатор уникален в рамках сеанса браузера и контекста расширения. Он остается неизменным на протяжении всего жизненного цикла запроса и может использоваться для сопоставления событий, относящихся к одному запросу. Обратите внимание, что в случае переадресации или аутентификации HTTP несколько HTTP-запросов сопоставляются с одним веб-запросом.

Регистрация прослушивателей событий

Чтобы зарегистрировать прослушиватель событий для веб-запроса, используйте вариант обычной функции addListener(). Помимо функции обратного вызова, необходимо указать аргумент фильтра. Также можно добавить аргумент с дополнительной информацией.

Три аргумента для addListener() API веб-запросов имеют следующие определения:

var callback = function(details) {...};
var filter = {...};
var opt_extraInfoSpec = [...];

Ниже приведен пример отслеживания события onBeforeRequest.

chrome.webRequest.onBeforeRequest.addListener(
    callback, filter, opt_extraInfoSpec);

Каждый вызов addListener() принимает обязательную функцию обратного вызова в качестве первого параметра. В эту функцию обратного вызова передается словарь, содержащий информацию о текущем запросе URL. Информация в этом словаре зависит от типа события и содержимого opt_extraInfoSpec.

Если необязательный массив opt_extraInfoSpec содержит строку 'blocking' (допускается только для определенных событий), функция обратного вызова обрабатывается синхронно. Это означает, что запрос блокируется до тех пор, пока функция обратного вызова не вернет значение. В этом случае обратный вызов может возвращать webRequest.BlockingResponse, который определяет дальнейший жизненный цикл запроса. В зависимости от контекста этот ответ позволяет отменить или перенаправить запрос (onBeforeRequest), отменить запрос или изменить заголовки (onBeforeSendHeaders, onHeadersReceived), а также отменить запрос или предоставить учетные данные для аутентификации (onAuthRequired).

Если необязательный массив opt_extraInfoSpec содержит строку 'asyncBlocking' (разрешено только для onAuthRequired), расширение может генерировать webRequest.BlockingResponse асинхронно.

webRequest.RequestFilter filter позволяет ограничить запросы, для которых активируются события, по различным параметрам:

URL
Шаблоны URL, например *://www.google.com/foo*bar.
Типы
Типы запросов, например main_frame (документ, загруженный для фрейма верхнего уровня), sub_frame (документ, загруженный для встроенного фрейма) и image (изображение на сайте). Подробнее webRequest.RequestFilter…
Идентификатор вкладки
Идентификатор одной вкладки.
Идентификатор окна
Идентификатор окна.

В зависимости от типа события вы можете указать строки в opt_extraInfoSpec, чтобы запросить дополнительную информацию о запросе. Используется для предоставления подробной информации о данных запроса, только если это явно запрашивается.

Особенности реализации

При разработке расширения, использующего API веб-запросов, важно учитывать следующие особенности реализации:

web_accessible_resources

Если расширение использует API webRequest для перенаправления запроса общедоступного ресурса на ресурс, недоступный в интернете, оно блокируется и возникает ошибка. Это правило действует, даже если ресурс, недоступный в интернете, принадлежит перенаправляющему расширению. Чтобы объявить ресурсы для использования с API declarativeWebRequest, необходимо объявить и заполнить массив "web_accessible_resources" в манифесте, как описано здесь.

Разрешение конфликтов

В текущей реализации Web Request API запрос считается отмененным, если хотя бы одно расширение дает команду на его отмену. Если расширение отменяет запрос, все расширения получают уведомление в виде события onErrorOccurred. Перенаправлять запрос или изменять заголовок может только одно расширение за раз. Если изменить запрос пытаются несколько расширений, приоритет отдается тому, которое было установлено последним. Остальные расширения игнорируются. Расширение не получает уведомлений о том, что его инструкции по изменению или перенаправлению были проигнорированы.

Кеширование

В Chrome используется два кеша: на диске и в памяти. Время жизни кеша в памяти связано со временем жизни процесса рендеринга, что примерно соответствует вкладке. Запросы, на которые отвечает кеш памяти, невидимы для API веб-запросов. Если обработчик запросов меняет свое поведение (например, поведение, в соответствии с которым запросы блокируются), простое обновление страницы может не учитывать это измененное поведение. Чтобы изменения вступили в силу, вызовите handlerBehaviorChanged() для очистки кеша памяти. Но не делайте это часто, так как очистка кеша – очень ресурсоемкая операция. После регистрации или отмены регистрации прослушивателя событий вызывать handlerBehaviorChanged() не нужно.

Временные метки

Свойство timestamp событий веб-запросов гарантированно будет согласованным только внутренне. Сравнивая одно событие с другим, вы получите правильное смещение между ними, но сравнивая их с текущим временем внутри расширения (например, через (new Date()).getTime()), вы можете получить неожиданные результаты.

Обработка ошибок

Если вы попытаетесь зарегистрировать событие с недопустимыми аргументами, возникнет ошибка JavaScript и обработчик событий не будет зарегистрирован. Если при обработке события возникает ошибка или обработчик событий возвращает недопустимый ответ блокировки, в консоль расширения записывается сообщение об ошибке, а обработчик игнорируется для этого запроса.

Примеры

В примере ниже показано, как заблокировать все запросы к www.evil.com:

chrome.webRequest.onBeforeRequest.addListener(
  function(details) {
    return {cancel: details.url.indexOf("://www.evil.com/") != -1};
  },
  {urls: ["<all_urls>"]},
  ["blocking"]
);

Поскольку эта функция использует блокирующий обработчик событий, в файле манифеста необходимо указать разрешения "webRequest" и "webRequestBlocking".

В примере ниже та же цель достигается более эффективным способом, поскольку запросы, не предназначенные для www.evil.com, не нужно передавать расширению:

chrome.webRequest.onBeforeRequest.addListener(
  function(details) { return {cancel: true}; },
  {urls: ["*://www.evil.com/*"]},
  ["blocking"]
);

В примере ниже показано, как удалить заголовок User-Agent из всех запросов.

chrome.webRequest.onBeforeSendHeaders.addListener(
  function(details) {
    for (var i = 0; i < details.requestHeaders.length; ++i) {
      if (details.requestHeaders[i].name === 'User-Agent') {
        details.requestHeaders.splice(i, 1);
        break;
      }
    }
    return {requestHeaders: details.requestHeaders};
  },
  {urls: ["<all_urls>"]},
  ["blocking", "requestHeaders"]
);

Чтобы попробовать API chrome.webRequest, установите пример webRequest из хранилища chrome-extension-samples.

Типы

BlockingResponse

Возвращает значение для обработчиков событий, к которым применяется extraInfoSpec со значением blocking. Позволяет обработчику событий изменять сетевые запросы.

Свойства

  • authCredentials

    Объект (необязательно)

    Используется только в качестве ответа на событие onAuthRequired. Если он задан, запрос выполняется с использованием предоставленных учетных данных.

    • пароль

      string

    • имя пользователя

      string

  • отмена

    Логическое значение (необязательно)

    Если указано значение true, запрос отменяется. Это предотвращает отправку запроса. Его можно использовать в качестве ответа на события onBeforeRequest, onBeforeSendHeaders, onHeadersReceived и onAuthRequired.

  • redirectUrl

    Строка (необязательно)

    Используется только в качестве ответа на события onBeforeRequest и onHeadersReceived. Если правило настроено, исходный запрос не отправляется и не выполняется, а перенаправляется на указанный URL. Переадресация на схемы, отличные от HTTP, например data:, разрешена. Переадресация, инициированная действием redirect, использует исходный метод запроса, за одним исключением: если переадресация инициирована на этапе onHeadersReceived, то она будет выполнена с помощью метода GET. Переадресация с URL, в которых используются схемы ws:// и wss://, игнорируется.

  • requestHeaders

    HttpHeaders необязательный

    Используется только в качестве ответа на событие onBeforeSendHeaders. Если задано, запрос выполняется с этими заголовками запроса.

  • responseHeaders

    HttpHeaders необязательный

    Используется только в качестве ответа на событие onHeadersReceived. Если задано, предполагается, что сервер ответил с этими заголовками ответа. Возвращайте responseHeaders, только если вы действительно хотите изменить заголовки, чтобы ограничить количество конфликтов (только одно расширение может изменять responseHeaders для каждого запроса).

FormDataItem

Chrome 66 и более поздних версий;

Содержит данные, переданные в данных формы. Для формы urlencoded данные хранятся в виде строки, если они представлены в формате utf-8, и в виде ArrayBuffer в противном случае. Для form-data это ArrayBuffer. Если form-data представляет загружаемый файл, это строка с названием файла, если оно указано.

Перечисление

ArrayBuffer

string

HttpHeaders

Массив HTTP-заголовков. Каждый заголовок представлен в виде словаря, содержащего ключи name и value или binaryValue.

Тип

object[]

Свойства

  • binaryValue

    number[] optional

    Значение HTTP-заголовка, если его нельзя представить в кодировке UTF-8, хранится в виде отдельных байтовых значений (0–255).

  • name

    string

    Название HTTP-заголовка.

  • value

    Строка (необязательно)

    Значение HTTP-заголовка, если его можно представить в кодировке UTF-8.

IgnoredActionType

Chrome 70 и более поздних версий;

Перечисление

"redirect"

"request_headers"

"response_headers"

"auth_credentials"

OnAuthRequiredOptions

Chrome 44 и более поздних версий;

Перечисление

"responseHeaders"
Указывает, что в событие должны быть включены заголовки ответа.

"blocking"
Указывает, что запрос заблокирован, пока функция обратного вызова не вернет значение.

"asyncBlocking"
Указывает, что функция обратного вызова обрабатывается асинхронно.

"extraHeaders"
Указывает, что заголовки могут нарушать правила совместного использования ресурсов из разных источников (CORS).

OnBeforeRedirectOptions

Chrome 44 и более поздних версий;

Перечисление

"responseHeaders"
Указывает, что в событие должны быть включены заголовки ответа.

"extraHeaders"
Указывает, что заголовки могут нарушать правила совместного использования ресурсов из разных источников (CORS).

OnBeforeRequestOptions

Chrome 44 и более поздних версий;

Перечисление

"blocking"
Указывает, что запрос заблокирован, пока функция обратного вызова не вернет значение.

"requestBody"
Указывает, что тело запроса должно быть включено в событие.

"extraHeaders"
Указывает, что заголовки могут нарушать правила совместного использования ресурсов из разных источников (CORS).

OnBeforeSendHeadersOptions

Chrome 44 и более поздних версий;

Перечисление

requestHeaders
Указывает, что заголовок запроса должен быть включен в событие.

"blocking"
Указывает, что запрос заблокирован, пока функция обратного вызова не вернет значение.

"extraHeaders"
Указывает, что заголовки могут нарушать правила совместного использования ресурсов из разных источников (CORS).

OnCompletedOptions

Chrome 44 и более поздних версий;

Перечисление

"responseHeaders"
Указывает, что в событие должны быть включены заголовки ответа.

"extraHeaders"
Указывает, что заголовки могут нарушать правила совместного использования ресурсов из разных источников (CORS).

OnErrorOccurredOptions

Chrome 79 и более поздних версий;

Значение

"extraHeaders"

OnHeadersReceivedOptions

Chrome 44 и более поздних версий;

Перечисление

"blocking"
Указывает, что запрос заблокирован, пока функция обратного вызова не вернет значение.

"responseHeaders"
Указывает, что в событие должны быть включены заголовки ответа.

"extraHeaders"
Указывает, что заголовки могут нарушать правила совместного использования ресурсов из разных источников (CORS).

"securityInfo"
Указывает, что в событие должна быть включена информация о безопасности.

securityInfoRawDer
указывает, что в событие должен быть включен объект SecurityInfo с необработанными байтами сертификатов.

OnResponseStartedOptions

Chrome 44 и более поздних версий;

Перечисление

"responseHeaders"
Указывает, что в событие должны быть включены заголовки ответа.

"extraHeaders"
Указывает, что заголовки могут нарушать правила совместного использования ресурсов из разных источников (CORS).

OnSendHeadersOptions

Chrome 44 и более поздних версий;

Перечисление

requestHeaders
Указывает, что заголовок запроса должен быть включен в событие.

"extraHeaders"
Указывает, что заголовки могут нарушать правила совместного использования ресурсов из разных источников (CORS).

RequestFilter

Объект, описывающий фильтры, которые нужно применить к событиям webRequest.

Свойства

  • tabId

    number (необязательно)

  • типы

    ResourceType[] необязательный

    Список типов запросов. Запросы, которые не соответствуют ни одному из типов, будут отфильтрованы.

  • URL

    string[]

    Список URL или шаблонов URL. Запросы, которые не соответствуют ни одному из URL, будут отфильтрованы.

  • windowId

    number (необязательно)

ResourceType

Chrome 44 и более поздних версий;

Перечисление

"main_frame"
Указывает, что ресурс является основным фреймом.

"sub_frame"
Указывает, что ресурс является вложенным фреймом.

"stylesheet"
Указывает, что ресурс является таблицей стилей.

"script"
Указывает, что ресурс является скриптом.

"image"
Указывает, что ресурс является изображением.

"font"
Ресурс является шрифтом.

"object"
Указывает, что ресурс является объектом.

"xmlhttprequest"
Указывает, что ресурс является XMLHttpRequest.

"ping"
Указывает, что ресурс является пингом.

"csp_report"
Указывает, что ресурс является отчетом Content Security Policy (CSP).

"media"
Указывает, что ресурс является медиаобъектом.

"websocket"
Указывает, что ресурс является WebSocket.

"webbundle"
Указывает, что ресурс является веб-пакетом.

"other"
Ресурс не относится ни к одному из перечисленных типов.

SecurityInfo

Chrome 144 и более поздних версий

Свойства

  • сертификаты

    object[]

    Список сертификатов

    • отпечаток пальца

      Объект

      Цифровые отпечатки сертификата.

      • sha256

        string

        Цифровой отпечаток сертификата SHA-256.

    • rawDER

      ArrayBuffer (необязательно)

      Необработанные байты сертификата сервера, закодированного по правилам DER

  • штат

    string

    Статус подключения. Одно из значений: secure, insecure, broken.

UploadData

Содержит данные, загруженные в запросе URL.

Свойства

  • байт

    any optional

    ArrayBuffer с копией данных.

  • файл

    Строка (необязательно)

    Строка, содержащая путь к файлу и его название.

Свойства

MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES

Максимальное количество вызовов handlerBehaviorChanged за 10 минут. handlerBehaviorChanged – это ресурсоемкий вызов функции, который не следует использовать часто.

Значение

20

Методы

handlerBehaviorChanged()

Promise
chrome.webRequest.handlerBehaviorChanged(
  callback?: function,
)
: Promise<void>

Этот метод необходимо вызывать, когда поведение обработчиков webRequest изменилось, чтобы предотвратить неправильную обработку из-за кеширования. Вызов этой функции требует больших ресурсов. Не вызывайте его часто.

Параметры

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    () => void

Возвраты

  • Promise<void>

    Chrome 116 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

События

onActionIgnored

Chrome 70 и более поздних версий;
chrome.webRequest.onActionIgnored.addListener(
  callback: function,
)

Срабатывает, когда предложенное расширением изменение сетевого запроса игнорируется. Это происходит в случае конфликтов с другими расширениями.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (details: object) => void

    • подробные сведения

      Объект

      • действие

        Предложенное действие, которое было проигнорировано.

      • requestId

        string

        Идентификатор запроса. Идентификаторы запросов уникальны в рамках сеанса браузера. В результате их можно использовать для соотнесения разных событий одного запроса.

onAuthRequired

chrome.webRequest.onAuthRequired.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnAuthRequiredOptions[],
)

Активируется при получении ошибки аутентификации. У прослушивателя есть три варианта действий: предоставить учетные данные для аутентификации, отменить запрос и показать страницу с сообщением об ошибке или не предпринимать никаких действий. Если указаны неверные учетные данные пользователя, этот метод может вызываться несколько раз для одного и того же запроса. Обратите внимание, что в параметре extraInfoSpec можно указать только один режим: 'blocking' или 'asyncBlocking'.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (details: object, asyncCallback?: function) => BlockingResponse | undefined

    • подробные сведения

      Объект

      • претендент

        Объект

        Сервер, запрашивающий аутентификацию.

        • хост

          string

        • порт

          число

      • documentId

        Строка (необязательно)

        Chrome 106 и более поздних версий.

        UUID документа, отправляющего запрос.

      • Chrome 106 и более поздних версий.

        Жизненный цикл, в котором находится документ.

      • frameId

        число

        Значение 0 указывает, что запрос происходит в основном фрейме, а положительное значение – идентификатор дочернего фрейма, в котором происходит запрос. Если загружен документ (суб)фрейма (type – это main_frame или sub_frame), frameId указывает идентификатор этого фрейма, а не внешнего. Идентификаторы фреймов уникальны в пределах вкладки.

      • Chrome 106 и более поздних версий.

        Тип фрейма, в котором произошел запрос.

      • инициатор

        Строка (необязательно)

        Chrome 63 и более поздних версий;

        Источник, из которого был инициирован запрос. Это не меняется при переадресации. Если источник непрозрачный, будет использоваться строка null.

      • isProxy

        Логическое значение

        True для Proxy-Authenticate, false для WWW-Authenticate.

      • method

        string

        Стандартный метод HTTP.

      • parentDocumentId

        Строка (необязательно)

        Chrome 106 и более поздних версий.

        UUID родительского документа, которому принадлежит этот фрейм. Если родительского ресурса нет, этот вариант не задан.

      • parentFrameId

        число

        Идентификатор фрейма, который содержит фрейм, отправивший запрос. Если родительского фрейма нет, задайте значение -1.

      • область

        Строка (необязательно)

        Область аутентификации, предоставленная сервером (если есть).

      • requestId

        string

        Идентификатор запроса. Идентификаторы запросов уникальны в рамках сеанса браузера. В результате их можно использовать для соотнесения разных событий одного запроса.

      • responseHeaders

        HttpHeaders необязательный

        Заголовки HTTP-ответа, полученные вместе с этим ответом.

      • схема

        string

        Схема аутентификации, например базовая или дайджест-аутентификация.

      • statusCode

        число

        Chrome 43 и более поздних версий;

        Стандартный код статуса HTTP, возвращенный сервером.

      • statusLine

        string

        Строка статуса HTTP ответа или строка "HTTP/0.9 200 OK" для ответов HTTP/0.9 (т.е. ответов, в которых нет строки статуса) или пустая строка, если заголовков нет.

      • tabId

        число

        Идентификатор вкладки, в которой выполняется запрос. Если запрос не связан с вкладкой, задайте значение -1.

      • timeStamp

        число

        Время активации сигнала в миллисекундах с начала отсчета.

      • тип

        Как будет использоваться запрашиваемый ресурс.

      • url

        string

    • asyncCallback

      function необязательно

      Chrome 58 и более поздних версий;

      Параметр asyncCallback выглядит следующим образом:

      (response: BlockingResponse) => void

    • Возвращает

      BlockingResponse | undefined

      Если в параметре extraInfoSpec указано значение blocking, прослушиватель событий должен возвращать объект этого типа.

  • фильтр
  • extraInfoSpec

    OnAuthRequiredOptions[] необязательный

onBeforeRedirect

chrome.webRequest.onBeforeRedirect.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeRedirectOptions[],
)

Активируется, когда должно произойти перенаправление, инициированное сервером.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (details: object) => void

    • подробные сведения

      Объект

      • documentId

        Строка (необязательно)

        Chrome 106 и более поздних версий.

        UUID документа, отправляющего запрос.

      • Chrome 106 и более поздних версий.

        Жизненный цикл, в котором находится документ.

      • frameId

        число

        Значение 0 указывает, что запрос происходит в основном фрейме, а положительное значение – идентификатор дочернего фрейма, в котором происходит запрос. Если загружен документ (суб)фрейма (type – это main_frame или sub_frame), frameId указывает идентификатор этого фрейма, а не внешнего. Идентификаторы фреймов уникальны в пределах вкладки.

      • Chrome 106 и более поздних версий.

        Тип фрейма, в котором произошел запрос.

      • fromCache

        Логическое значение

        Указывает, был ли этот ответ получен из кеша диска.

      • инициатор

        Строка (необязательно)

        Chrome 63 и более поздних версий;

        Источник, из которого был инициирован запрос. Это не меняется при переадресации. Если источник непрозрачный, будет использоваться строка null.

      • ip

        Строка (необязательно)

        IP-адрес сервера, на который был отправлен запрос. Обратите внимание, что это может быть буквальный адрес IPv6.

      • method

        string

        Стандартный метод HTTP.

      • parentDocumentId

        Строка (необязательно)

        Chrome 106 и более поздних версий.

        UUID родительского документа, которому принадлежит этот фрейм. Если родительского ресурса нет, этот вариант не задан.

      • parentFrameId

        число

        Идентификатор фрейма, который содержит фрейм, отправивший запрос. Если родительского фрейма нет, задайте значение -1.

      • redirectUrl

        string

        Новый URL.

      • requestId

        string

        Идентификатор запроса. Идентификаторы запросов уникальны в рамках сеанса браузера. В результате их можно использовать для соотнесения разных событий одного запроса.

      • responseHeaders

        HttpHeaders необязательный

        Заголовки HTTP-ответа, полученные вместе с этим перенаправлением.

      • statusCode

        число

        Стандартный код статуса HTTP, возвращенный сервером.

      • statusLine

        string

        Строка статуса HTTP ответа или строка "HTTP/0.9 200 OK" для ответов HTTP/0.9 (т.е. ответов, в которых нет строки статуса) или пустая строка, если заголовков нет.

      • tabId

        число

        Идентификатор вкладки, в которой выполняется запрос. Если запрос не связан с вкладкой, задайте значение -1.

      • timeStamp

        число

        Время активации сигнала в миллисекундах с начала отсчета.

      • тип

        Как будет использоваться запрашиваемый ресурс.

      • url

        string

  • фильтр
  • extraInfoSpec

    OnBeforeRedirectOptions[] необязательный

onBeforeRequest

chrome.webRequest.onBeforeRequest.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeRequestOptions[],
)

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

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (details: object) => BlockingResponse | undefined

    • подробные сведения

      Объект

      • documentId

        Строка (необязательно)

        Chrome 106 и более поздних версий.

        UUID документа, отправляющего запрос.

      • documentLifecycle

        extensionTypes.DocumentLifecycle необязательно

        Chrome 106 и более поздних версий.

        Жизненный цикл, в котором находится документ.

      • frameId

        число

        Значение 0 указывает, что запрос происходит в основном фрейме, а положительное значение – идентификатор дочернего фрейма, в котором происходит запрос. Если загружен документ (суб)фрейма (type – это main_frame или sub_frame), frameId указывает идентификатор этого фрейма, а не внешнего. Идентификаторы фреймов уникальны в пределах вкладки.

      • frameType

        extensionTypes.FrameType необязательный

        Chrome 106 и более поздних версий.

        Тип фрейма, в котором произошел запрос.

      • инициатор

        Строка (необязательно)

        Chrome 63 и более поздних версий;

        Источник, из которого был инициирован запрос. Это не меняется при переадресации. Если источник непрозрачный, будет использоваться строка null.

      • method

        string

        Стандартный метод HTTP.

      • parentDocumentId

        Строка (необязательно)

        Chrome 106 и более поздних версий.

        UUID родительского документа, которому принадлежит этот фрейм. Если родительского ресурса нет, этот вариант не задан.

      • parentFrameId

        число

        Идентификатор фрейма, который содержит фрейм, отправивший запрос. Если родительского фрейма нет, задайте значение -1.

      • requestBody

        Объект (необязательно)

        Содержит данные тела HTTP-запроса. Предоставляется, только если extraInfoSpec содержит requestBody.

        • ошибка

          Строка (необязательно)

          Ошибки при получении данных тела запроса.

        • formData

          Объект (необязательно)

          Если метод запроса – POST, а тело представляет собой последовательность пар "ключ-значение", закодированных в UTF-8 в формате multipart/form-data или application/x-www-form-urlencoded, то этот словарь присутствует и для каждого ключа содержит список всех значений. Если данные относятся к другому типу медиаконтента или имеют неправильный формат, словарь отсутствует. Пример значения этого словаря: {'key': ['value1', 'value2']}.

        • сырой

          UploadData[] необязательный

          Если метод запроса – PUT или POST, а тело ещё не обработано в formData, то необработанные элементы тела запроса содержатся в этом массиве.

      • requestId

        string

        Идентификатор запроса. Идентификаторы запросов уникальны в рамках сеанса браузера. В результате их можно использовать для соотнесения разных событий одного запроса.

      • tabId

        число

        Идентификатор вкладки, в которой выполняется запрос. Если запрос не связан с вкладкой, задайте значение -1.

      • timeStamp

        число

        Время активации сигнала в миллисекундах с начала отсчета.

      • тип

        Как будет использоваться запрашиваемый ресурс.

      • url

        string

    • Возвращает

      BlockingResponse | undefined

      Если в параметре extraInfoSpec указано значение blocking, прослушиватель событий должен возвращать объект этого типа.

  • фильтр
  • extraInfoSpec

    OnBeforeRequestOptions[] необязательный

onBeforeSendHeaders

chrome.webRequest.onBeforeSendHeaders.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeSendHeadersOptions[],
)

Срабатывает перед отправкой HTTP-запроса, когда становятся доступны заголовки запроса. Это может произойти после того, как TCP-подключение к серверу установлено, но до отправки данных HTTP.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (details: object) => BlockingResponse | undefined

    • подробные сведения

      Объект

      • documentId

        Строка (необязательно)

        Chrome 106 и более поздних версий.

        UUID документа, отправляющего запрос.

      • Chrome 106 и более поздних версий.

        Жизненный цикл, в котором находится документ.

      • frameId

        число

        Значение 0 указывает, что запрос происходит в основном фрейме, а положительное значение – идентификатор дочернего фрейма, в котором происходит запрос. Если загружен документ (суб)фрейма (type – это main_frame или sub_frame), frameId указывает идентификатор этого фрейма, а не внешнего. Идентификаторы фреймов уникальны в пределах вкладки.

      • Chrome 106 и более поздних версий.

        Тип фрейма, в котором произошел запрос.

      • инициатор

        Строка (необязательно)

        Chrome 63 и более поздних версий;

        Источник, из которого был инициирован запрос. Это не меняется при переадресации. Если источник непрозрачный, будет использоваться строка null.

      • method

        string

        Стандартный метод HTTP.

      • parentDocumentId

        Строка (необязательно)

        Chrome 106 и более поздних версий.

        UUID родительского документа, которому принадлежит этот фрейм. Если родительского ресурса нет, этот вариант не задан.

      • parentFrameId

        число

        Идентификатор фрейма, который содержит фрейм, отправивший запрос. Если родительского фрейма нет, задайте значение -1.

      • requestHeaders

        HttpHeaders необязательный

        Заголовки HTTP-запросов, которые будут отправлены с этим запросом.

      • requestId

        string

        Идентификатор запроса. Идентификаторы запросов уникальны в рамках сеанса браузера. В результате их можно использовать для соотнесения разных событий одного запроса.

      • tabId

        число

        Идентификатор вкладки, в которой выполняется запрос. Если запрос не связан с вкладкой, задайте значение -1.

      • timeStamp

        число

        Время активации сигнала в миллисекундах с начала отсчета.

      • тип

        Как будет использоваться запрашиваемый ресурс.

      • url

        string

    • Возвращает

      BlockingResponse | undefined

      Если в параметре extraInfoSpec указано значение blocking, прослушиватель событий должен возвращать объект этого типа.

  • фильтр
  • extraInfoSpec

    OnBeforeSendHeadersOptions[] необязательный

onCompleted

chrome.webRequest.onCompleted.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnCompletedOptions[],
)

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

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (details: object) => void

    • подробные сведения

      Объект

      • documentId

        Строка (необязательно)

        Chrome 106 и более поздних версий.

        UUID документа, отправляющего запрос.

      • Chrome 106 и более поздних версий.

        Жизненный цикл, в котором находится документ.

      • frameId

        число

        Значение 0 указывает, что запрос происходит в основном фрейме, а положительное значение – идентификатор дочернего фрейма, в котором происходит запрос. Если загружен документ (суб)фрейма (type – это main_frame или sub_frame), frameId указывает идентификатор этого фрейма, а не внешнего. Идентификаторы фреймов уникальны в пределах вкладки.

      • Chrome 106 и более поздних версий.

        Тип фрейма, в котором произошел запрос.

      • fromCache

        Логическое значение

        Указывает, был ли этот ответ получен из кеша диска.

      • инициатор

        Строка (необязательно)

        Chrome 63 и более поздних версий;

        Источник, из которого был инициирован запрос. Это не меняется при переадресации. Если источник непрозрачный, будет использоваться строка null.

      • ip

        Строка (необязательно)

        IP-адрес сервера, на который был отправлен запрос. Обратите внимание, что это может быть буквальный адрес IPv6.

      • method

        string

        Стандартный метод HTTP.

      • parentDocumentId

        Строка (необязательно)

        Chrome 106 и более поздних версий.

        UUID родительского документа, которому принадлежит этот фрейм. Если родительского ресурса нет, этот вариант не задан.

      • parentFrameId

        число

        Идентификатор фрейма, который содержит фрейм, отправивший запрос. Если родительского фрейма нет, задайте значение -1.

      • requestId

        string

        Идентификатор запроса. Идентификаторы запросов уникальны в рамках сеанса браузера. В результате их можно использовать для соотнесения разных событий одного запроса.

      • responseHeaders

        HttpHeaders необязательный

        Заголовки HTTP-ответа, полученные вместе с этим ответом.

      • statusCode

        число

        Стандартный код статуса HTTP, возвращенный сервером.

      • statusLine

        string

        Строка статуса HTTP ответа или строка "HTTP/0.9 200 OK" для ответов HTTP/0.9 (т.е. ответов, в которых нет строки статуса) или пустая строка, если заголовков нет.

      • tabId

        число

        Идентификатор вкладки, в которой выполняется запрос. Если запрос не связан с вкладкой, задайте значение -1.

      • timeStamp

        число

        Время активации сигнала в миллисекундах с начала отсчета.

      • тип

        Как будет использоваться запрашиваемый ресурс.

      • url

        string

  • фильтр
  • extraInfoSpec

    OnCompletedOptions[] необязательный

onErrorOccurred

chrome.webRequest.onErrorOccurred.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnErrorOccurredOptions[],
)

Срабатывает при возникновении ошибки.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (details: object) => void

    • подробные сведения

      Объект

      • documentId

        Строка (необязательно)

        Chrome 106 и более поздних версий.

        UUID документа, отправляющего запрос. Это значение отсутствует, если запрос представляет собой навигацию по фрейму.

      • Chrome 106 и более поздних версий.

        Жизненный цикл, в котором находится документ.

      • ошибка

        string

        Описание ошибки. Обратная совместимость этой строки между выпусками не гарантируется. Не анализируйте его и не выполняйте никаких действий на основе его содержания.

      • frameId

        число

        Значение 0 указывает, что запрос происходит в основном фрейме, а положительное значение – идентификатор дочернего фрейма, в котором происходит запрос. Если загружен документ (суб)фрейма (type – это main_frame или sub_frame), frameId указывает идентификатор этого фрейма, а не внешнего. Идентификаторы фреймов уникальны в пределах вкладки.

      • Chrome 106 и более поздних версий.

        Тип фрейма, в котором произошел запрос.

      • fromCache

        Логическое значение

        Указывает, был ли этот ответ получен из кеша диска.

      • инициатор

        Строка (необязательно)

        Chrome 63 и более поздних версий;

        Источник, из которого был инициирован запрос. Это не меняется при переадресации. Если источник непрозрачный, будет использоваться строка null.

      • ip

        Строка (необязательно)

        IP-адрес сервера, на который был отправлен запрос. Обратите внимание, что это может быть буквальный адрес IPv6.

      • method

        string

        Стандартный метод HTTP.

      • parentDocumentId

        Строка (необязательно)

        Chrome 106 и более поздних версий.

        UUID родительского документа, которому принадлежит этот фрейм. Если родительского ресурса нет, этот вариант не задан.

      • parentFrameId

        число

        Идентификатор фрейма, который содержит фрейм, отправивший запрос. Если родительского фрейма нет, задайте значение -1.

      • requestId

        string

        Идентификатор запроса. Идентификаторы запросов уникальны в рамках сеанса браузера. В результате их можно использовать для соотнесения разных событий одного запроса.

      • tabId

        число

        Идентификатор вкладки, в которой выполняется запрос. Если запрос не связан с вкладкой, задайте значение -1.

      • timeStamp

        число

        Время активации сигнала в миллисекундах с начала отсчета.

      • тип

        Как будет использоваться запрашиваемый ресурс.

      • url

        string

  • фильтр
  • extraInfoSpec

    OnErrorOccurredOptions[] необязательный

onHeadersReceived

chrome.webRequest.onHeadersReceived.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnHeadersReceivedOptions[],
)

Срабатывает, когда получены заголовки HTTP-ответа на запрос.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (details: object) => BlockingResponse | undefined

    • подробные сведения

      Объект

      • documentId

        Строка (необязательно)

        Chrome 106 и более поздних версий.

        UUID документа, отправляющего запрос.

      • Chrome 106 и более поздних версий.

        Жизненный цикл, в котором находится документ.

      • frameId

        число

        Значение 0 указывает, что запрос происходит в основном фрейме, а положительное значение – идентификатор дочернего фрейма, в котором происходит запрос. Если загружен документ (суб)фрейма (type – это main_frame или sub_frame), frameId указывает идентификатор этого фрейма, а не внешнего. Идентификаторы фреймов уникальны в пределах вкладки.

      • Chrome 106 и более поздних версий.

        Тип фрейма, в котором произошел запрос.

      • инициатор

        Строка (необязательно)

        Chrome 63 и более поздних версий;

        Источник, из которого был инициирован запрос. Это не меняется при переадресации. Если источник непрозрачный, будет использоваться строка null.

      • method

        string

        Стандартный метод HTTP.

      • parentDocumentId

        Строка (необязательно)

        Chrome 106 и более поздних версий.

        UUID родительского документа, которому принадлежит этот фрейм. Если родительского ресурса нет, этот вариант не задан.

      • parentFrameId

        число

        Идентификатор фрейма, который содержит фрейм, отправивший запрос. Если родительского фрейма нет, задайте значение -1.

      • requestId

        string

        Идентификатор запроса. Идентификаторы запросов уникальны в рамках сеанса браузера. В результате их можно использовать для соотнесения разных событий одного запроса.

      • responseHeaders

        HttpHeaders необязательный

        Заголовки HTTP-ответа, полученные вместе с этим ответом.

      • securityInfo

        SecurityInfo необязательный

        Chrome 144 и более поздних версий

        Информация о подключении TLS/QUIC, используемом для базового подключения. Предоставляется, только если в параметре extraInfoSpec указано значение securityInfo.

      • statusCode

        число

        Chrome 43 и более поздних версий;

        Стандартный код статуса HTTP, возвращенный сервером.

      • statusLine

        string

        Строка статуса HTTP ответа или строка "HTTP/0.9 200 OK" для ответов HTTP/0.9 (т.е. ответов, в которых нет строки статуса).

      • tabId

        число

        Идентификатор вкладки, в которой выполняется запрос. Если запрос не связан с вкладкой, задайте значение -1.

      • timeStamp

        число

        Время активации сигнала в миллисекундах с начала отсчета.

      • тип

        Как будет использоваться запрашиваемый ресурс.

      • url

        string

    • Возвращает

      BlockingResponse | undefined

      Если в параметре extraInfoSpec указано значение blocking, прослушиватель событий должен возвращать объект этого типа.

  • фильтр
  • extraInfoSpec

    OnHeadersReceivedOptions[] необязательный

onResponseStarted

chrome.webRequest.onResponseStarted.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnResponseStartedOptions[],
)

Срабатывает, когда получен первый байт тела ответа. Для HTTP-запросов это означает, что доступны строка статуса и заголовки ответа.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (details: object) => void

    • подробные сведения

      Объект

      • documentId

        Строка (необязательно)

        Chrome 106 и более поздних версий.

        UUID документа, отправляющего запрос.

      • Chrome 106 и более поздних версий.

        Жизненный цикл, в котором находится документ.

      • frameId

        число

        Значение 0 указывает, что запрос происходит в основном фрейме, а положительное значение – идентификатор дочернего фрейма, в котором происходит запрос. Если загружен документ (суб)фрейма (type – это main_frame или sub_frame), frameId указывает идентификатор этого фрейма, а не внешнего. Идентификаторы фреймов уникальны в пределах вкладки.

      • Chrome 106 и более поздних версий.

        Тип фрейма, в котором произошел запрос.

      • fromCache

        Логическое значение

        Указывает, был ли этот ответ получен из кеша диска.

      • инициатор

        Строка (необязательно)

        Chrome 63 и более поздних версий;

        Источник, из которого был инициирован запрос. Это не меняется при переадресации. Если источник непрозрачный, будет использоваться строка null.

      • ip

        Строка (необязательно)

        IP-адрес сервера, на который был отправлен запрос. Обратите внимание, что это может быть буквальный адрес IPv6.

      • method

        string

        Стандартный метод HTTP.

      • parentDocumentId

        Строка (необязательно)

        Chrome 106 и более поздних версий.

        UUID родительского документа, которому принадлежит этот фрейм. Если родительского ресурса нет, этот вариант не задан.

      • parentFrameId

        число

        Идентификатор фрейма, который содержит фрейм, отправивший запрос. Если родительского фрейма нет, задайте значение -1.

      • requestId

        string

        Идентификатор запроса. Идентификаторы запросов уникальны в рамках сеанса браузера. В результате их можно использовать для соотнесения разных событий одного запроса.

      • responseHeaders

        HttpHeaders необязательный

        Заголовки HTTP-ответа, полученные вместе с этим ответом.

      • statusCode

        число

        Стандартный код статуса HTTP, возвращенный сервером.

      • statusLine

        string

        Строка статуса HTTP ответа или строка "HTTP/0.9 200 OK" для ответов HTTP/0.9 (т.е. ответов, в которых нет строки статуса) или пустая строка, если заголовков нет.

      • tabId

        число

        Идентификатор вкладки, в которой выполняется запрос. Если запрос не связан с вкладкой, задайте значение -1.

      • timeStamp

        число

        Время активации сигнала в миллисекундах с начала отсчета.

      • тип

        Как будет использоваться запрашиваемый ресурс.

      • url

        string

  • фильтр
  • extraInfoSpec

    OnResponseStartedOptions[] необязательный

onSendHeaders

chrome.webRequest.onSendHeaders.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnSendHeadersOptions[],
)

Срабатывает непосредственно перед отправкой запроса на сервер (изменения предыдущих обратных вызовов onBeforeSendHeaders видны к моменту срабатывания onSendHeaders).

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    (details: object) => void

    • подробные сведения

      Объект

      • documentId

        Строка (необязательно)

        Chrome 106 и более поздних версий.

        UUID документа, отправляющего запрос.

      • Chrome 106 и более поздних версий.

        Жизненный цикл, в котором находится документ.

      • frameId

        число

        Значение 0 указывает, что запрос происходит в основном фрейме, а положительное значение – идентификатор дочернего фрейма, в котором происходит запрос. Если загружен документ (суб)фрейма (type – это main_frame или sub_frame), frameId указывает идентификатор этого фрейма, а не внешнего. Идентификаторы фреймов уникальны в пределах вкладки.

      • Chrome 106 и более поздних версий.

        Тип фрейма, в котором произошел запрос.

      • инициатор

        Строка (необязательно)

        Chrome 63 и более поздних версий;

        Источник, из которого был инициирован запрос. Это не меняется при переадресации. Если источник непрозрачный, будет использоваться строка null.

      • method

        string

        Стандартный метод HTTP.

      • parentDocumentId

        Строка (необязательно)

        Chrome 106 и более поздних версий.

        UUID родительского документа, которому принадлежит этот фрейм. Если родительского ресурса нет, этот вариант не задан.

      • parentFrameId

        число

        Идентификатор фрейма, который содержит фрейм, отправивший запрос. Если родительского фрейма нет, задайте значение -1.

      • requestHeaders

        HttpHeaders необязательный

        Заголовки HTTP-запросов, отправленные с этим запросом.

      • requestId

        string

        Идентификатор запроса. Идентификаторы запросов уникальны в рамках сеанса браузера. В результате их можно использовать для соотнесения разных событий одного запроса.

      • tabId

        число

        Идентификатор вкладки, в которой выполняется запрос. Если запрос не связан с вкладкой, задайте значение -1.

      • timeStamp

        число

        Время активации сигнала в миллисекундах с начала отсчета.

      • тип

        Как будет использоваться запрашиваемый ресурс.

      • url

        string

  • фильтр
  • extraInfoSpec