chrome.webRequest

Описание

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

Разрешения

webRequest

Манифест

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

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

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

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

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

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

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

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 . Этот список не может быть полным или стабильным.

  • Авторизация
  • Кэш-Контроль
  • Связь
  • Длина контента
  • Хозяин
  • Если-Изменено-С тех пор
  • Если-Нет-Матча
  • If-Range
  • Частичные данные
  • Прагма
  • Прокси-Авторизация
  • Прокси-соединение
  • Передача-кодирование

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

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

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

  • Источник

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

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

  • Accept-Язык
  • Принять-кодирование
  • Реферер
  • печенье

Начиная с 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 и другие конфиденциальные запросы, лежащие в основе функциональности браузера. Кроме того, синхронные XMLHttpRequests из вашего расширения скрыты от обработчиков событий блокировки, чтобы предотвратить взаимоблокировки. Обратите внимание, что для некоторых поддерживаемых схем набор доступных событий может быть ограничен из-за особенностей соответствующего протокола. Например, для схемы file: могут быть отправлены только onBeforeRequest , onResponseStarted , onCompleted и onErrorOccurred .

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

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

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

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

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

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

Концепции

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

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

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

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

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

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

Детали реализации

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

web_accessible_resources

Когда расширение использует API-интерфейсы webRequest для перенаправления запроса общедоступного ресурса на ресурс, который недоступен через Интернет, он блокируется и приводит к ошибке. Вышеупомянутое справедливо, даже если ресурс, недоступный через Интернет, принадлежит расширению перенаправления. Чтобы объявить ресурсы для использования с декларативными API WebRequest, массив "web_accessible_resources" должен быть объявлен и заполнен в манифесте, как описано здесь .

Решение конфликта

В текущей реализации 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. Позволяет обработчику событий изменять сетевые запросы.

Характеристики

  • authCredentials

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

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

    • пароль

      нить

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

      нить

  • отмена

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

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

  • URL-адрес перенаправления

    строка необязательна

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

  • Заголовки запроса

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

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

  • Заголовки ответа

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

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

FormDataItem

Хром 66+

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

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

МассивБуфер

нить

HttpHeaders

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

Тип

объект[]

Характеристики

  • двоичное значение

    номер[] необязательно

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

  • имя

    нить

    Имя HTTP-заголовка.

  • ценить

    строка необязательна

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

IgnoredActionType

Хром 70+

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

"перенаправление"

"запрос_заголовки"

"response_headers"

"auth_credentials"

OnAuthRequiredOptions

Хром 44+

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

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

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

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

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

OnBeforeRedirectOptions

Хром 44+

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

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

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

OnBeforeRequestOptions

Хром 44+

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

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

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

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

OnBeforeSendHeadersOptions

Хром 44+

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

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

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

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

OnCompletedOptions

Хром 44+

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

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

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

OnErrorOccurredOptions

Хром 79+

Ценить

"дополнительные заголовки"

OnHeadersReceivedOptions

Хром 44+

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

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

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

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

OnResponseStartedOptions

Хром 44+

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

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

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

OnSendHeadersOptions

Хром 44+

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

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

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

RequestFilter

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

Характеристики

  • идентификатор табуляции

    номер необязательно

  • типы

    ТипРесурса [] необязательно

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

  • URL-адреса

    нить[]

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

  • идентификатор окна

    номер необязательно

ResourceType

Хром 44+

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

"основной_фрейм"
Указывает ресурс в качестве основного кадра.

"под_кадр"
Указывает ресурс как подкадр.

"таблица стилей"
Указывает ресурс как таблицу стилей.

"сценарий"
Указывает ресурс как скрипт.

"изображение"
Указывает ресурс как изображение.

"шрифт"
Указывает ресурс как шрифт.

"объект"
Указывает ресурс как объект.

"xmlhttprequest"
Указывает ресурс как XMLHttpRequest.

"пинг"
Указывает ресурс как пинг.

"csp_report"
Указывает ресурс как отчет политики безопасности контента (CSP).

"СМИ"
Указывает ресурс как медиа-объект.

"веб-сокет"
Указывает ресурс как WebSocket.

"паутина"
Указывает ресурс как WebBundle.

"другой"
Указывает ресурс как тип, не включенный в список типов.

UploadData

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

Характеристики

  • байты

    любые дополнительные

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

  • файл

    строка необязательна

    Строка с путем и именем файла.

Характеристики

MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES

Максимальное количество вызовов handlerBehaviorChanged за 10-минутный устойчивый интервал. handlerBehaviorChanged — это дорогостоящий вызов функции, который не следует вызывать часто.

Ценить

20

Методы

handlerBehaviorChanged()

Обещать
chrome.webRequest.handlerBehaviorChanged(
  callback?: function,
)

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

Параметры

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    ()=>void

Возврат

  • Обещание<void>

    Хром 116+

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

События

onActionIgnored

Хром 70+
chrome.webRequest.onActionIgnored.addListener(
  callback: function,
)

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

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (details: object)=>void

    • подробности

      объект

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

      • идентификатор запроса

        нить

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

onAuthRequired

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

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

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

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

    • подробности

      объект

      • претендент

        объект

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

        • хозяин

          нить

        • порт

          число

      • идентификатор документа

        нить

        Хром 106+

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

      • Жизненный цикл документа
        Хром 106+

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

      • идентификатор кадра

        число

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

      • Хром 106+

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

      • инициатор

        строка необязательна

        Хром 63+

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

      • isProxy

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

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

      • метод

        нить

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

      • родительскийDocumentId

        строка необязательна

        Хром 106+

        UUID родительского документа, владеющего этим фреймом. Это не установлено, если нет родителя.

      • родительскийFrameId

        число

        Идентификатор кадра, который заключает в себе кадр, отправивший запрос. Установите значение -1, если родительский фрейм не существует.

      • область

        строка необязательна

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

      • идентификатор запроса

        нить

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

      • Заголовки ответа

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

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

      • схема

        нить

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

      • код статуса

        число

        Хром 43+

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

      • статуслиния

        нить

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

      • идентификатор табуляции

        число

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

      • метка времени

        число

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

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

      • URL

        нить

    • асинхронный обратный вызов

      функция необязательна

      Хром 58+

      Параметр asyncCallback выглядит так:

      (response: BlockingResponse)=>void

    • возвращает

      Блокирующий ответ | не определено

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

  • ЭкстраИнфоСпец

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

onBeforeRedirect

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

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

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (details: object)=>void

    • подробности

      объект

      • идентификатор документа

        нить

        Хром 106+

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

      • Жизненный цикл документа
        Хром 106+

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

      • идентификатор кадра

        число

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

      • Хром 106+

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

      • из кэша

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

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

      • инициатор

        строка необязательна

        Хром 63+

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

      • IP

        строка необязательна

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

      • метод

        нить

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

      • родительскийDocumentId

        строка необязательна

        Хром 106+

        UUID родительского документа, владеющего этим фреймом. Это не установлено, если нет родителя.

      • родительскийFrameId

        число

        Идентификатор кадра, который заключает в себе кадр, отправивший запрос. Установите значение -1, если родительский фрейм не существует.

      • URL-адрес перенаправления

        нить

        Новый URL-адрес.

      • идентификатор запроса

        нить

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

      • Заголовки ответа

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

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

      • код статуса

        число

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

      • статуслиния

        нить

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

      • идентификатор табуляции

        число

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

      • метка времени

        число

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

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

      • URL

        нить

  • ЭкстраИнфоСпец

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

onBeforeRequest

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

Запускается, когда запрос вот-вот произойдет.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (details: object)=>BlockingResponse|undefined

    • подробности

      объект

      • идентификатор документа

        строка необязательна

        Хром 106+

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

      • Жизненный цикл документа

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

        Хром 106+

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

      • идентификатор кадра

        число

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

      • Тип рамки

        ExtensionTypes.FrameType необязательно

        Хром 106+

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

      • инициатор

        строка необязательна

        Хром 63+

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

      • метод

        нить

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

      • родительскийDocumentId

        строка необязательна

        Хром 106+

        UUID родительского документа, владеющего этим фреймом. Это не установлено, если нет родителя.

      • родительскийFrameId

        число

        Идентификатор кадра, который заключает в себе кадр, отправивший запрос. Установите значение -1, если родительский фрейм не существует.

      • тело запроса

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

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

        • ошибка

          строка необязательна

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

        • данные формы

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

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

        • сырой

          Загрузить данные [] необязательно

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

      • идентификатор запроса

        нить

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

      • идентификатор табуляции

        число

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

      • метка времени

        число

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

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

      • URL

        нить

    • возвращает

      Блокирующий ответ | не определено

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

  • ЭкстраИнфоСпец

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

onBeforeSendHeaders

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

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

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (details: object)=>BlockingResponse|undefined

    • подробности

      объект

      • идентификатор документа

        нить

        Хром 106+

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

      • Жизненный цикл документа
        Хром 106+

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

      • идентификатор кадра

        число

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

      • Хром 106+

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

      • инициатор

        строка необязательна

        Хром 63+

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

      • метод

        нить

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

      • родительскийDocumentId

        строка необязательна

        Хром 106+

        UUID родительского документа, владеющего этим фреймом. Это не установлено, если нет родителя.

      • родительскийFrameId

        число

        Идентификатор кадра, который заключает в себе кадр, отправивший запрос. Установите значение -1, если родительский фрейм не существует.

      • Заголовки запроса

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

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

      • идентификатор запроса

        нить

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

      • идентификатор табуляции

        число

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

      • метка времени

        число

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

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

      • URL

        нить

    • возвращает

      Блокирующий ответ | не определено

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

  • ЭкстраИнфоСпец

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

onCompleted

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

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

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (details: object)=>void

    • подробности

      объект

      • идентификатор документа

        нить

        Хром 106+

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

      • Жизненный цикл документа
        Хром 106+

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

      • идентификатор кадра

        число

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

      • Хром 106+

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

      • из кэша

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

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

      • инициатор

        строка необязательна

        Хром 63+

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

      • IP

        строка необязательна

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

      • метод

        нить

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

      • родительскийDocumentId

        строка необязательна

        Хром 106+

        UUID родительского документа, владеющего этим фреймом. Это не установлено, если нет родителя.

      • родительскийFrameId

        число

        Идентификатор кадра, который заключает в себе кадр, отправивший запрос. Установите значение -1, если родительский фрейм не существует.

      • идентификатор запроса

        нить

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

      • Заголовки ответа

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

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

      • код статуса

        число

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

      • статуслиния

        нить

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

      • идентификатор табуляции

        число

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

      • метка времени

        число

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

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

      • URL

        нить

  • ЭкстраИнфоСпец

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

onErrorOccurred

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

Запускается при возникновении ошибки.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (details: object)=>void

    • подробности

      объект

      • идентификатор документа

        нить

        Хром 106+

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

      • Жизненный цикл документа
        Хром 106+

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

      • ошибка

        нить

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

      • идентификатор кадра

        число

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

      • Хром 106+

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

      • из кэша

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

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

      • инициатор

        строка необязательна

        Хром 63+

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

      • IP

        строка необязательна

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

      • метод

        нить

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

      • родительскийDocumentId

        строка необязательна

        Хром 106+

        UUID родительского документа, владеющего этим фреймом. Это не установлено, если нет родителя.

      • родительскийFrameId

        число

        Идентификатор кадра, который заключает в себе кадр, отправивший запрос. Установите значение -1, если родительский фрейм не существует.

      • идентификатор запроса

        нить

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

      • идентификатор табуляции

        число

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

      • метка времени

        число

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

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

      • URL

        нить

  • ЭкстраИнфоСпец

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

onHeadersReceived

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

Вызывается при получении заголовков HTTP-ответа запроса.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (details: object)=>BlockingResponse|undefined

    • подробности

      объект

      • идентификатор документа

        нить

        Хром 106+

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

      • Жизненный цикл документа
        Хром 106+

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

      • идентификатор кадра

        число

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

      • Хром 106+

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

      • инициатор

        строка необязательна

        Хром 63+

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

      • метод

        нить

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

      • родительскийDocumentId

        строка необязательна

        Хром 106+

        UUID родительского документа, владеющего этим фреймом. Это не установлено, если нет родителя.

      • родительскийFrameId

        число

        Идентификатор кадра, который заключает в себе кадр, отправивший запрос. Установите значение -1, если родительский фрейм не существует.

      • идентификатор запроса

        нить

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

      • Заголовки ответа

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

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

      • код статуса

        число

        Хром 43+

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

      • статуслиния

        нить

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

      • идентификатор табуляции

        число

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

      • метка времени

        число

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

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

      • URL

        нить

    • возвращает

      Блокирующий ответ | не определено

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

  • ЭкстраИнфоСпец

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

onResponseStarted

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

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

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (details: object)=>void

    • подробности

      объект

      • идентификатор документа

        нить

        Хром 106+

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

      • Жизненный цикл документа
        Хром 106+

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

      • идентификатор кадра

        число

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

      • Хром 106+

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

      • из кэша

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

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

      • инициатор

        строка необязательна

        Хром 63+

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

      • IP

        строка необязательна

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

      • метод

        нить

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

      • родительскийDocumentId

        строка необязательна

        Хром 106+

        UUID родительского документа, владеющего этим фреймом. Это не установлено, если нет родителя.

      • родительскийFrameId

        число

        Идентификатор кадра, который заключает в себе кадр, отправивший запрос. Установите значение -1, если родительский фрейм не существует.

      • идентификатор запроса

        нить

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

      • Заголовки ответа

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

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

      • код статуса

        число

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

      • статуслиния

        нить

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

      • идентификатор табуляции

        число

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

      • метка времени

        число

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

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

      • URL

        нить

  • ЭкстраИнфоСпец

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

onSendHeaders

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

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

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (details: object)=>void

    • подробности

      объект

      • идентификатор документа

        нить

        Хром 106+

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

      • Жизненный цикл документа
        Хром 106+

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

      • идентификатор кадра

        число

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

      • Хром 106+

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

      • инициатор

        строка необязательна

        Хром 63+

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

      • метод

        нить

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

      • родительскийDocumentId

        строка необязательна

        Хром 106+

        UUID родительского документа, владеющего этим фреймом. Это не установлено, если нет родителя.

      • родительскийFrameId

        число

        Идентификатор кадра, который заключает в себе кадр, отправивший запрос. Установите значение -1, если родительский фрейм не существует.

      • Заголовки запроса

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

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

      • идентификатор запроса

        нить

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

      • идентификатор табуляции

        число

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

      • метка времени

        число

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

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

      • URL

        нить

  • ЭкстраИнфоСпец

    OnSendHeadersOptions [] необязательно

,

Описание

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

Разрешения

webRequest

Манифест

Вы должны объявить разрешение "webRequest" в манифесте расширения , чтобы использовать API веб-запросов, а также необходимые разрешения хоста . Чтобы перехватить запрос субресурса, расширение должно иметь доступ как к запрошенному 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). Из -за перенаправлений и запросов на аутентификацию это может произойти несколько раз по запросу. Это событие предназначено для того, чтобы позволить расширениям добавлять, модифицировать и удалять заголовки ответов, такие как входящие заголовки типа контента. Директивы кэширования обрабатываются до начала этого события, поэтому модификация заголовков, таких как контроль от кеша, не оказывает влияния на кеш браузера. Это также позволяет отменить или перенаправить запрос.
onAuthRequired (необязательно синхронно)
Пожары, когда запрос требует аутентификации пользователя. Это событие может быть обработано синхронно для предоставления учетных данных аутентификации. Обратите внимание, что расширения могут предоставить неверные полномочия. Будьте осторожны, чтобы не входить в бесконечный цикл, неоднократно предоставляя недопустимые полномочия. Это также может быть использовано для отмены запроса.
onBeforeRedirect
Пожары, когда перенаправление будет выполнено. Пере перенаправление может быть вызвано кодом ответа HTTP или расширением. Это событие является информационным и обработанным асинхронно. Это не позволяет вам изменять или отменить запрос.
onResponseStarted
Пожары, когда получен первый байт тела ответа. Для HTTP -запросов это означает, что доступны заголовки статуса и заголовки ответов. Это событие является информационным и обработанным асинхронно. Это не разрешает изменение или отмену запроса.
onCompleted
Пожары, когда запрос был успешно обработан.
onErrorOccurred
Пожары, когда запрос не может быть успешно обработан.

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

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

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

  • Авторизация
  • Кэш-Контроль
  • Связь
  • Длина контента
  • Хозяин
  • Если-Изменено-С тех пор
  • If-match
  • If-range
  • Частичная-дата
  • Прагма
  • Прокси-авторизация
  • Прокси-соединение
  • Передача

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

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

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

  • Источник

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

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

  • Accept-Язык
  • Принять-кодирование
  • Реферат
  • печенье

Начиная с 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 и другие чувствительные запросы к функциям браузера. Также синхронные xmlhttprequests из вашего расширения скрыты от блокировки обработчиков событий, чтобы предотвратить тупики. Обратите внимание, что для некоторых поддерживаемых схем набор доступных событий может быть ограничен из -за характера соответствующего протокола. Например, для файла: схема, только onBeforeRequest , onResponseStarted , onCompleted и onErrorOccurred может быть отправлен.

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

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

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

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

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

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

Концепции

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

Запросить идентификаторы

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

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

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

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

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 асинхронно.

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

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

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

Детали реализации

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

web_accessible_resources

Когда расширение использует API WebRequest для перенаправления запроса общедоступного ресурса на ресурс, который не доступен в Интернете, он заблокирован и приведет к ошибке. Вышеупомянутое верно, даже если ресурс, который не доступен в Интернете, принадлежит расширению перенаправления. Чтобы объявить ресурсы для использования с API DeclarativeWebRequest, массив "web_accessible_resources" должен быть объявлен и населен в манифесте, как задокументировано здесь .

Решение конфликта

В текущей реализации 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" в файле Manifest.

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

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

Следующий пример показывает, как удалить заголовок пользователя-агента из всех запросов:

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

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

Характеристики

  • Authcredentials

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

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

    • пароль

      нить

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

      нить

  • отмена

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

    Если это правда, запрос отменяется. Это предотвращает отправку запроса. Это может быть использовано в качестве ответа на события OnbeForeRequest, OnbeForesendeDers, OnHeadersReceived и OnaUthrequrequed.

  • URL-адрес перенаправления

    строка необязательна

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

  • Заголовки запроса

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

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

  • Заголовки ответа

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

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

FormDataItem

Хром 66+

Содержит данные, передаваемые в рамках данных формы. Для Urlencodied Form он хранится как строка, если данные являются строкой UTF-8 и в качестве ArrayBuffer в противном случае. Для форм-данных это ArrayBuffer. Если Form-Data представляет файл загрузки, он является строкой с именем файла, если предусмотрено имя файла.

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

МассивБуфер

нить

HttpHeaders

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

Тип

объект[]

Характеристики

  • BinaryValue

    номер [] необязательно

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

  • имя

    нить

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

  • ценить

    строка необязательна

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

IgnoredActionType

Хром 70+

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

"Перенаправить"

"request_headers"

"response_Headers"

"auth_credentials"

OnAuthRequiredOptions

Хром 44+

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

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

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

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

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

OnBeforeRedirectOptions

Хром 44+

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

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

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

OnBeforeRequestOptions

Хром 44+

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

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

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

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

OnBeforeSendHeadersOptions

Хром 44+

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

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

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

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

OnCompletedOptions

Хром 44+

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

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

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

OnErrorOccurredOptions

Хром 79+

Ценить

"Экстрагореги"

OnHeadersReceivedOptions

Хром 44+

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

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

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

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

OnResponseStartedOptions

Хром 44+

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

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

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

OnSendHeadersOptions

Хром 44+

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

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

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

RequestFilter

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

Характеристики

  • идентификатор табуляции

    номер необязательно

  • типы

    ТипРесурса [] необязательно

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

  • URL-адреса

    нить[]

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

  • Windowid

    номер необязательно

ResourceType

Хром 44+

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

"main_frame"
Определяет ресурс как основной кадр.

"sub_frame"
Определяет ресурс как субмут.

"Стайлс"
Определяет ресурс как таблицу стиля.

"Скрипт"
Определяет ресурс как сценарий.

"изображение"
Определяет ресурс как изображение.

"шрифт"
Определяет ресурс как шрифт.

"объект"
Определяет ресурс как объект.

"xmlhttprequest"
Определяет ресурс как xmlhttprequest.

"пинг"
Определяет ресурс как пинг.

"csp_report"
Определяет отчет о политике безопасности контента (CSP).

"СМИ"
Определяет ресурс как медиа -объект.

"WebSocket"
Определяет ресурс как WebSocket.

"Webbundle"
Определяет ресурс как Webbundle.

"другой"
Определяет ресурс как тип, не включенный в перечисленные типы.

UploadData

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

Характеристики

  • байты

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

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

  • файл

    строка необязательна

    Строка с путем и имени файла.

Характеристики

MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES

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

Ценить

20

Методы

handlerBehaviorChanged()

Обещать
chrome.webRequest.handlerBehaviorChanged(
  callback?: function,
)

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

Параметры

  • перезвонить

    функция необязательна

    Параметр callback выглядит так:

    ()=>void

Возврат

  • Обещание<void>

    Хром 116+

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

События

onActionIgnored

Хром 70+
chrome.webRequest.onActionIgnored.addListener(
  callback: function,
)

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

Параметры

  • перезвонить

    функция

    Параметр callback выглядит как:

    (details: object)=>void

    • подробности

      объект

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

      • идентификатор запроса

        нить

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

onAuthRequired

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

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

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

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

    • подробности

      объект

      • претендент

        объект

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

        • хозяин

          нить

        • порт

          число

      • идентификатор документа

        нить

        Хром 106+

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

      • Жизненный цикл документа
        Хром 106+

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

      • идентификатор кадра

        число

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

      • Хром 106+

        Тип кадра. Запрос произошел в.

      • инициатор

        строка необязательна

        Хром 63+

        Происхождение, где был инициирован запрос. Это не меняется через перенаправления. Если это непрозрачное происхождение, будет использоваться строка «null».

      • Isproxy

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

        Верно для прокси-аутентикации, false для www-authenticate.

      • метод

        нить

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

      • родительскийDocumentId

        строка необязательна

        Хром 106+

        UUID родительского документа, владеющего этим кадром. Это не установлено, если нет родителя.

      • родительскийFrameId

        число

        Идентификатор кадра, который заключает в себе кадр, отправивший запрос. Установите значение -1, если родительский фрейм не существует.

      • область

        строка необязательна

        Царство аутентификации, предоставленное сервером, если он есть.

      • идентификатор запроса

        нить

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

      • Заголовки ответа

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

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

      • схема

        нить

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

      • StatusCode

        число

        Хром 43+

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

      • Статусная линия

        нить

        Строка состояния http ответа или строка «HTTP/0,9 200 OK 'для ответов HTTP/0,9 (то есть ответов, в которых отсутствует линия состояния) или пустая строка, если нет заголовков.

      • идентификатор табуляции

        число

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

      • метка времени

        число

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

      • тип

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

      • URL

        нить

    • Asynccallback

      функция необязательна

      Хром 58+

      Параметр asyncCallback выглядит как:

      (response: BlockingResponse)=>void

    • возвращает

      Блокинг -ответ | Неопределенный

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

  • фильтр
  • reseanfospec

    Onauthrequiredoptions [] Необязательно

onBeforeRedirect

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

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

Параметры

  • перезвонить

    функция

    Параметр callback выглядит так:

    (details: object)=>void

    • подробности

      объект

      • идентификатор документа

        нить

        Хром 106+

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

      • Жизненный цикл документа
        Хром 106+

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

      • идентификатор кадра

        число

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

      • Хром 106+

        Тип кадра. Запрос произошел в.

      • FromCache

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

        Указывает, был ли этот ответ из -за кеша диска.

      • инициатор

        строка необязательна

        Хром 63+

        Происхождение, где был инициирован запрос. Это не меняется через перенаправления. Если это непрозрачное происхождение, будет использоваться строка «null».

      • IP

        строка необязательна

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

      • метод

        нить

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

      • родительскийDocumentId

        строка необязательна

        Хром 106+

        UUID родительского документа, владеющего этим кадром. Это не установлено, если нет родителя.

      • родительскийFrameId

        число

        Идентификатор кадра, который заключает в себе кадр, отправивший запрос. Установите значение -1, если родительский фрейм не существует.

      • URL-адрес перенаправления

        нить

        Новый URL.

      • идентификатор запроса

        нить

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

      • Заголовки ответа

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

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

      • StatusCode

        число

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

      • Статусная линия

        нить

        Строка состояния http ответа или строка «HTTP/0,9 200 OK 'для ответов HTTP/0,9 (то есть ответов, в которых отсутствует линия состояния) или пустая строка, если нет заголовков.

      • идентификатор табуляции

        число

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

      • метка времени

        число

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

      • тип

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

      • URL

        нить

  • фильтр
  • reseanfospec

    OnbeForeDRectOptions [] Необязательно

onBeforeRequest

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

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

Параметры

  • перезвонить

    функция

    Параметр callback выглядит как:

    (details: object)=>BlockingResponse|undefined

    • подробности

      объект

      • идентификатор документа

        строка необязательна

        Хром 106+

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

      • Жизненный цикл документа

        extensiontypes.documentlifecycle Необязательно

        Хром 106+

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

      • идентификатор кадра

        число

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

      • Тип рамки

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

        Хром 106+

        Тип кадра. Запрос произошел в.

      • инициатор

        строка необязательна

        Хром 63+

        Происхождение, где был инициирован запрос. Это не меняется через перенаправления. Если это непрозрачное происхождение, будет использоваться строка «null».

      • метод

        нить

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

      • родительскийDocumentId

        строка необязательна

        Хром 106+

        UUID родительского документа, владеющего этим кадром. Это не установлено, если нет родителя.

      • родительскийFrameId

        число

        Идентификатор кадра, который заключает в себе кадр, отправивший запрос. Установите значение -1, если родительский фрейм не существует.

      • Запросить тело

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

        Содержит данные корпуса HTTP -запроса. Предоставлено только в том случае, если revencePospec содержит «образец запроса».

        • ошибка

          строка необязательна

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

        • данные формы

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

          Если метод запроса является post, а корпус представляет собой последовательность пар клавишных значений, кодируемых в UTF8, кодируемых как многоуточные/форм-даты, либо приложение/x-www-form-urlencode, этот словарь присутствует и для каждого ключа содержится Список всех значений для этого ключа. Если данные имеют другой тип носителя, или если они узорены, словарь не присутствует. Примером значения этого словаря является {'key': ['value1', 'value2']}.

        • сырой

          Uploaddata [] Необязательно

          Если метод запроса поставлен или публикуется, и тело еще не проанализировано в FormData, то в этом массиве содержатся элементы тела Unparsed запроса.

      • идентификатор запроса

        нить

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

      • идентификатор табуляции

        число

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

      • метка времени

        число

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

      • тип

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

      • URL

        нить

    • возвращает

      Блокинг -ответ | Неопределенный

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

  • фильтр
  • reseanfospec

    OnbeForeRequestoptions [] Необязательно

onBeforeSendHeaders

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

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

Параметры

  • перезвонить

    функция

    Параметр callback выглядит как:

    (details: object)=>BlockingResponse|undefined

    • подробности

      объект

      • идентификатор документа

        нить

        Хром 106+

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

      • Жизненный цикл документа
        Хром 106+

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

      • идентификатор кадра

        число

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

      • Хром 106+

        Тип кадра. Запрос произошел в.

      • инициатор

        строка необязательна

        Хром 63+

        Происхождение, где был инициирован запрос. Это не меняется через перенаправления. Если это непрозрачное происхождение, будет использоваться строка «null».

      • метод

        нить

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

      • родительскийDocumentId

        строка необязательна

        Хром 106+

        UUID родительского документа, владеющего этим кадром. Это не установлено, если нет родителя.

      • родительскийFrameId

        число

        Идентификатор кадра, который заключает в себе кадр, отправивший запрос. Установите значение -1, если родительский фрейм не существует.

      • Заголовки запроса

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

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

      • идентификатор запроса

        нить

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

      • идентификатор табуляции

        число

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

      • метка времени

        число

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

      • тип

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

      • URL

        нить

    • возвращает

      Блокинг -ответ | Неопределенный

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

  • фильтр
  • reseanfospec

    OnbeForeSendEdersoptions [] Необязательно

onCompleted

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

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

Параметры

  • перезвонить

    функция

    Параметр callback выглядит как:

    (details: object)=>void

    • подробности

      объект

      • идентификатор документа

        нить

        Хром 106+

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

      • Жизненный цикл документа
        Хром 106+

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

      • идентификатор кадра

        число

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

      • Хром 106+

        Тип кадра. Запрос произошел в.

      • FromCache

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

        Указывает, был ли этот ответ из -за кеша диска.

      • инициатор

        строка необязательна

        Хром 63+

        Происхождение, где был инициирован запрос. Это не меняется через перенаправления. Если это непрозрачное происхождение, будет использоваться строка «null».

      • IP

        строка необязательна

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

      • метод

        нить

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

      • родительскийDocumentId

        строка необязательна

        Хром 106+

        UUID родительского документа, владеющего этим кадром. Это не установлено, если нет родителя.

      • родительскийFrameId

        число

        Идентификатор кадра, который заключает в себе кадр, отправивший запрос. Установите значение -1, если родительский фрейм не существует.

      • идентификатор запроса

        нить

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

      • Заголовки ответа

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

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

      • StatusCode

        число

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

      • Статусная линия

        нить

        Строка состояния http ответа или строка «HTTP/0,9 200 OK 'для ответов HTTP/0,9 (то есть ответов, в которых отсутствует линия состояния) или пустая строка, если нет заголовков.

      • идентификатор табуляции

        число

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

      • метка времени

        число

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

      • тип

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

      • URL

        нить

  • фильтр
  • reseanfospec

    OnCompleteDoptions [] Необязательно

onErrorOccurred

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

Выстрелил, когда возникает ошибка.

Параметры

  • перезвонить

    функция

    Параметр callback выглядит как:

    (details: object)=>void

    • подробности

      объект

      • идентификатор документа

        нить

        Хром 106+

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

      • Жизненный цикл документа
        Хром 106+

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

      • ошибка

        нить

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

      • идентификатор кадра

        число

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

      • Хром 106+

        Тип кадра. Запрос произошел в.

      • FromCache

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

        Указывает, был ли этот ответ из -за кеша диска.

      • инициатор

        строка необязательна

        Хром 63+

        Происхождение, где был инициирован запрос. Это не меняется через перенаправления. Если это непрозрачное происхождение, будет использоваться строка «null».

      • IP

        строка необязательна

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

      • метод

        нить

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

      • родительскийDocumentId

        строка необязательна

        Хром 106+

        UUID родительского документа, владеющего этим кадром. Это не установлено, если нет родителя.

      • родительскийFrameId

        число

        Идентификатор кадра, который заключает в себе кадр, отправивший запрос. Установите значение -1, если родительский фрейм не существует.

      • идентификатор запроса

        нить

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

      • идентификатор табуляции

        число

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

      • метка времени

        число

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

      • тип

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

      • URL

        нить

  • фильтр
  • reseanfospec

    OnerRorOccurRedoptions [] Необязательно

onHeadersReceived

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

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

Параметры

  • перезвонить

    функция

    Параметр callback выглядит как:

    (details: object)=>BlockingResponse|undefined

    • подробности

      объект

      • идентификатор документа

        нить

        Хром 106+

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

      • Жизненный цикл документа
        Хром 106+

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

      • идентификатор кадра

        число

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

      • Хром 106+

        Тип кадра. Запрос произошел в.

      • инициатор

        строка необязательна

        Хром 63+

        Происхождение, где был инициирован запрос. Это не меняется через перенаправления. Если это непрозрачное происхождение, будет использоваться строка «null».

      • метод

        нить

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

      • родительскийDocumentId

        строка необязательна

        Хром 106+

        UUID родительского документа, владеющего этим кадром. Это не установлено, если нет родителя.

      • родительскийFrameId

        число

        Идентификатор кадра, который заключает в себе кадр, отправивший запрос. Установите значение -1, если родительский фрейм не существует.

      • идентификатор запроса

        нить

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

      • Заголовки ответа

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

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

      • StatusCode

        число

        Хром 43+

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

      • Статусная линия

        нить

        Строка состояния http ответа или строка «HTTP/0,9 200 OK» для ответов HTTP/0,9 (то есть ответов, в которых отсутствует линия состояния).

      • идентификатор табуляции

        число

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

      • метка времени

        число

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

      • тип

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

      • URL

        нить

    • возвращает

      Блокинг -ответ | Неопределенный

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

  • фильтр
  • reseanfospec

    OneadersReceivedOptions [] Необязательно

onResponseStarted

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

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

Параметры

  • перезвонить

    функция

    Параметр callback выглядит как:

    (details: object)=>void

    • подробности

      объект

      • идентификатор документа

        нить

        Хром 106+

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

      • Жизненный цикл документа
        Хром 106+

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

      • идентификатор кадра

        число

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

      • Хром 106+

        Тип кадра. Запрос произошел в.

      • FromCache

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

        Указывает, был ли этот ответ из -за кеша диска.

      • инициатор

        строка необязательна

        Хром 63+

        Происхождение, где был инициирован запрос. Это не меняется через перенаправления. Если это непрозрачное происхождение, будет использоваться строка «null».

      • IP

        строка необязательна

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

      • метод

        нить

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

      • родительскийDocumentId

        строка необязательна

        Хром 106+

        UUID родительского документа, владеющего этим кадром. Это не установлено, если нет родителя.

      • родительскийFrameId

        число

        Идентификатор кадра, который заключает в себе кадр, отправивший запрос. Установите значение -1, если родительский фрейм не существует.

      • идентификатор запроса

        нить

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

      • Заголовки ответа

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

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

      • StatusCode

        число

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

      • Статусная линия

        нить

        Строка состояния http ответа или строка «HTTP/0,9 200 OK 'для ответов HTTP/0,9 (то есть ответов, в которых отсутствует линия состояния) или пустая строка, если нет заголовков.

      • идентификатор табуляции

        число

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

      • метка времени

        число

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

      • тип

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

      • URL

        нить

  • фильтр
  • reseanfospec

    OnerSporsEStArtEdoptions [] Необязательно

onSendHeaders

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

Запускается непосредственно перед тем, как запрос будет отправлен на сервер (модификации предыдущих обратных вызовов Onbeforesendehders будут видны к моменту запуска Onsendheaders).

Параметры

  • перезвонить

    функция

    Параметр callback выглядит как:

    (details: object)=>void

    • подробности

      объект

      • идентификатор документа

        нить

        Хром 106+

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

      • Жизненный цикл документа
        Хром 106+

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

      • идентификатор кадра

        число

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

      • Хром 106+

        Тип кадра. Запрос произошел в.

      • инициатор

        строка необязательна

        Хром 63+

        Происхождение, где был инициирован запрос. Это не меняется через перенаправления. Если это непрозрачное происхождение, будет использоваться строка «null».

      • метод

        нить

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

      • родительскийDocumentId

        строка необязательна

        Хром 106+

        UUID родительского документа, владеющего этим кадром. Это не установлено, если нет родителя.

      • родительскийFrameId

        число

        Идентификатор кадра, который заключает в себе кадр, отправивший запрос. Установите значение -1, если родительский фрейм не существует.

      • Заголовки запроса

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

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

      • идентификатор запроса

        нить

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

      • идентификатор табуляции

        число

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

      • метка времени

        число

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

      • тип

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

      • URL

        нить

  • фильтр
  • reseanfospec

    Onsendheadersoptions [] Необязательно