chrome.webRequest

Описание

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

Разрешения

webRequest

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

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

webRequestBlocking

Требуется для регистрации обработчиков событий блокировки. Начиная с Манифеста версии 3, это доступно только для расширений, установленных политикой.

webRequestAuthProvider

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

Концепции и использование

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

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.

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

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

Обработка аутентификации

Чтобы обрабатывать запросы на HTTP-аутентификацию, добавьте разрешение "webRequestAuthProvider" в файл манифеста:

{
  "permissions": [
    "webRequest",
    "webRequestAuthProvider"
  ]
}

Обратите внимание, что это разрешение не требуется для расширения, установленного политикой, с разрешением "webRequestBlocking" .

Чтобы предоставить учетные данные синхронно:

chrome.webRequest.onAuthRequired.addListener((details) => {
    return {
      authCredentials: {
        username: 'guest',
        password: 'guest'
      }
    };
  },
  { urls: ['https://httpbin.org/basic-auth/guest/guest'] },
  ['blocking']
);

Чтобы предоставить учетные данные асинхронно:

chrome.webRequest.onAuthRequired.addListener((details, callback) => {
    callback({
      authCredentials: {
        username: 'guest',
        password: 'guest'
      }
    });
  },
  { urls: ['https://httpbin.org/basic-auth/guest/guest'] },
  ['asyncBlocking']
);

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

Некоторые детали реализации могут быть важны для понимания при разработке расширения, использующего 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+

    Промисы поддерживаются в Манифесте 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 [] необязательно