Opis
Użyj interfejsu chrome.webRequest API, aby obserwować i analizować ruch oraz przechwytywać, blokować lub modyfikować żądania w trakcie przesyłania.
Uprawnienia
webRequestPlik manifestu
Aby używać interfejsu Web Request API, musisz zadeklarować uprawnienie "webRequest" w manifeście rozszerzenia wraz z niezbędnymi uprawnieniami dotyczącymi hosta. Aby przechwycić żądanie zasobu podrzędnego, rozszerzenie musi mieć dostęp zarówno do żądanego adresu URL, jak i do jego inicjatora. Na przykład:
{
  "name": "My extension",
  ...
  "permissions": [
    "webRequest"
  ],
  "host_permissions": [
    "*://*.google.com/*"
  ],
  ...
}
Od Chrome 108 możesz asynchronicznie podawać dane logowania w przypadku zdarzeń onAuthRequired, jeśli używasz uprawnień "webRequest" i "webRequestAuthProvider".
Cykl życia żądań
Interfejs Web Request API definiuje zestaw zdarzeń, które następują po sobie w cyklu życia żądania internetowego. Możesz używać tych zdarzeń do obserwowania i analizowania ruchu. Niektóre zdarzenia synchroniczne umożliwiają przechwytywanie, blokowanie lub modyfikowanie żądania.
Cykl życia zdarzenia w przypadku żądań zakończonych powodzeniem przedstawiono poniżej, a następnie podano definicje zdarzeń:

- onBeforeRequest(opcjonalnie synchroniczne)
- Uruchamiane, gdy ma nastąpić wysłanie żądania. To zdarzenie jest wysyłane przed nawiązaniem połączenia TCP i może służyć do anulowania lub przekierowywania żądań.
- onBeforeSendHeaders(opcjonalnie synchroniczne)
- Uruchamia się, gdy ma nastąpić wysłanie żądania i przygotowane zostały nagłówki początkowe. To zdarzenie ma umożliwiać rozszerzeniom dodawanie, modyfikowanie i usuwanie nagłówków żądań (*). Zdarzenie onBeforeSendHeadersjest przekazywane do wszystkich subskrybentów, więc różni subskrybenci mogą próbować modyfikować żądanie. W sekcji Szczegóły implementacji znajdziesz informacje o tym, jak to jest obsługiwane. To zdarzenie może służyć do anulowania prośby.
- onSendHeaders
- Wywoływane po tym, jak wszystkie rozszerzenia zmodyfikują nagłówki żądania. Zawiera ostateczną wersję (*). Zdarzenie jest wywoływane przed wysłaniem nagłówków do sieci. To zdarzenie ma charakter informacyjny i jest obsługiwane asynchronicznie. Nie można jej modyfikować ani anulować.
- onHeadersReceived(opcjonalnie synchroniczne)
- Uruchamia się za każdym razem, gdy zostanie odebrany nagłówek odpowiedzi HTTP(S). Ze względu na przekierowania i żądania uwierzytelniania może się to zdarzyć wielokrotnie w przypadku jednego żądania. To zdarzenie umożliwia rozszerzeniom dodawanie, modyfikowanie i usuwanie nagłówków odpowiedzi, takich jak przychodzące nagłówki Content-Type. Dyrektywy buforowania są przetwarzane przed wywołaniem tego zdarzenia, więc modyfikowanie nagłówków, takich jak Cache-Control, nie ma wpływu na pamięć podręczną przeglądarki. Umożliwia też anulowanie lub przekierowanie żądania.
- onAuthRequired(opcjonalnie synchroniczne)
- Występuje, gdy żądanie wymaga uwierzytelnienia użytkownika. To zdarzenie może być obsługiwane synchronicznie, aby dostarczać dane uwierzytelniające. Pamiętaj, że rozszerzenia mogą podawać nieprawidłowe dane logowania. Uważaj, aby nie wpaść w nieskończoną pętlę, wielokrotnie podając nieprawidłowe dane logowania. Możesz też użyć tej opcji, aby anulować prośbę.
- onBeforeRedirect
- Wywoływane, gdy ma nastąpić przekierowanie. Przekierowanie może być wywołane przez kod odpowiedzi HTTP lub przez rozszerzenie. To zdarzenie ma charakter informacyjny i jest obsługiwane asynchronicznie. Nie możesz modyfikować ani anulować prośby.
- onResponseStarted
- Wywoływane, gdy zostanie odebrany pierwszy bajt treści odpowiedzi. W przypadku żądań HTTP oznacza to, że dostępne są wiersz stanu i nagłówki odpowiedzi. To zdarzenie ma charakter informacyjny i jest obsługiwane asynchronicznie. Nie można jej modyfikować ani anulować.
- onCompleted
- Wywoływany, gdy żądanie zostało przetworzone.
- onErrorOccurred
- Wywoływane, gdy nie udało się przetworzyć żądania.
Interfejs Web Request API gwarantuje, że w przypadku każdego żądania jako zdarzenie końcowe zostanie wywołane zdarzenie onCompleted lub onErrorOccurred. Wyjątkiem jest sytuacja, w której żądanie zostanie przekierowane na adres URL data://. W takim przypadku ostatnim zgłoszonym zdarzeniem będzie onBeforeRedirect.
* Pamiętaj, że interfejs API żądań internetowych przedstawia rozszerzeniu abstrakcję stosu sieciowego. Wewnętrznie jedno żądanie adresu URL może zostać podzielone na kilka żądań HTTP (np. w celu pobrania poszczególnych zakresów bajtów z dużego pliku) lub może być obsługiwane przez stos sieciowy bez komunikacji z siecią. Z tego powodu interfejs API nie udostępnia końcowych nagłówków HTTP, które są wysyłane do sieci. Na przykład wszystkie nagłówki związane z pamięcią podręczną są niewidoczne dla rozszerzenia.
Te nagłówki nie są obecnie przekazywane do zdarzenia onBeforeSendHeaders. Nie gwarantujemy, że ta lista jest kompletna lub stabilna.
- Autoryzacja
- Cache-Control
- Połączenie
- Content-Length
- Host
- If-Modified-Since
- If-None-Match
- If-Range
- Partial-Data
- Pragma
- Proxy-Authorization
- Proxy-Connection
- Transfer-Encoding
Od Chrome 79 modyfikacje nagłówka żądania wpływają na sprawdzanie współdzielenia zasobów między serwerami z różnych domen (CORS). Jeśli zmodyfikowane nagłówki żądań dotyczących zasobów z innej domeny nie spełniają kryteriów, spowoduje to wysłanie procesu wstępnego CORS z pytaniem do serwera, czy takie nagłówki mogą zostać zaakceptowane. Jeśli musisz zmodyfikować nagłówki w sposób naruszający protokół CORS, musisz określić 'extraHeaders' w opt_extraInfoSpec. Z drugiej strony modyfikacje nagłówków odpowiedzi nie działają w przypadku oszukiwania sprawdzania CORS. Jeśli chcesz oszukać protokół CORS, musisz też określić 'extraHeaders' w przypadku modyfikacji odpowiedzi.
Od Chrome w wersji 79 interfejs webRequest nie przechwytuje domyślnie żądań wstępnych CORS ani odpowiedzi na nie. Proces wstępny CORS dla adresu URL żądania jest widoczny dla rozszerzenia, jeśli w przypadku tego adresu URL istnieje odbiornik z wartością 'extraHeaders' określoną w parametrze opt_extraInfoSpec.
onBeforeRequest może też pobierać 'extraHeaders' z Chrome 79.
Od Chrome 79 ten nagłówek żądania nie jest podawany i nie można go modyfikować ani usuwać bez określenia 'extraHeaders' w opt_extraInfoSpec:
- Punkt początkowy
Od Chrome 72, jeśli chcesz modyfikować odpowiedzi, zanim Cross Origin Read Blocking (CORB) zablokuje odpowiedź, musisz określić 'extraHeaders' w opt_extraInfoSpec.
Od Chrome 72 te nagłówki żądań nie są udostępniane i nie można ich modyfikować ani usuwać bez określenia 'extraHeaders' w opt_extraInfoSpec:
- Accept-Language
- Accept-Encoding
- Referer
- Plik cookie
Od Chrome 72 nagłówek odpowiedzi Set-Cookie nie jest podawany i nie można go modyfikować ani usuwać bez określenia 'extraHeaders' w opt_extraInfoSpec.
Od Chrome 89 nie można skutecznie modyfikować ani usuwać nagłówka odpowiedzi X-Frame-Options bez określenia 'extraHeaders' w opt_extraInfoSpec.
Interfejs webRequest API udostępnia tylko żądania, które rozszerzenie ma uprawnienia do wyświetlania na podstawie uprawnień hosta. Ponadto dostępne są tylko te schematy: http://, https://, ftp://, file://, ws:// (od Chrome 58), wss:// (od Chrome 58), urn: (od Chrome 91) lub chrome-extension://. Ponadto ukrywane są nawet niektóre żądania z adresami URL korzystającymi z jednego z powyższych schematów. Obejmują one chrome-extension://other_extension_id, gdzie other_extension_id nie jest identyfikatorem rozszerzenia, które ma obsłużyć żądanie, https://www.google.com/chrome i inne wrażliwe żądania związane z podstawowymi funkcjami przeglądarki. Synchroniczne żądania XMLHttpRequests z rozszerzenia są też ukrywane przed blokującymi modułami obsługi zdarzeń, aby zapobiec zakleszczeniom. Pamiętaj, że w przypadku niektórych obsługiwanych schematów zestaw dostępnych zdarzeń może być ograniczony ze względu na charakter odpowiedniego protokołu. Na przykład w przypadku schematu pliku można wysyłać tylko onBeforeRequest, onResponseStarted, onCompleted i onErrorOccurred.
Od Chrome 58 interfejs webRequest API obsługuje przechwytywanie żądania uzgodnienia połączenia WebSocket. Uzgadnianie połączenia odbywa się za pomocą żądania uaktualnienia HTTP, więc jego przepływ pasuje do modelu webRequest zorientowanego na HTTP. Pamiętaj, że interfejs API nie przechwytuje:
- Poszczególne wiadomości wysyłane przez nawiązane połączenie WebSocket.
- WebSocket zamyka połączenie.
Przekierowania nie są obsługiwane w przypadku żądań WebSocket.
Od Chrome 72 rozszerzenie może przechwycić żądanie tylko wtedy, gdy ma uprawnienia hosta zarówno do żądanego adresu URL, jak i do inicjatora żądania.
Od Chrome w wersji 96 interfejs WebRequest API obsługuje przechwytywanie żądania uzgadniania WebTransport przez HTTP/3. Ponieważ uzgadnianie połączenia odbywa się za pomocą żądania HTTP CONNECT, jego przepływ pasuje do modelu webRequest zorientowanego na HTTP. Uwaga:
- Po nawiązaniu sesji rozszerzenia nie mogą obserwować sesji ani w nią ingerować za pomocą interfejsu WebRequest API.
- Modyfikowanie nagłówków żądania HTTP w onBeforeSendHeadersjest ignorowane.
- Przekierowania i uwierzytelnianie nie są obsługiwane w WebTransport przez HTTP/3.
Pojęcia
Jak wyjaśniono w kolejnych sekcjach, zdarzenia w interfejsie Web Request API używają identyfikatorów żądań. Podczas rejestrowania odbiorników zdarzeń możesz opcjonalnie określić filtry i dodatkowe informacje.
Identyfikatory żądań
Każde żądanie jest identyfikowane za pomocą identyfikatora żądania. Ten identyfikator jest unikalny w ramach sesji przeglądarki i kontekstu rozszerzenia. Pozostaje stały w cyklu życia żądania i może służyć do dopasowywania zdarzeń do tego samego żądania. Pamiętaj, że w przypadku przekierowania HTTP lub uwierzytelniania HTTP kilka żądań HTTP jest mapowanych na 1 żądanie internetowe.
Rejestrowanie detektorów zdarzeń
Aby zarejestrować odbiornik zdarzeń dla żądania internetowego, użyj odmiany zwykłej addListener()
funkcji. Oprócz określenia funkcji wywołania zwrotnego musisz podać argument filtra i możesz podać opcjonalny argument dodatkowych informacji.
3 argumenty funkcji addListener() interfejsu API żądania internetowego mają te definicje:
var callback = function(details) {...};
var filter = {...};
var opt_extraInfoSpec = [...];
Oto przykład nasłuchiwania zdarzenia onBeforeRequest:
chrome.webRequest.onBeforeRequest.addListener(
    callback, filter, opt_extraInfoSpec);
Każde wywołanie addListener() przyjmuje jako pierwszy parametr obowiązkową funkcję wywołania zwrotnego. Ta funkcja wywołania zwrotnego otrzymuje słownik zawierający informacje o bieżącym żądaniu adresu URL. Informacje w tym słowniku zależą od konkretnego typu zdarzenia oraz zawartości opt_extraInfoSpec.
Jeśli opcjonalna tablica opt_extraInfoSpec zawiera ciąg znaków 'blocking' (dozwolony tylko w przypadku określonych zdarzeń), funkcja wywołania zwrotnego jest obsługiwana synchronicznie. Oznacza to, że żądanie jest blokowane do momentu, gdy funkcja wywołania zwrotnego zwróci wartość. W takim przypadku wywołanie zwrotne może zwrócić wartość webRequest.BlockingResponse, która określa dalszy cykl życia żądania. W zależności od kontekstu ta odpowiedź umożliwia anulowanie lub przekierowanie żądania (onBeforeRequest), anulowanie żądania lub zmodyfikowanie nagłówków (onBeforeSendHeaders, onHeadersReceived) oraz anulowanie żądania lub podanie danych uwierzytelniających (onAuthRequired).
Jeśli opcjonalna tablica opt_extraInfoSpec zawiera ciąg 'asyncBlocking' (dozwolony tylko w przypadku onAuthRequired), rozszerzenie może asynchronicznie generować webRequest.BlockingResponse.
Parametr webRequest.RequestFilter filter umożliwia ograniczenie żądań, w przypadku których zdarzenia są wywoływane w różnych wymiarach:
- Adresy URL
- Wzorce adresów URL, np. *://www.google.com/foo*bar.
- Typy
- Typy żądań, takie jak main_frame(dokument wczytywany w ramce najwyższego poziomu),sub_frame(dokument wczytywany w ramce osadzonej) iimage(obraz w witrynie). ZobaczwebRequest.RequestFilter.
- Identyfikator karty
- Identyfikator jednej karty.
- Identyfikator okna
- Identyfikator okna.
W zależności od typu zdarzenia możesz określić ciągi znaków w opt_extraInfoSpec, aby poprosić o dodatkowe informacje o żądaniu. Służy do podawania szczegółowych informacji o danych w żądaniu tylko wtedy, gdy jest to wyraźnie wymagane.
Szczegóły implementacji
Podczas tworzenia rozszerzenia korzystającego z interfejsu API żądań internetowych warto poznać kilka szczegółów implementacji:
web_accessible_resources
Gdy rozszerzenie używa interfejsów API webRequest do przekierowania żądania zasobu publicznego do zasobu, który nie jest dostępny w internecie, jest blokowane i powoduje błąd. Powyższe zasady obowiązują nawet wtedy, gdy zasób, który nie jest dostępny w internecie, należy do rozszerzenia przekierowującego. Aby zadeklarować zasoby do użycia z interfejsami declarativeWebRequest API, w pliku manifestu należy zadeklarować i wypełnić tablicę "web_accessible_resources" zgodnie z dokumentacją tutaj.
Rozwiązywanie konfliktów
W obecnej implementacji interfejsu Web Request API żądanie jest uznawane za anulowane, jeśli co najmniej jedno rozszerzenie wyda polecenie anulowania żądania. Jeśli rozszerzenie anuluje żądanie, wszystkie rozszerzenia otrzymają powiadomienie w postaci zdarzenia onErrorOccurred. Tylko 1 rozszerzenie może przekierować żądanie lub zmodyfikować nagłówek w danym momencie. Jeśli więcej niż jedno rozszerzenie próbuje zmodyfikować żądanie, wygrywa rozszerzenie zainstalowane jako ostatnie, a wszystkie pozostałe są ignorowane. Rozszerzenie nie otrzymuje powiadomienia, jeśli jego instrukcja modyfikacji lub przekierowania została zignorowana.
Pamięć podręczna
Chrome korzysta z 2 rodzajów pamięci podręcznej: na dysku i bardzo szybkiej w pamięci. Czas przechowywania pamięci podręcznej w pamięci jest powiązany z czasem przechowywania procesu renderowania, który w przybliżeniu odpowiada karcie.
Żądania, na które odpowiada pamięć podręczna, są niewidoczne dla interfejsu Web Request API. Jeśli moduł obsługi żądań zmieni swoje działanie (np. sposób blokowania żądań), proste odświeżenie strony może nie uwzględnić tej zmiany. Aby mieć pewność, że zmiana zachowania zostanie wprowadzona, wywołaj funkcję handlerBehaviorChanged(), aby wyczyścić pamięć podręczną. Nie rób tego jednak zbyt często, ponieważ czyszczenie pamięci podręcznej jest bardzo kosztowną operacją. Po zarejestrowaniu lub wyrejestrowaniu detektora zdarzeń nie musisz wywoływać funkcji
handlerBehaviorChanged().
Sygnatury czasowe
Właściwość timestamp zdarzeń żądań internetowych jest gwarantowana tylko w zakresie wewnętrznej spójności.
Porównanie jednego zdarzenia z innym da prawidłowe przesunięcie między nimi, ale porównanie ich z bieżącym czasem w rozszerzeniu (np. za pomocą (new Date()).getTime()) może dać nieoczekiwane wyniki.
Obsługa błędów
Jeśli spróbujesz zarejestrować zdarzenie z nieprawidłowymi argumentami, zostanie zgłoszony błąd JavaScriptu, a procedura obsługi zdarzeń nie zostanie zarejestrowana. Jeśli podczas obsługi zdarzenia wystąpi błąd lub jeśli funkcja obsługi zdarzeń zwróci nieprawidłową odpowiedź blokującą, w konsoli rozszerzenia zostanie zarejestrowany komunikat o błędzie, a funkcja obsługi zostanie zignorowana w przypadku tego żądania.
Przykłady
Ten przykład pokazuje, jak zablokować wszystkie żądania do www.evil.com:
chrome.webRequest.onBeforeRequest.addListener(
  function(details) {
    return {cancel: details.url.indexOf("://www.evil.com/") != -1};
  },
  {urls: ["<all_urls>"]},
  ["blocking"]
);
Ta funkcja korzysta z blokującego modułu obsługi zdarzeń, dlatego w pliku manifestu wymaga uprawnień "webRequest" i "webRequestBlocking".
Poniższy przykład pozwala osiągnąć ten sam cel w bardziej efektywny sposób, ponieważ żądania, które nie są kierowane na www.evil.com, nie muszą być przekazywane do rozszerzenia:
chrome.webRequest.onBeforeRequest.addListener(
  function(details) { return {cancel: true}; },
  {urls: ["*://www.evil.com/*"]},
  ["blocking"]
);
Ten przykład pokazuje, jak usunąć nagłówek klienta użytkownika ze wszystkich żądań:
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"]
);
Aby wypróbować interfejs chrome.webRequest API, zainstaluj przykładowy kod webRequest z repozytorium chrome-extension-samples.
Typy
BlockingResponse
Zwraca wartość dla funkcji obsługi zdarzeń, do których zastosowano parametr extraInfoSpec „blocking”. Umożliwia modułowi obsługi zdarzeń modyfikowanie żądań sieciowych.
Właściwości
- 
    authCredentialsobiekt opcjonalny Używana tylko w odpowiedzi na zdarzenie onAuthRequired. Jeśli to ustawienie jest włączone, żądanie jest wysyłane przy użyciu podanych danych logowania. - 
    hasłociąg znaków 
- 
    nazwa użytkownikaciąg znaków 
 
- 
    
- 
    anulujwartość logiczna opcjonalna Jeśli wartość to „true”, żądanie zostanie anulowane. Zapobiega to wysłaniu prośby. Może być używana jako odpowiedź na zdarzenia onBeforeRequest, onBeforeSendHeaders, onHeadersReceived i onAuthRequired. 
- 
    redirectUrlstring opcjonalny Używane tylko jako odpowiedź na zdarzenia onBeforeRequest i onHeadersReceived. Jeśli ta opcja jest ustawiona, pierwotne żądanie nie zostanie wysłane ani zrealizowane, tylko przekierowane na podany adres URL. Przekierowania do schematów innych niż HTTP, np. data:, są dozwolone. Przekierowania zainicjowane przez działanie przekierowania używają oryginalnej metody żądania, z jednym wyjątkiem: jeśli przekierowanie zostanie zainicjowane na etapie onHeadersReceived, zostanie ono wysłane przy użyciu metody GET. Przekierowania z adresów URL ze schematamiws://iwss://są ignorowane.
- 
    requestHeadersHttpHeaders opcjonalny Używane tylko w odpowiedzi na zdarzenie onBeforeSendHeaders. Jeśli to pole jest ustawione, żądanie jest wysyłane z tymi nagłówkami. 
- 
    responseHeadersHttpHeaders opcjonalny Używane tylko jako odpowiedź na zdarzenie onHeadersReceived. Jeśli jest ustawiony, zakłada się, że serwer odpowiedział za pomocą tych nagłówków odpowiedzi. Zwróć tylko responseHeaders, jeśli naprawdę chcesz zmodyfikować nagłówki, aby ograniczyć liczbę konfliktów (tylko jedno rozszerzenie może modyfikowaćresponseHeadersw przypadku każdego żądania).
FormDataItem
Zawiera dane przekazywane w danych formularza. W przypadku formularza zakodowanego w formacie URL dane są przechowywane jako ciąg znaków, jeśli są ciągiem znaków UTF-8, a w innych przypadkach jako ArrayBuffer. W przypadku danych formularza jest to ArrayBuffer. Jeśli dane formularza reprezentują przesyłanie pliku, jest to ciąg znaków z nazwą pliku, jeśli została ona podana.
Typ wyliczeniowy
ArrayBuffer
ciąg znaków
HttpHeaders
Tablica nagłówków HTTP. Każdy nagłówek jest reprezentowany jako słownik zawierający klucze name oraz value lub binaryValue.
Typ
object[]
Właściwości
- 
    binaryValuenumber[] opcjonalny Wartość nagłówka HTTP, jeśli nie można jej przedstawić w formacie UTF-8, przechowywana jako poszczególne wartości bajtów (0–255). 
- 
    nazwaciąg znaków Nazwa nagłówka HTTP. 
- 
    wartośćstring opcjonalny Wartość nagłówka HTTP, jeśli można ją przedstawić w formacie UTF-8. 
IgnoredActionType
Typ wyliczeniowy
„redirect” 
 
„request_headers” 
 
„response_headers” 
 
"auth_credentials" 
 
OnAuthRequiredOptions
Typ wyliczeniowy
„responseHeaders” 
 Określa, że nagłówki odpowiedzi powinny być uwzględnione w wydarzeniu.
„blocking” 
 Określa, że żądanie jest blokowane do momentu, gdy funkcja wywołania zwrotnego zwróci wartość.
"asyncBlocking" 
 Określa, że funkcja wywołania zwrotnego jest obsługiwana asynchronicznie.
„extraHeaders” 
 Określa, że nagłówki mogą naruszać współdzielenie zasobów między serwerami z różnych domen (CORS).
OnBeforeRedirectOptions
Typ wyliczeniowy
„responseHeaders” 
 Określa, że nagłówki odpowiedzi powinny być uwzględnione w wydarzeniu.
„extraHeaders” 
 Określa, że nagłówki mogą naruszać współdzielenie zasobów między serwerami z różnych domen (CORS).
OnBeforeRequestOptions
Typ wyliczeniowy
„blocking” 
 Określa, że żądanie jest blokowane do momentu, gdy funkcja wywołania zwrotnego zwróci wartość.
„requestBody” 
 Określa, że treść żądania powinna być uwzględniona w zdarzeniu.
„extraHeaders” 
 Określa, że nagłówki mogą naruszać współdzielenie zasobów między serwerami z różnych domen (CORS).
OnBeforeSendHeadersOptions
Typ wyliczeniowy
„requestHeaders” 
 Określa, że nagłówek żądania powinien być uwzględniony w zdarzeniu.
„blocking” 
 Określa, że żądanie jest blokowane do momentu, gdy funkcja wywołania zwrotnego zwróci wartość.
„extraHeaders” 
 Określa, że nagłówki mogą naruszać współdzielenie zasobów między serwerami z różnych domen (CORS).
OnCompletedOptions
Typ wyliczeniowy
„responseHeaders” 
 Określa, że nagłówki odpowiedzi powinny być uwzględnione w wydarzeniu.
„extraHeaders” 
 Określa, że nagłówki mogą naruszać współdzielenie zasobów między serwerami z różnych domen (CORS).
OnErrorOccurredOptions
Wartość
„extraHeaders” 
 
OnHeadersReceivedOptions
Typ wyliczeniowy
„blocking” 
 Określa, że żądanie jest blokowane do momentu, gdy funkcja wywołania zwrotnego zwróci wartość.
„responseHeaders” 
 Określa, że nagłówki odpowiedzi powinny być uwzględnione w wydarzeniu.
„extraHeaders” 
 Określa, że nagłówki mogą naruszać współdzielenie zasobów między serwerami z różnych domen (CORS).
OnResponseStartedOptions
Typ wyliczeniowy
„responseHeaders” 
 Określa, że nagłówki odpowiedzi powinny być uwzględnione w wydarzeniu.
„extraHeaders” 
 Określa, że nagłówki mogą naruszać współdzielenie zasobów między serwerami z różnych domen (CORS).
OnSendHeadersOptions
Typ wyliczeniowy
„requestHeaders” 
 Określa, że nagłówek żądania powinien być uwzględniony w zdarzeniu.
„extraHeaders” 
 Określa, że nagłówki mogą naruszać współdzielenie zasobów między serwerami z różnych domen (CORS).
RequestFilter
Obiekt opisujący filtry, które mają być stosowane do zdarzeń webRequest.
Właściwości
- 
    tabIdnumber opcjonalny 
- 
    typyResourceType[] opcjonalnie Lista typów żądań. Żądania, które nie pasują do żadnego z tych typów, zostaną odfiltrowane. 
- 
    adresystring[] Lista adresów URL lub wzorców adresów URL. Żądania, które nie pasują do żadnego z adresów URL, zostaną odfiltrowane. 
- 
    windowIdnumber opcjonalny 
ResourceType
Typ wyliczeniowy
„main_frame” 
 Określa zasób jako główną ramkę.
„sub_frame” 
 Określa zasób jako ramkę podrzędną.
„stylesheet” 
 Określa zasób jako arkusz stylów.
„script” 
 Określa zasób jako skrypt.
„image” 
 Określa zasób jako obraz.
„font” 
 Określa zasób jako czcionkę.
„object” 
 Określa zasób jako obiekt.
„xmlhttprequest” 
 Określa zasób jako XMLHttpRequest.
„ping” 
 Określa zasób jako ping.
„csp_report” 
 Określa zasób jako raport Content Security Policy (CSP).
„media” 
 Określa zasób jako obiekt multimedialny.
„websocket” 
 Określa zasób jako WebSocket.
„webbundle” 
 Określa zasób jako pakiet internetowy.
„other” 
 Określa zasób jako typ nieujęty na liście.
UploadData
Zawiera dane przesłane w żądaniu adresu URL.
Właściwości
- 
    Bdowolny opcjonalny Obiekt ArrayBuffer z kopią danych. 
- 
    plikstring opcjonalny Ciąg znaków ze ścieżką i nazwą pliku. 
Właściwości
MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES
Maksymalna liczba wywołań funkcji handlerBehaviorChanged w ciągu 10-minutowego przedziału czasu. handlerBehaviorChanged to kosztowne wywołanie funkcji, którego nie należy często używać.
Wartość
20 
 
Metody
handlerBehaviorChanged()
chrome.webRequest.handlerBehaviorChanged(
callback?: function,
): Promise<void>
Należy wywołać, gdy zmieni się zachowanie modułów obsługi webRequest, aby zapobiec nieprawidłowemu przetwarzaniu z powodu buforowania. Wywołanie tej funkcji jest kosztowne. Nie dzwoń często.
Parametry
- 
    callbackfunkcja opcjonalna Parametr callbackwygląda tak:() => void 
Zwroty
- 
            Promise<void> Chrome 116 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych. 
Wydarzenia
onActionIgnored
chrome.webRequest.onActionIgnored.addListener(
callback: function,
)
Wywoływane, gdy proponowana przez rozszerzenie modyfikacja żądania sieciowego jest ignorowana. Dzieje się tak w przypadku konfliktów z innymi rozszerzeniami.
Parametry
- 
    callbackfunkcja Parametr callbackwygląda tak:(details: object) => void - 
    szczegółyobiekt - 
    działanieProponowane działanie, które zostało zignorowane. 
- 
    requestIdciąg znaków Identyfikator żądania. Identyfikatory żądań są unikalne w ramach sesji przeglądarki. Dzięki temu można je wykorzystać do powiązania różnych zdarzeń w ramach tego samego żądania. 
 
- 
    
 
- 
    
onAuthRequired
chrome.webRequest.onAuthRequired.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnAuthRequiredOptions[],
)
Wywoływane, gdy wystąpi błąd uwierzytelniania. Odbiorca ma 3 opcje: może podać dane logowania, anulować prośbę i wyświetlić stronę z błędem lub nie podejmować żadnych działań w odpowiedzi na wyzwanie. Jeśli podano nieprawidłowe dane logowania użytkownika, funkcja może być wywoływana wielokrotnie w przypadku tego samego żądania. Pamiętaj, że w parametrze extraInfoSpec należy określić tylko jeden z trybów 'blocking' lub 'asyncBlocking'.
Parametry
- 
    callbackfunkcja Parametr callbackwygląda tak:(details: object, asyncCallback?: function) => BlockingResponse | undefined - 
    szczegółyobiekt - 
    pretendentobiekt Serwer, który prosi o uwierzytelnienie. - 
    hostciąg znaków 
- 
    portliczba 
 
- 
    
- 
    documentIdciąg znaków Chrome 106 lub nowszaIdentyfikator UUID dokumentu, który wysyła żądanie. 
- 
    documentLifecycleChrome 106 lub nowszaCykl życia dokumentu. 
- 
    frameIdliczba Wartość 0 oznacza, że żądanie jest wysyłane w głównej ramce, a wartość dodatnia oznacza identyfikator ramki podrzędnej, w której jest wysyłane żądanie. Jeśli dokument (pod)ramki jest wczytany ( typetomain_framelubsub_frame),frameIdwskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie karty.
- 
    frameTypeChrome 106 lub nowszaTyp ramki, w której wystąpiło żądanie. 
- 
    inicjator,string opcjonalny Chrome w wersji 63 lub nowszejPochodzenie, z którego zostało zainicjowane żądanie. Nie zmienia się on w przypadku przekierowań. Jeśli jest to nieprzezroczyste źródło, używany jest ciąg znaków „null”. 
- 
    isProxyWartość logiczna Wartość „true” w przypadku nagłówka Proxy-Authenticate, a „false” w przypadku nagłówka WWW-Authenticate. 
- 
    methodciąg znaków Standardowa metoda HTTP. 
- 
    parentDocumentIdstring opcjonalny Chrome 106 lub nowszaIdentyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Jeśli nie ma elementu nadrzędnego, ta wartość nie jest ustawiona. 
- 
    parentFrameIdliczba Identyfikator ramki, która zawiera ramkę wysyłającą żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1. 
- 
    obszarstring opcjonalny Obszar uwierzytelniania udostępniony przez serwer (jeśli taki istnieje). 
- 
    requestIdciąg znaków Identyfikator żądania. Identyfikatory żądań są unikalne w ramach sesji przeglądarki. Dzięki temu można je wykorzystać do powiązania różnych zdarzeń w ramach tego samego żądania. 
- 
    responseHeadersHttpHeaders opcjonalny Nagłówki odpowiedzi HTTP, które zostały otrzymane wraz z tą odpowiedzią. 
- 
    schematciąg znaków Schemat uwierzytelniania, np. Basic lub Digest. 
- 
    statusCodeliczba Chrome 43 lub nowszyStandardowy kod stanu HTTP zwrócony przez serwer. 
- 
    statusLineciąg znaków Wiersz stanu HTTP odpowiedzi lub ciąg znaków „HTTP/0.9 200 OK” w przypadku odpowiedzi HTTP/0.9 (czyli odpowiedzi bez wiersza stanu) lub pusty ciąg znaków, jeśli nie ma nagłówków. 
- 
    tabIdliczba Identyfikator karty, na której następuje żądanie. Ustaw wartość -1, jeśli żądanie nie jest powiązane z kartą. 
- 
    timeStampliczba Czas wywołania tego sygnału w milisekundach od początku epoki. 
- 
    typSposób wykorzystania żądanego zasobu. 
- 
    URLciąg znaków 
 
- 
    
- 
    asyncCallbackfunkcja opcjonalna Chrome 58 lub nowszyParametr asyncCallbackwygląda tak:(response: BlockingResponse) => void - 
    odpowiedź
 
- 
    
 - 
            returnsBlockingResponse | undefined Jeśli w parametrze „extraInfoSpec” określono wartość „blocking”, detektor zdarzeń powinien zwrócić obiekt tego typu. 
 
- 
    
- 
    filtr
- 
    extraInfoSpecOnAuthRequiredOptions[] opcjonalnie 
onBeforeRedirect
chrome.webRequest.onBeforeRedirect.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeRedirectOptions[],
)
Uruchamiane, gdy ma nastąpić przekierowanie zainicjowane przez serwer.
Parametry
- 
    callbackfunkcja Parametr callbackwygląda tak:(details: object) => void - 
    szczegółyobiekt - 
    documentIdciąg znaków Chrome 106 lub nowszaIdentyfikator UUID dokumentu, który wysyła żądanie. 
- 
    documentLifecycleChrome 106 lub nowszaCykl życia dokumentu. 
- 
    frameIdliczba Wartość 0 oznacza, że żądanie jest wysyłane w głównej ramce, a wartość dodatnia oznacza identyfikator ramki podrzędnej, w której jest wysyłane żądanie. Jeśli dokument (pod)ramki jest wczytany ( typetomain_framelubsub_frame),frameIdwskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie karty.
- 
    frameTypeChrome 106 lub nowszaTyp ramki, w której wystąpiło żądanie. 
- 
    fromCacheWartość logiczna Wskazuje, czy ta odpowiedź została pobrana z pamięci podręcznej na dysku. 
- 
    inicjator,string opcjonalny Chrome w wersji 63 lub nowszejPochodzenie, z którego zostało zainicjowane żądanie. Nie zmienia się on w przypadku przekierowań. Jeśli jest to nieprzezroczyste źródło, używany jest ciąg znaków „null”. 
- 
    ipstring opcjonalny Adres IP serwera, do którego zostało wysłane żądanie. Może to być dosłowny adres IPv6. 
- 
    methodciąg znaków Standardowa metoda HTTP. 
- 
    parentDocumentIdstring opcjonalny Chrome 106 lub nowszaIdentyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Jeśli nie ma elementu nadrzędnego, ta wartość nie jest ustawiona. 
- 
    parentFrameIdliczba Identyfikator ramki, która zawiera ramkę wysyłającą żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1. 
- 
    redirectUrlciąg znaków Nowy adres URL. 
- 
    requestIdciąg znaków Identyfikator żądania. Identyfikatory żądań są unikalne w ramach sesji przeglądarki. Dzięki temu można je wykorzystać do powiązania różnych zdarzeń w ramach tego samego żądania. 
- 
    responseHeadersHttpHeaders opcjonalny Nagłówki odpowiedzi HTTP, które zostały odebrane wraz z tym przekierowaniem. 
- 
    statusCodeliczba Standardowy kod stanu HTTP zwrócony przez serwer. 
- 
    statusLineciąg znaków Wiersz stanu HTTP odpowiedzi lub ciąg znaków „HTTP/0.9 200 OK” w przypadku odpowiedzi HTTP/0.9 (czyli odpowiedzi bez wiersza stanu) lub pusty ciąg znaków, jeśli nie ma nagłówków. 
- 
    tabIdliczba Identyfikator karty, na której następuje żądanie. Ustaw wartość -1, jeśli żądanie nie jest powiązane z kartą. 
- 
    timeStampliczba Czas wywołania tego sygnału w milisekundach od początku epoki. 
- 
    typSposób wykorzystania żądanego zasobu. 
- 
    URLciąg znaków 
 
- 
    
 
- 
    
- 
    filtr
- 
    extraInfoSpecOnBeforeRedirectOptions[] opcjonalnie 
onBeforeRequest
chrome.webRequest.onBeforeRequest.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeRequestOptions[],
)
Uruchamiane, gdy ma nastąpić wysłanie żądania.
Parametry
- 
    callbackfunkcja Parametr callbackwygląda tak:(details: object) => BlockingResponse | undefined - 
    szczegółyobiekt - 
    documentIdstring opcjonalny Chrome 106 lub nowszaIdentyfikator UUID dokumentu, który wysyła żądanie. 
- 
    documentLifecycleextensionTypes.DocumentLifecycle opcjonalnie Chrome 106 lub nowszaCykl życia dokumentu. 
- 
    frameIdliczba Wartość 0 oznacza, że żądanie jest wysyłane w głównej ramce, a wartość dodatnia oznacza identyfikator ramki podrzędnej, w której jest wysyłane żądanie. Jeśli dokument (pod)ramki jest wczytany ( typetomain_framelubsub_frame),frameIdwskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie karty.
- 
    frameTypeextensionTypes.FrameType opcjonalny Chrome 106 lub nowszaTyp ramki, w której wystąpiło żądanie. 
- 
    inicjator,string opcjonalny Chrome w wersji 63 lub nowszejPochodzenie, z którego zostało zainicjowane żądanie. Nie zmienia się on w przypadku przekierowań. Jeśli jest to nieprzezroczyste źródło, używany jest ciąg znaków „null”. 
- 
    methodciąg znaków Standardowa metoda HTTP. 
- 
    parentDocumentIdstring opcjonalny Chrome 106 lub nowszaIdentyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Jeśli nie ma elementu nadrzędnego, ta wartość nie jest ustawiona. 
- 
    parentFrameIdliczba Identyfikator ramki, która zawiera ramkę wysyłającą żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1. 
- 
    requestBodyobiekt opcjonalny Zawiera dane treści żądania HTTP. Podawane tylko wtedy, gdy extraInfoSpec zawiera „requestBody”. - 
    błądstring opcjonalny Błędy podczas uzyskiwania danych z treści żądania. 
- 
    formDataobiekt opcjonalny Jeśli metoda żądania to POST, a treść jest ciągiem par klucz-wartość zakodowanych w UTF8 jako multipart/form-data lub application/x-www-form-urlencoded, ten słownik jest obecny i dla każdego klucza zawiera listę wszystkich wartości tego klucza. Jeśli dane są innego typu lub są nieprawidłowo sformatowane, słownik nie jest dostępny. Przykładowa wartość tego słownika to {'key': ['value1', 'value2']}. 
- 
    nieprzetworzonyUploadData[] opcjonalny Jeśli metoda żądania to PUT lub POST, a treść nie została jeszcze przeanalizowana w formData, ta tablica zawiera nieprzeanalizowane elementy treści żądania. 
 
- 
    
- 
    requestIdciąg znaków Identyfikator żądania. Identyfikatory żądań są unikalne w ramach sesji przeglądarki. Dzięki temu można je wykorzystać do powiązania różnych zdarzeń w ramach tego samego żądania. 
- 
    tabIdliczba Identyfikator karty, na której następuje żądanie. Ustaw wartość -1, jeśli żądanie nie jest powiązane z kartą. 
- 
    timeStampliczba Czas wywołania tego sygnału w milisekundach od początku epoki. 
- 
    typSposób wykorzystania żądanego zasobu. 
- 
    URLciąg znaków 
 
- 
    
 - 
            returnsBlockingResponse | undefined Jeśli w parametrze „extraInfoSpec” określono wartość „blocking”, detektor zdarzeń powinien zwrócić obiekt tego typu. 
 
- 
    
- 
    filtr
- 
    extraInfoSpecOnBeforeRequestOptions[] opcjonalnie 
onBeforeSendHeaders
chrome.webRequest.onBeforeSendHeaders.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeSendHeadersOptions[],
)
Wywoływane przed wysłaniem żądania HTTP, gdy dostępne są nagłówki żądania. Może to nastąpić po nawiązaniu połączenia TCP z serwerem, ale przed wysłaniem jakichkolwiek danych HTTP.
Parametry
- 
    callbackfunkcja Parametr callbackwygląda tak:(details: object) => BlockingResponse | undefined - 
    szczegółyobiekt - 
    documentIdciąg znaków Chrome 106 lub nowszaIdentyfikator UUID dokumentu, który wysyła żądanie. 
- 
    documentLifecycleChrome 106 lub nowszaCykl życia dokumentu. 
- 
    frameIdliczba Wartość 0 oznacza, że żądanie jest wysyłane w głównej ramce, a wartość dodatnia oznacza identyfikator ramki podrzędnej, w której jest wysyłane żądanie. Jeśli dokument (pod)ramki jest wczytany ( typetomain_framelubsub_frame),frameIdwskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie karty.
- 
    frameTypeChrome 106 lub nowszaTyp ramki, w której wystąpiło żądanie. 
- 
    inicjator,string opcjonalny Chrome w wersji 63 lub nowszejPochodzenie, z którego zostało zainicjowane żądanie. Nie zmienia się on w przypadku przekierowań. Jeśli jest to nieprzezroczyste źródło, używany jest ciąg znaków „null”. 
- 
    methodciąg znaków Standardowa metoda HTTP. 
- 
    parentDocumentIdstring opcjonalny Chrome 106 lub nowszaIdentyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Jeśli nie ma elementu nadrzędnego, ta wartość nie jest ustawiona. 
- 
    parentFrameIdliczba Identyfikator ramki, która zawiera ramkę wysyłającą żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1. 
- 
    requestHeadersHttpHeaders opcjonalny Nagłówki żądania HTTP, które zostaną wysłane wraz z tym żądaniem. 
- 
    requestIdciąg znaków Identyfikator żądania. Identyfikatory żądań są unikalne w ramach sesji przeglądarki. Dzięki temu można je wykorzystać do powiązania różnych zdarzeń w ramach tego samego żądania. 
- 
    tabIdliczba Identyfikator karty, na której następuje żądanie. Ustaw wartość -1, jeśli żądanie nie jest powiązane z kartą. 
- 
    timeStampliczba Czas wywołania tego sygnału w milisekundach od początku epoki. 
- 
    typSposób wykorzystania żądanego zasobu. 
- 
    URLciąg znaków 
 
- 
    
 - 
            returnsBlockingResponse | undefined Jeśli w parametrze „extraInfoSpec” określono wartość „blocking”, detektor zdarzeń powinien zwrócić obiekt tego typu. 
 
- 
    
- 
    filtr
- 
    extraInfoSpecOnBeforeSendHeadersOptions[] opcjonalnie 
onCompleted
chrome.webRequest.onCompleted.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnCompletedOptions[],
)
Uruchamiane po zakończeniu żądania.
Parametry
- 
    callbackfunkcja Parametr callbackwygląda tak:(details: object) => void - 
    szczegółyobiekt - 
    documentIdciąg znaków Chrome 106 lub nowszaIdentyfikator UUID dokumentu, który wysyła żądanie. 
- 
    documentLifecycleChrome 106 lub nowszaCykl życia dokumentu. 
- 
    frameIdliczba Wartość 0 oznacza, że żądanie jest wysyłane w głównej ramce, a wartość dodatnia oznacza identyfikator ramki podrzędnej, w której jest wysyłane żądanie. Jeśli dokument (pod)ramki jest wczytany ( typetomain_framelubsub_frame),frameIdwskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie karty.
- 
    frameTypeChrome 106 lub nowszaTyp ramki, w której wystąpiło żądanie. 
- 
    fromCacheWartość logiczna Wskazuje, czy ta odpowiedź została pobrana z pamięci podręcznej na dysku. 
- 
    inicjator,string opcjonalny Chrome w wersji 63 lub nowszejPochodzenie, z którego zostało zainicjowane żądanie. Nie zmienia się on w przypadku przekierowań. Jeśli jest to nieprzezroczyste źródło, używany jest ciąg znaków „null”. 
- 
    ipstring opcjonalny Adres IP serwera, do którego zostało wysłane żądanie. Może to być dosłowny adres IPv6. 
- 
    methodciąg znaków Standardowa metoda HTTP. 
- 
    parentDocumentIdstring opcjonalny Chrome 106 lub nowszaIdentyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Jeśli nie ma elementu nadrzędnego, ta wartość nie jest ustawiona. 
- 
    parentFrameIdliczba Identyfikator ramki, która zawiera ramkę wysyłającą żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1. 
- 
    requestIdciąg znaków Identyfikator żądania. Identyfikatory żądań są unikalne w ramach sesji przeglądarki. Dzięki temu można je wykorzystać do powiązania różnych zdarzeń w ramach tego samego żądania. 
- 
    responseHeadersHttpHeaders opcjonalny Nagłówki odpowiedzi HTTP, które zostały otrzymane wraz z tą odpowiedzią. 
- 
    statusCodeliczba Standardowy kod stanu HTTP zwrócony przez serwer. 
- 
    statusLineciąg znaków Wiersz stanu HTTP odpowiedzi lub ciąg znaków „HTTP/0.9 200 OK” w przypadku odpowiedzi HTTP/0.9 (czyli odpowiedzi bez wiersza stanu) lub pusty ciąg znaków, jeśli nie ma nagłówków. 
- 
    tabIdliczba Identyfikator karty, na której następuje żądanie. Ustaw wartość -1, jeśli żądanie nie jest powiązane z kartą. 
- 
    timeStampliczba Czas wywołania tego sygnału w milisekundach od początku epoki. 
- 
    typSposób wykorzystania żądanego zasobu. 
- 
    URLciąg znaków 
 
- 
    
 
- 
    
- 
    filtr
- 
    extraInfoSpecOnCompletedOptions[] opcjonalnie 
onErrorOccurred
chrome.webRequest.onErrorOccurred.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnErrorOccurredOptions[],
)
Uruchamiane, gdy wystąpi błąd.
Parametry
- 
    callbackfunkcja Parametr callbackwygląda tak:(details: object) => void - 
    szczegółyobiekt - 
    documentIdciąg znaków Chrome 106 lub nowszaIdentyfikator UUID dokumentu, który wysyła żądanie. Ta wartość nie występuje, jeśli żądanie dotyczy nawigacji w ramce. 
- 
    documentLifecycleChrome 106 lub nowszaCykl życia dokumentu. 
- 
    błądciąg znaków Opis błędu. Nie ma gwarancji, że ten ciąg znaków będzie zgodny wstecznie między wersjami. Nie możesz analizować jego treści ani podejmować na ich podstawie działań. 
- 
    frameIdliczba Wartość 0 oznacza, że żądanie jest wysyłane w głównej ramce, a wartość dodatnia oznacza identyfikator ramki podrzędnej, w której jest wysyłane żądanie. Jeśli dokument (pod)ramki jest wczytany ( typetomain_framelubsub_frame),frameIdwskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie karty.
- 
    frameTypeChrome 106 lub nowszaTyp ramki, w której wystąpiło żądanie. 
- 
    fromCacheWartość logiczna Wskazuje, czy ta odpowiedź została pobrana z pamięci podręcznej na dysku. 
- 
    inicjator,string opcjonalny Chrome w wersji 63 lub nowszejPochodzenie, z którego zostało zainicjowane żądanie. Nie zmienia się on w przypadku przekierowań. Jeśli jest to nieprzezroczyste źródło, używany jest ciąg znaków „null”. 
- 
    ipstring opcjonalny Adres IP serwera, do którego zostało wysłane żądanie. Może to być dosłowny adres IPv6. 
- 
    methodciąg znaków Standardowa metoda HTTP. 
- 
    parentDocumentIdstring opcjonalny Chrome 106 lub nowszaIdentyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Jeśli nie ma elementu nadrzędnego, ta wartość nie jest ustawiona. 
- 
    parentFrameIdliczba Identyfikator ramki, która zawiera ramkę wysyłającą żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1. 
- 
    requestIdciąg znaków Identyfikator żądania. Identyfikatory żądań są unikalne w ramach sesji przeglądarki. Dzięki temu można je wykorzystać do powiązania różnych zdarzeń w ramach tego samego żądania. 
- 
    tabIdliczba Identyfikator karty, na której następuje żądanie. Ustaw wartość -1, jeśli żądanie nie jest powiązane z kartą. 
- 
    timeStampliczba Czas wywołania tego sygnału w milisekundach od początku epoki. 
- 
    typSposób wykorzystania żądanego zasobu. 
- 
    URLciąg znaków 
 
- 
    
 
- 
    
- 
    filtr
- 
    extraInfoSpecOnErrorOccurredOptions[] opcjonalnie 
onHeadersReceived
chrome.webRequest.onHeadersReceived.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnHeadersReceivedOptions[],
)
Wysyłane po otrzymaniu nagłówków odpowiedzi HTTP na żądanie.
Parametry
- 
    callbackfunkcja Parametr callbackwygląda tak:(details: object) => BlockingResponse | undefined - 
    szczegółyobiekt - 
    documentIdciąg znaków Chrome 106 lub nowszaIdentyfikator UUID dokumentu, który wysyła żądanie. 
- 
    documentLifecycleChrome 106 lub nowszaCykl życia dokumentu. 
- 
    frameIdliczba Wartość 0 oznacza, że żądanie jest wysyłane w głównej ramce, a wartość dodatnia oznacza identyfikator ramki podrzędnej, w której jest wysyłane żądanie. Jeśli dokument (pod)ramki jest wczytany ( typetomain_framelubsub_frame),frameIdwskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie karty.
- 
    frameTypeChrome 106 lub nowszaTyp ramki, w której wystąpiło żądanie. 
- 
    inicjator,string opcjonalny Chrome w wersji 63 lub nowszejPochodzenie, z którego zostało zainicjowane żądanie. Nie zmienia się on w przypadku przekierowań. Jeśli jest to nieprzezroczyste źródło, używany jest ciąg znaków „null”. 
- 
    methodciąg znaków Standardowa metoda HTTP. 
- 
    parentDocumentIdstring opcjonalny Chrome 106 lub nowszaIdentyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Jeśli nie ma elementu nadrzędnego, ta wartość nie jest ustawiona. 
- 
    parentFrameIdliczba Identyfikator ramki, która zawiera ramkę wysyłającą żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1. 
- 
    requestIdciąg znaków Identyfikator żądania. Identyfikatory żądań są unikalne w ramach sesji przeglądarki. Dzięki temu można je wykorzystać do powiązania różnych zdarzeń w ramach tego samego żądania. 
- 
    responseHeadersHttpHeaders opcjonalny Nagłówki odpowiedzi HTTP, które zostały odebrane wraz z tą odpowiedzią. 
- 
    statusCodeliczba Chrome 43 lub nowszyStandardowy kod stanu HTTP zwrócony przez serwer. 
- 
    statusLineciąg znaków Wiersz stanu HTTP odpowiedzi lub ciąg znaków „HTTP/0.9 200 OK” w przypadku odpowiedzi HTTP/0.9 (czyli odpowiedzi, które nie mają wiersza stanu). 
- 
    tabIdliczba Identyfikator karty, na której następuje żądanie. Ustaw wartość -1, jeśli żądanie nie jest powiązane z kartą. 
- 
    timeStampliczba Czas wywołania tego sygnału w milisekundach od początku epoki. 
- 
    typSposób wykorzystania żądanego zasobu. 
- 
    URLciąg znaków 
 
- 
    
 - 
            returnsBlockingResponse | undefined Jeśli w parametrze „extraInfoSpec” określono wartość „blocking”, detektor zdarzeń powinien zwrócić obiekt tego typu. 
 
- 
    
- 
    filtr
- 
    extraInfoSpecOnHeadersReceivedOptions[] opcjonalnie 
onResponseStarted
chrome.webRequest.onResponseStarted.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnResponseStartedOptions[],
)
Wywoływane po otrzymaniu pierwszego bajtu treści odpowiedzi. W przypadku żądań HTTP oznacza to, że dostępne są wiersz stanu i nagłówki odpowiedzi.
Parametry
- 
    callbackfunkcja Parametr callbackwygląda tak:(details: object) => void - 
    szczegółyobiekt - 
    documentIdciąg znaków Chrome 106 lub nowszaIdentyfikator UUID dokumentu, który wysyła żądanie. 
- 
    documentLifecycleChrome 106 lub nowszaCykl życia dokumentu. 
- 
    frameIdliczba Wartość 0 oznacza, że żądanie jest wysyłane w głównej ramce, a wartość dodatnia oznacza identyfikator ramki podrzędnej, w której jest wysyłane żądanie. Jeśli dokument (pod)ramki jest wczytany ( typetomain_framelubsub_frame),frameIdwskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie karty.
- 
    frameTypeChrome 106 lub nowszaTyp ramki, w której wystąpiło żądanie. 
- 
    fromCacheWartość logiczna Wskazuje, czy ta odpowiedź została pobrana z pamięci podręcznej na dysku. 
- 
    inicjator,string opcjonalny Chrome w wersji 63 lub nowszejPochodzenie, z którego zostało zainicjowane żądanie. Nie zmienia się on w przypadku przekierowań. Jeśli jest to nieprzezroczyste źródło, używany jest ciąg znaków „null”. 
- 
    ipstring opcjonalny Adres IP serwera, do którego zostało wysłane żądanie. Może to być dosłowny adres IPv6. 
- 
    methodciąg znaków Standardowa metoda HTTP. 
- 
    parentDocumentIdstring opcjonalny Chrome 106 lub nowszaIdentyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Jeśli nie ma elementu nadrzędnego, ta wartość nie jest ustawiona. 
- 
    parentFrameIdliczba Identyfikator ramki, która zawiera ramkę wysyłającą żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1. 
- 
    requestIdciąg znaków Identyfikator żądania. Identyfikatory żądań są unikalne w ramach sesji przeglądarki. Dzięki temu można je wykorzystać do powiązania różnych zdarzeń w ramach tego samego żądania. 
- 
    responseHeadersHttpHeaders opcjonalny Nagłówki odpowiedzi HTTP, które zostały otrzymane wraz z tą odpowiedzią. 
- 
    statusCodeliczba Standardowy kod stanu HTTP zwrócony przez serwer. 
- 
    statusLineciąg znaków Wiersz stanu HTTP odpowiedzi lub ciąg znaków „HTTP/0.9 200 OK” w przypadku odpowiedzi HTTP/0.9 (czyli odpowiedzi bez wiersza stanu) lub pusty ciąg znaków, jeśli nie ma nagłówków. 
- 
    tabIdliczba Identyfikator karty, na której następuje żądanie. Ustaw wartość -1, jeśli żądanie nie jest powiązane z kartą. 
- 
    timeStampliczba Czas wywołania tego sygnału w milisekundach od początku epoki. 
- 
    typSposób wykorzystania żądanego zasobu. 
- 
    URLciąg znaków 
 
- 
    
 
- 
    
- 
    filtr
- 
    extraInfoSpecOnResponseStartedOptions[] opcjonalnie 
onSendHeaders
chrome.webRequest.onSendHeaders.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnSendHeadersOptions[],
)
Wywoływana tuż przed wysłaniem żądania do serwera (modyfikacje poprzednich wywołań zwrotnych onBeforeSendHeaders są widoczne w momencie wywołania onSendHeaders).
Parametry
- 
    callbackfunkcja Parametr callbackwygląda tak:(details: object) => void - 
    szczegółyobiekt - 
    documentIdciąg znaków Chrome 106 lub nowszaIdentyfikator UUID dokumentu, który wysyła żądanie. 
- 
    documentLifecycleChrome 106 lub nowszaCykl życia dokumentu. 
- 
    frameIdliczba Wartość 0 oznacza, że żądanie jest wysyłane w głównej ramce, a wartość dodatnia oznacza identyfikator ramki podrzędnej, w której jest wysyłane żądanie. Jeśli dokument (pod)ramki jest wczytany ( typetomain_framelubsub_frame),frameIdwskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie karty.
- 
    frameTypeChrome 106 lub nowszaTyp ramki, w której wystąpiło żądanie. 
- 
    inicjator,string opcjonalny Chrome w wersji 63 lub nowszejPochodzenie, z którego zostało zainicjowane żądanie. Nie zmienia się on w przypadku przekierowań. Jeśli jest to nieprzezroczyste źródło, używany jest ciąg znaków „null”. 
- 
    methodciąg znaków Standardowa metoda HTTP. 
- 
    parentDocumentIdstring opcjonalny Chrome 106 lub nowszaIdentyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Jeśli nie ma elementu nadrzędnego, ta wartość nie jest ustawiona. 
- 
    parentFrameIdliczba Identyfikator ramki, która zawiera ramkę wysyłającą żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1. 
- 
    requestHeadersHttpHeaders opcjonalny Nagłówki żądania HTTP, które zostały wysłane wraz z tym żądaniem. 
- 
    requestIdciąg znaków Identyfikator żądania. Identyfikatory żądań są unikalne w ramach sesji przeglądarki. Dzięki temu można je wykorzystać do powiązania różnych zdarzeń w ramach tego samego żądania. 
- 
    tabIdliczba Identyfikator karty, na której następuje żądanie. Ustaw wartość -1, jeśli żądanie nie jest powiązane z kartą. 
- 
    timeStampliczba Czas wywołania tego sygnału w milisekundach od początku epoki. 
- 
    typSposób wykorzystania żądanego zasobu. 
- 
    URLciąg znaków 
 
- 
    
 
- 
    
- 
    filtr
- 
    extraInfoSpecOnSendHeadersOptions[] opcjonalnie