chrome.webRequest

refresh date: 2026-09-25 robots: noindex

Opis

Używaj interfejsu API chrome.webRequest, aby obserwować i analizować ruch oraz przechwytywać, blokować lub modyfikować żądania w trakcie ich przesyłania.

Uprawnienia

webRequest

Plik manifestu

Aby używać interfejsu API żądań sieciowych, musisz zadeklarować uprawnienie "webRequest" w pliku manifestu rozszerzenia oraz niezbędne uprawnienia dotyczące 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 wersji Chrome 108 możesz asynchronicznie podawać dane logowania na potrzeby zdarzeń onAuthRequired, jeśli używasz uprawnień "webRequest" i "webRequestAuthProvider".

Cykl życia żądań

Interfejs API żądań sieciowych definiuje zestaw zdarzeń, które następują po cyklu życia żądania sieciowego. Możesz używać tych zdarzeń do obserwowania i analizowania ruchu. Niektóre zdarzenia synchroniczne umożliwiają przechwytywanie, blokowanie lub modyfikowanie żądania.

Poniżej przedstawiamy cykl życia zdarzenia w przypadku żądań zakończonych powodzeniem, a następnie definicje zdarzeń:

Cykl życia żądania sieciowego z perspektywy interfejsu API webrequest

onBeforeRequest (opcjonalnie synchroniczne)
Uruchamia się, gdy ma nastąpić żądanie. To zdarzenie jest wysyłane przed nawiązaniem połączenia TCP i może być używane do anulowania lub przekierowywania żądań.
onBeforeSendHeaders (opcjonalnie synchroniczne)
Uruchamia się, gdy żądanie ma zostać wysłane i przygotowane zostały początkowe nagłówki. Zdarzenie ma umożliwiać rozszerzeniom dodawanie, modyfikowanie i usuwanie nagłówków żądań (*). Zdarzenie onBeforeSendHeaders jest przekazywane wszystkim subskrybentom, więc różni subskrybenci mogą próbować zmodyfikować żądanie. Informacje o tym, jak to jest obsługiwane, znajdziesz w sekcji Szczegóły implementacji. To zdarzenie może służyć do anulowania żądania.
onSendHeaders
Uruchamia się, gdy wszystkie rozszerzenia miały możliwość zmodyfikowania nagłówków żądania, i prezentuje 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 pozwala na modyfikowanie ani anulowanie prośby.
onHeadersReceived (opcjonalnie synchroniczne)
Uruchamia się za każdym razem, gdy zostanie odebrany nagłówek odpowiedzi HTTP(S). Z powodu przekierowań i żądań uwierzytelnienia 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 dotyczące 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)
Uruchamia się, gdy żądanie wymaga uwierzytelnienia użytkownika. To zdarzenie można obsłużyć synchronicznie, aby podać dane uwierzytelniające. Pamiętaj, że rozszerzenia mogą podawać nieprawidłowe dane logowania. Uważaj, aby nie wejść w nieskończoną pętlę, wielokrotnie podając nieprawidłowe dane logowania. Możesz też użyć tej opcji, aby anulować prośbę.
onBeforeRedirect
Uruchamia się, gdy ma nastąpić przekierowanie. Przekierowanie może być wywoływane przez kod odpowiedzi HTTP lub rozszerzenie. To zdarzenie ma charakter informacyjny i jest obsługiwane asynchronicznie. Nie pozwala na modyfikowanie ani anulowanie prośby.
onResponseStarted
Uruchamia się, gdy zostanie odebrany pierwszy bajt treści odpowiedzi. W przypadku żądań HTTP oznacza to, że wiersz stanu i nagłówki odpowiedzi są dostępne. To zdarzenie ma charakter informacyjny i jest obsługiwane asynchronicznie. Nie pozwala na modyfikowanie ani anulowanie prośby.
onCompleted
Uruchamia się, gdy żądanie zostanie przetworzone pomyślnie.
onErrorOccurred
Uruchamia się, gdy nie udało się przetworzyć żądania.

Interfejs API żądań sieciowych gwarantuje, że w przypadku każdego żądania jako ostatnie zdarzenie zostanie wywołane onCompleted lub onErrorOccurred, z jednym wyjątkiem: jeśli żądanie zostanie przekierowane na adres URL data://, ostatnim zgłoszonym zdarzeniem będzie onBeforeRedirect.

* Pamiętaj, że interfejs API żądań sieciowych 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 zostać obsłużone przez stos sieciowy bez komunikacji z siecią. Z tego powodu interfejs API nie udostępnia końcowych nagłówków HTTP wysyłanych do sieci. Na przykład wszystkie nagłówki związane z buforowaniem są niewidoczne dla rozszerzenia.

Te nagłówki nie są obecnie przekazywane do zdarzenia onBeforeSendHeaders. Nie gwarantujemy, że ta lista jest kompletna lub stabilna.

  • Upoważnienie
  • 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 pomiędzy serwerami z różnych domen (CORS). Jeśli zmodyfikowane nagłówki żądań współdzielenia nie spełniają kryteriów, zostanie wysłane żądanie wstępne CORS z pytaniem do serwera, czy takie nagłówki mogą zostać zaakceptowane. Jeśli naprawdę musisz zmodyfikować nagłówki w sposób, który narusza protokół CORS, musisz określić 'extraHeaders' w opt_extraInfoSpec. Z drugiej strony modyfikacje nagłówka odpowiedzi nie działają w przypadku oszukiwania kontroli CORS. Jeśli chcesz oszukać protokół CORS, musisz też określić 'extraHeaders' dla modyfikacji odpowiedzi.

Od Chrome 79 interfejs webRequest API domyślnie nie przechwytuje żądań i odpowiedzi wstępnych CORS. Proces wstępny CORS dla adresu URL żądania jest widoczny dla rozszerzenia, jeśli dla adresu URL żądania istnieje detektor z 'extraHeaders' określonym w opt_extraInfoSpec. onBeforeRequest może też pobierać 'extraHeaders' z Chrome 79.

Od wersji Chrome 79 ten nagłówek żądania nie jest podawany i nie można go zmienić ani usunąć bez określenia 'extraHeaders' w opt_extraInfoSpec:

  • Punkt początkowy

Jeśli od wersji Chrome 72 chcesz modyfikować odpowiedzi, zanim Cross Origin Read Blocking (CORB) je zablokuje, musisz określić 'extraHeaders' w opt_extraInfoSpec.

Od Chrome 72 te nagłówki żądań nie są podawane 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 wersji 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 ujawnia tylko żądania, które rozszerzenie może zobaczyć, biorąc pod uwagę jego uprawnienia 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://. Dodatkowo 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 do obsługi żądania, https://www.google.com/chrome i inne żądania dotyczące poufnych danych, które są kluczowe dla działania przeglądarki. Aby zapobiec zakleszczeniom, synchroniczne żądania XMLHttpRequests z rozszerzenia są ukrywane przed blokującymi modułami obsługi zdarzeń. 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 file: można wysyłać tylko onBeforeRequest, onResponseStarted, onCompleted i onErrorOccurred.

Od wersji Chrome 58 interfejs webRequest API obsługuje przechwytywanie żądań uzgodnienia połączenia WebSocket. Ponieważ uzgadnianie połączenia odbywa się za pomocą żądania uaktualnienia HTTP, jego przepływ pasuje do modelu webRequest zorientowanego na HTTP. Pamiętaj, że interfejs API nie przechwytuje:

  • Poszczególne wiadomości wysyłane przez ustanowione połączenie WebSocket.
  • Zamykanie połączenia WebSocket.

Przekierowania nie są obsługiwane w przypadku żądań WebSocket.

Począwszy od Chrome 72, rozszerzenie będzie mogło przechwycić żądanie tylko wtedy, gdy ma uprawnienia hosta zarówno do żądanego adresu URL, jak i do inicjatora żądania.

Od Chrome 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ą jej obserwować ani w nią ingerować za pomocą interfejsu webRequest API.
  • Modyfikowanie nagłówków żądań HTTP w onBeforeSendHeaders jest ignorowane.
  • Przekierowania i uwierzytelnianie nie są obsługiwane w WebTransport przez HTTP/3.

Pojęcia

Jak wyjaśniono w sekcjach poniżej, zdarzenia w interfejsie Web Request API używają identyfikatorów żądań sieciowych, a podczas rejestrowania detektorów zdarzeń możesz opcjonalnie określić filtry i dodatkowe informacje.

Identyfikatory żądań

Każde żądanie jest identyfikowane przez identyfikator żądania. Ten identyfikator jest unikalny w ramach sesji przeglądarki i kontekstu rozszerzenia. Pozostaje on niezmienny przez cały cykl ż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 jedno żądanie sieciowe.

Rejestrowanie detektorów zdarzeń

Aby zarejestrować detektor zdarzeń dla żądania sieciowego, użyj odmiany zwykłej funkcji addListener(). Oprócz określenia funkcji wywołania zwrotnego musisz podać argument filtra. Możesz też podać opcjonalny argument dodatkowych informacji.

Trzy argumenty interfejsu API żądań sieciowych addListener() mają następujące 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 obowiązkową funkcję wywołania zwrotnego jako pierwszy parametr. Do tej funkcji wywołania zwrotnego przekazywany jest 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, dopóki funkcja wywołania zwrotnego nie zwróci wyniku. W takim przypadku wywołanie zwrotne może zwrócić obiekt webRequest.BlockingResponse, który 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 tekstowy 'asyncBlocking' (dozwolony tylko w przypadku onAuthRequired), rozszerzenie może wygenerować webRequest.BlockingResponse asynchronicznie.

webRequest.RequestFilter filter umożliwia ograniczenie żądań, dla których wywoływane są zdarzenia, w różnych wymiarach:

Adresy URL
Wzorce adresów URL, takie jak *://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 umieszczonej w innym dokumencie) i image (obraz w witrynie). Zobacz: webRequest.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 żądania tylko wtedy, gdy jest to wyraźnie wymagane.

Szczegóły implementacji

Podczas tworzenia rozszerzenia, które korzysta z interfejsu API żądań sieciowych, warto pamiętać o kilku ważnych kwestiach związanych z implementacją:

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 ono 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 API declarativeWebRequest, należy zadeklarować i wypełnić tablicę "web_accessible_resources" w pliku manifestu zgodnie z dokumentacją dostępną tutaj.

Rozwiązywanie konfliktów

W obecnej implementacji interfejsu Web Request API żądanie sieciowe jest uznawane za anulowane, jeśli co najmniej 1 rozszerzenie wyda instrukcję anulowania żądania. Jeśli rozszerzenie anuluje żądanie, wszystkie rozszerzenia zostaną powiadomione zdarzeniem onErrorOccurred. Tylko jedno rozszerzenie może przekierować żądanie lub zmodyfikować nagłówek. Jeśli więcej niż 1 rozszerzenie próbuje zmodyfikować żądanie, zostanie użyte ostatnio zainstalowane rozszerzenie, a pozostałe zostaną zignorowane. Rozszerzenie nie jest powiadamiane, jeśli jego instrukcja modyfikacji lub przekierowania została zignorowana.

Buforowanie

Chrome używa 2 rodzajów pamięci podręcznej – pamięci podręcznej na dysku i bardzo szybkiej pamięci podręcznej pamięci RAM. Czas przechowywania danych w pamięci podręcznej pamięci RAM jest powiązany z czasem trwania procesu renderowania, który w przybliżeniu odpowiada karcie. Żądania, na które odpowiedź pochodzi z pamięci podręcznej pamięci RAM, są niewidoczne dla interfejsu Web Request API. Jeśli moduł obsługi żądań zmieni swoje zachowanie (np. zachowanie, zgodnie z którym żądania są blokowane), proste odświeżenie strony może nie uwzględnić tej zmiany. Aby mieć pewność, że zmiana zachowania zostanie wprowadzona, wywołaj handlerBehaviorChanged(), aby wyczyścić pamięć podręczną pamięci RAM. 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ć metody handlerBehaviorChanged().

Sygnatury czasowe

Właściwość timestamp zdarzeń żądań sieciowych jest spójna tylko wewnętrznie. 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 wygenerowany błąd JavaScriptu, a moduł obsługi zdarzeń nie zostanie zarejestrowany. Jeśli podczas obsługi zdarzenia wystąpi błąd lub moduł obsługi zdarzeń zwróci nieprawidłową odpowiedź blokującą, w konsoli rozszerzenia zostanie zarejestrowany komunikat o błędzie, a moduł obsługi zdarzeń zostanie zignorowany 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 używa blokującego modułu obsługi zdarzeń, dlatego wymaga uprawnień "webRequest" i "webRequestBlocking" w pliku manifestu.

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"]
);

Poniższy przykład pokazuje, jak usunąć nagłówek User-Agent 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 API chrome.webRequest, zainstaluj przykład webRequest z repozytorium chrome-extension-samples.

Typy

BlockingResponse

Zwraca wartość dla modułów obsługi zdarzeń, które mają zastosowaną wartość „blocking” w parametrze extraInfoSpec. Umożliwia modułowi obsługi zdarzeń modyfikowanie żądań sieciowych.

Właściwości

  • authCredentials

    object opcjonalny

    Używane tylko jako odpowiedź na zdarzenie onAuthRequired. Jeśli ta opcja jest ustawiona, żądanie jest wysyłane przy użyciu podanych danych logowania.

    • hasło

      tekst

    • nazwa użytkownika

      tekst

  • anuluj

    boolean opcjonalne

    Jeśli ma wartość „true”, żądanie zostanie anulowane. Zapobiega to wysłaniu żądania. Można go używać jako odpowiedzi na zdarzenia onBeforeRequest, onBeforeSendHeaders, onHeadersReceived i onAuthRequired.

  • redirectUrl

    ciąg znaków opcjonalny

    Używane tylko jako odpowiedź na zdarzenia onBeforeRequest i onHeadersReceived. Jeśli ta opcja jest ustawiona, pierwotne żądanie nie jest wysyłane ani realizowane, ale przekierowywane na podany adres URL. Przekierowania do schematów innych niż HTTP, takich jak data:, są dozwolone. Przekierowania inicjowane przez działanie przekierowania używają pierwotnej metody żądania, z jednym wyjątkiem: jeśli przekierowanie jest inicjowane na etapie onHeadersReceived, zostanie ono wygenerowane przy użyciu metody GET. Przekierowania z adresów URL ze schematami ws:// i wss:// są ignorowane.

  • requestHeaders

    HttpHeaders opcjonalne

    Używane tylko jako odpowiedź na zdarzenie onBeforeSendHeaders. Jeśli ta opcja jest ustawiona, żądanie jest wysyłane z tymi nagłówkami żądania.

  • responseHeaders

    HttpHeaders opcjonalne

    Używane tylko jako odpowiedź na zdarzenie onHeadersReceived. Jeśli ta opcja jest ustawiona, zakłada się, że serwer odpowiedział tymi nagłówkami odpowiedzi. Zwracaj responseHeaders tylko wtedy, gdy naprawdę chcesz zmodyfikować nagłówki, aby ograniczyć liczbę konfliktów (tylko jedno rozszerzenie może zmodyfikować responseHeaders w przypadku każdego żądania).

FormDataItem

Chrome 66 lub nowsza wersja

Zawiera dane przekazywane w danych formularza. W przypadku formularza urlencoded dane są przechowywane jako ciąg znaków, jeśli są ciągiem znaków UTF-8, a w przeciwnym razie jako ArrayBuffer. W przypadku danych formularza jest to ArrayBuffer. Jeśli dane formularza reprezentują przesyłany plik, jest to ciąg znaków z nazwą pliku, o ile została ona podana.

Typ wyliczeniowy

ArrayBuffer

tekst

HttpHeaders

Tablica nagłówków HTTP. Każdy nagłówek jest reprezentowany jako słownik zawierający klucze name i value lub binaryValue.

Typ

object[]

Właściwości

  • binaryValue

    number[] opcjonalny

    Wartość nagłówka HTTP, jeśli nie można jej przedstawić w formacie UTF-8, przechowywana jako pojedyncze wartości bajtów (0..255).

  • nazwa

    tekst

    Nazwa nagłówka HTTP.

  • wartość

    ciąg znaków opcjonalny

    Wartość nagłówka HTTP, jeśli można ją przedstawić w formacie UTF-8.

IgnoredActionType

Chrome 70 lub nowsza wersja

Typ wyliczeniowy

"redirect"

"request_headers"

"response_headers"

"auth_credentials"

OnAuthRequiredOptions

Chrome 44 lub nowsza wersja

Typ wyliczeniowy

"responseHeaders"
Określa, że nagłówki odpowiedzi powinny być uwzględnione w zdarzeniu.

"blocking"
Określa, że żądanie jest blokowane, dopóki funkcja wywołania zwrotnego nie zwróci wyniku.

"asyncBlocking"
Określa, że funkcja wywołania zwrotnego jest obsługiwana asynchronicznie.

"extraHeaders"
Określa, że nagłówki mogą naruszać współdzielenie zasobów pomiędzy serwerami z różnych domen (CORS).

OnBeforeRedirectOptions

Chrome 44 lub nowsza wersja

Typ wyliczeniowy

"responseHeaders"
Określa, że nagłówki odpowiedzi powinny być uwzględnione w zdarzeniu.

"extraHeaders"
Określa, że nagłówki mogą naruszać współdzielenie zasobów pomiędzy serwerami z różnych domen (CORS).

OnBeforeRequestOptions

Chrome 44 lub nowsza wersja

Typ wyliczeniowy

"blocking"
Określa, że żądanie jest blokowane, dopóki funkcja wywołania zwrotnego nie zwróci wyniku.

"requestBody"
Określa, że treść żądania powinna być uwzględniona w zdarzeniu.

"extraHeaders"
Określa, że nagłówki mogą naruszać współdzielenie zasobów pomiędzy serwerami z różnych domen (CORS).

OnBeforeSendHeadersOptions

Chrome 44 lub nowsza wersja

Typ wyliczeniowy

"requestHeaders"
Określa, że nagłówek żądania powinien być uwzględniony w zdarzeniu.

"blocking"
Określa, że żądanie jest blokowane, dopóki funkcja wywołania zwrotnego nie zwróci wyniku.

"extraHeaders"
Określa, że nagłówki mogą naruszać współdzielenie zasobów pomiędzy serwerami z różnych domen (CORS).

OnCompletedOptions

Chrome 44 lub nowsza wersja

Typ wyliczeniowy

"responseHeaders"
Określa, że nagłówki odpowiedzi powinny być uwzględnione w zdarzeniu.

"extraHeaders"
Określa, że nagłówki mogą naruszać współdzielenie zasobów pomiędzy serwerami z różnych domen (CORS).

OnErrorOccurredOptions

Chrome 79 lub nowsza wersja

Wartość

"extraHeaders"

OnHeadersReceivedOptions

Chrome 44 lub nowsza wersja

Typ wyliczeniowy

"blocking"
Określa, że żądanie jest blokowane, dopóki funkcja wywołania zwrotnego nie zwróci wyniku.

"responseHeaders"
Określa, że nagłówki odpowiedzi powinny być uwzględnione w zdarzeniu.

"extraHeaders"
Określa, że nagłówki mogą naruszać współdzielenie zasobów pomiędzy serwerami z różnych domen (CORS).

"securityInfo"
Określa, że w zdarzeniu powinny być uwzględnione informacje o zabezpieczeniach.

"securityInfoRawDer"
Określa, że zdarzenie powinno zawierać SecurityInfo z nieprzetworzonymi bajtami certyfikatów.

OnResponseStartedOptions

Chrome 44 lub nowsza wersja

Typ wyliczeniowy

"responseHeaders"
Określa, że nagłówki odpowiedzi powinny być uwzględnione w zdarzeniu.

"extraHeaders"
Określa, że nagłówki mogą naruszać współdzielenie zasobów pomiędzy serwerami z różnych domen (CORS).

OnSendHeadersOptions

Chrome 44 lub nowsza wersja

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 pomiędzy serwerami z różnych domen (CORS).

RequestFilter

Obiekt opisujący filtry, które mają być stosowane do zdarzeń webRequest.

Właściwości

  • tabId

    number optional

  • typy

    ResourceType[] opcjonalny

    Lista typów żądań. Żądania, które nie pasują do żadnego z typów, zostaną odfiltrowane.

  • adresy

    string[]

    Lista adresów URL lub wzorców adresów URL. Żądania, które nie pasują do żadnego z adresów URL, zostaną odfiltrowane.

  • windowId

    number optional

ResourceType

Chrome 44 lub nowsza wersja

Typ wyliczeniowy

"main_frame"
Określa zasób jako ramkę główną.

"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 WebBundle.

"other"
Określa zasób jako typ nieuwzględniony na liście typów.

SecurityInfo

Chrome 144 lub nowsza wersja

Właściwości

  • certyfikaty

    object[]

    Lista certyfikatów

    • odcisk palca

      obiekt

      Odciski cyfrowe certyfikatu.

      • sha256

        tekst

        Odcisk cyfrowy SHA256 certyfikatu.

    • rawDER

      ArrayBuffer opcjonalny

      Nieprzetworzone bajty certyfikatu serwera zakodowanego w formacie DER

  • stan

    tekst

    Stan połączenia. Jedna z wartości: secure, insecure, broken.

UploadData

Zawiera dane przesłane w żądaniu adresu URL.

Właściwości

  • bajty

    any optional

    ArrayBuffer z kopią danych.

  • plik

    ciąg znaków opcjonalny

    Ciąg tekstowy ze ścieżką i nazwą pliku.

Właściwości

MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES

Maksymalna liczba wywołań handlerBehaviorChanged w ciągu 10 minut. handlerBehaviorChanged to kosztowne wywołanie funkcji, którego nie należy często używać.

Wartość

20

Metody

handlerBehaviorChanged()

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

Należy ją wywołać, gdy zmieni się zachowanie modułów obsługi webRequest, aby zapobiec nieprawidłowemu działaniu z powodu buforowania. To wywołanie funkcji jest kosztowne. Nie wywołuj jej często.

Parametry

  • callback

    function opcjonalne

    Parametr callback wygląda tak:

    () => void

Zwroty

  • thought Promise<void>

    Chrome 116 lub nowsza wersja

    Obiekty Promise są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Na innych platformach należy używać wywołań zwrotnych.

Wydarzenia

onActionIgnored

Chrome 70 lub nowsza wersja
chrome.webRequest.onActionIgnored.addListener(
  callback: function,
)

Uruchamiane, gdy proponowana przez rozszerzenie modyfikacja żądania sieciowego zostanie zignorowana. Dzieje się tak w przypadku konfliktów z innymi rozszerzeniami.

Parametry

  • callback

    funkcja

    Parametr callback wygląda tak:

    (details: object) => void

    • szczegóły

      obiekt

      • działanie

        Proponowane działanie, które zostało zignorowane.

      • requestId

        tekst

        Identyfikator żądania. Identyfikatory żądań są unikalne w ramach sesji przeglądarki. W efekcie można ich używać do powiązania różnych zdarzeń z tego samego żądania.

onAuthRequired

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

Uruchamiane, gdy wystąpi błąd uwierzytelniania. Detektor ma 3 opcje: może podać dane uwierzytelniające, anulować żądanie i wyświetlić stronę błędu lub nie podejmować żadnych działań w związku z wyzwaniem. Jeśli podane zostaną nieprawidłowe dane logowania użytkownika, ta metoda może zostać wywołana wielokrotnie w ramach tego samego żądania. Pamiętaj, że w parametrze extraInfoSpec można określić tylko jeden z trybów 'blocking' lub 'asyncBlocking'.

Parametry

  • callback

    funkcja

    Parametr callback wygląda tak:

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

    • szczegóły

      obiekt

      • rywal

        obiekt

        Serwer żądający uwierzytelnienia.

        • host

          tekst

        • port

          liczba

      • documentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowsza wersja

        Identyfikator UUID dokumentu, który wysyła żądanie.

      • Chrome 106 lub nowsza wersja

        Cykl życia, w którym znajduje się dokument.

      • frameId

        liczba

        Wartość 0 oznacza, że żądanie występuje w ramce głównej, a wartość dodatnia wskazuje identyfikator ramki podrzędnej, w której występuje żądanie. Jeśli dokument (pod)ramki jest wczytany (type to main_frame lub sub_frame), frameId wskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie karty.

      • Chrome 106 lub nowsza wersja

        Typ ramki, w której wystąpiło żądanie.

      • inicjator

        ciąg znaków opcjonalny

        Chrome 63 lub nowsza wersja

        Źródło, z którego zainicjowano żądanie. Nie zmienia się on w przypadku przekierowań. Jeśli jest to nieprzezroczyste źródło, używany jest ciąg tekstowy „null”.

      • isProxy

        wartość logiczna

        Wartość True dla Proxy-Authenticate, wartość False dla WWW-Authenticate.

      • method

        tekst

        Standardowa metoda HTTP.

      • parentDocumentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowsza wersja

        Identyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Jeśli nie ma elementu nadrzędnego, ta wartość nie jest ustawiona.

      • parentFrameId

        liczba

        Identyfikator ramki, która zawiera ramkę wysyłającą żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1.

      • obszar

        ciąg znaków opcjonalny

        Obszar uwierzytelniania podany przez serwer, jeśli istnieje.

      • requestId

        tekst

        Identyfikator żądania. Identyfikatory żądań są unikalne w ramach sesji przeglądarki. W efekcie można ich używać do powiązania różnych zdarzeń z tego samego żądania.

      • responseHeaders

        HttpHeaders opcjonalne

        Nagłówki odpowiedzi HTTP, które zostały odebrane wraz z tą odpowiedzią.

      • schemat

        tekst

        Schemat uwierzytelniania, np. Basic lub Digest.

      • statusCode

        liczba

        Chrome 43 lub nowsza wersja

        Standardowy kod stanu HTTP zwracany przez serwer.

      • statusLine

        tekst

        Wiersz stanu HTTP odpowiedzi lub ciąg „HTTP/0.9 200 OK” w przypadku odpowiedzi HTTP/0.9 (czyli odpowiedzi, które nie mają wiersza stanu) lub pusty ciąg, jeśli nie ma nagłówków.

      • tabId

        liczba

        Identyfikator karty, na której występuje żądanie. Jeśli żądanie nie jest powiązane z kartą, ustaw wartość -1.

      • timeStamp

        liczba

        Czas aktywacji sygnału w milisekundach od początku epoki.

      • Sposób wykorzystania żądanego zasobu.

      • URL

        tekst

    • asyncCallback

      function opcjonalne

      Chrome 58 lub nowsza wersja

      Parametr asyncCallback wygląda tak:

      (response: BlockingResponse) => void

    • returns

      BlockingResponse | undefined

      Jeśli w parametrze „extraInfoSpec” określono „blocking”, detektor zdarzeń powinien zwrócić obiekt tego typu.

  • extraInfoSpec

    OnAuthRequiredOptions[] opcjonalny

onBeforeRedirect

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

Uruchamiane, gdy ma nastąpić przekierowanie zainicjowane przez serwer.

Parametry

  • callback

    funkcja

    Parametr callback wygląda tak:

    (details: object) => void

    • szczegóły

      obiekt

      • documentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowsza wersja

        Identyfikator UUID dokumentu, który wysyła żądanie.

      • Chrome 106 lub nowsza wersja

        Cykl życia, w którym znajduje się dokument.

      • frameId

        liczba

        Wartość 0 oznacza, że żądanie występuje w ramce głównej, a wartość dodatnia wskazuje identyfikator ramki podrzędnej, w której występuje żądanie. Jeśli dokument (pod)ramki jest wczytany (type to main_frame lub sub_frame), frameId wskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie karty.

      • Chrome 106 lub nowsza wersja

        Typ ramki, w której wystąpiło żądanie.

      • fromCache

        wartość logiczna

        Wskazuje, czy ta odpowiedź została pobrana z pamięci podręcznej na dysku.

      • inicjator

        ciąg znaków opcjonalny

        Chrome 63 lub nowsza wersja

        Źródło, z którego zainicjowano żądanie. Nie zmienia się on w przypadku przekierowań. Jeśli jest to nieprzezroczyste źródło, używany jest ciąg tekstowy „null”.

      • ip

        ciąg znaków opcjonalny

        Adres IP serwera, na który faktycznie wysłano żądanie. Pamiętaj, że może to być adres IPv6.

      • method

        tekst

        Standardowa metoda HTTP.

      • parentDocumentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowsza wersja

        Identyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Jeśli nie ma elementu nadrzędnego, ta wartość nie jest ustawiona.

      • parentFrameId

        liczba

        Identyfikator ramki, która zawiera ramkę wysyłającą żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1.

      • redirectUrl

        tekst

        Nowy URL.

      • requestId

        tekst

        Identyfikator żądania. Identyfikatory żądań są unikalne w ramach sesji przeglądarki. W efekcie można ich używać do powiązania różnych zdarzeń z tego samego żądania.

      • responseHeaders

        HttpHeaders opcjonalne

        Nagłówki odpowiedzi HTTP, które zostały odebrane wraz z tym przekierowaniem.

      • statusCode

        liczba

        Standardowy kod stanu HTTP zwracany przez serwer.

      • statusLine

        tekst

        Wiersz stanu HTTP odpowiedzi lub ciąg „HTTP/0.9 200 OK” w przypadku odpowiedzi HTTP/0.9 (czyli odpowiedzi, które nie mają wiersza stanu) lub pusty ciąg, jeśli nie ma nagłówków.

      • tabId

        liczba

        Identyfikator karty, na której występuje żądanie. Jeśli żądanie nie jest powiązane z kartą, ustaw wartość -1.

      • timeStamp

        liczba

        Czas aktywacji sygnału w milisekundach od początku epoki.

      • Sposób wykorzystania żądanego zasobu.

      • URL

        tekst

  • extraInfoSpec

onBeforeRequest

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

Uruchamiane, gdy ma nastąpić żądanie.

Parametry

  • callback

    funkcja

    Parametr callback wygląda tak:

    (details: object) => BlockingResponse | undefined

    • szczegóły

      obiekt

      • documentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowsza wersja

        Identyfikator UUID dokumentu, który wysyła żądanie.

      • documentLifecycle
        Chrome 106 lub nowsza wersja

        Cykl życia, w którym znajduje się dokument.

      • frameId

        liczba

        Wartość 0 oznacza, że żądanie występuje w ramce głównej, a wartość dodatnia wskazuje identyfikator ramki podrzędnej, w której występuje żądanie. Jeśli dokument (pod)ramki jest wczytany (type to main_frame lub sub_frame), frameId wskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie karty.

      • frameType
        Chrome 106 lub nowsza wersja

        Typ ramki, w której wystąpiło żądanie.

      • inicjator

        ciąg znaków opcjonalny

        Chrome 63 lub nowsza wersja

        Źródło, z którego zainicjowano żądanie. Nie zmienia się on w przypadku przekierowań. Jeśli jest to nieprzezroczyste źródło, używany jest ciąg tekstowy „null”.

      • method

        tekst

        Standardowa metoda HTTP.

      • parentDocumentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowsza wersja

        Identyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Jeśli nie ma elementu nadrzędnego, ta wartość nie jest ustawiona.

      • parentFrameId

        liczba

        Identyfikator ramki, która zawiera ramkę wysyłającą żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1.

      • requestBody

        object opcjonalny

        Zawiera dane treści żądania HTTP. Podawane tylko wtedy, gdy extraInfoSpec zawiera „requestBody”.

        • błąd

          ciąg znaków opcjonalny

          Błędy podczas uzyskiwania danych treści żądania.

        • formData

          object opcjonalny

          Jeśli metoda żądania to POST, a treść jest sekwencją par klucz-wartość zakodowanych w formacie UTF8, zakodowanych 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 dla 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']}.

        • raw

          UploadData[] opcjonalne

          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.

      • requestId

        tekst

        Identyfikator żądania. Identyfikatory żądań są unikalne w ramach sesji przeglądarki. W efekcie można ich używać do powiązania różnych zdarzeń z tego samego żądania.

      • tabId

        liczba

        Identyfikator karty, na której występuje żądanie. Jeśli żądanie nie jest powiązane z kartą, ustaw wartość -1.

      • timeStamp

        liczba

        Czas aktywacji sygnału w milisekundach od początku epoki.

      • Sposób wykorzystania żądanego zasobu.

      • URL

        tekst

    • returns

      BlockingResponse | undefined

      Jeśli w parametrze „extraInfoSpec” określono „blocking”, detektor zdarzeń powinien zwrócić obiekt tego typu.

  • extraInfoSpec

onBeforeSendHeaders

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

Uruchamiane przed wysłaniem żądania HTTP, gdy nagłówki żądania są dostępne. Może się to zdarzyć po nawiązaniu połączenia TCP z serwerem, ale przed wysłaniem jakichkolwiek danych HTTP.

Parametry

  • callback

    funkcja

    Parametr callback wygląda tak:

    (details: object) => BlockingResponse | undefined

    • szczegóły

      obiekt

      • documentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowsza wersja

        Identyfikator UUID dokumentu, który wysyła żądanie.

      • Chrome 106 lub nowsza wersja

        Cykl życia, w którym znajduje się dokument.

      • frameId

        liczba

        Wartość 0 oznacza, że żądanie występuje w ramce głównej, a wartość dodatnia wskazuje identyfikator ramki podrzędnej, w której występuje żądanie. Jeśli dokument (pod)ramki jest wczytany (type to main_frame lub sub_frame), frameId wskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie karty.

      • Chrome 106 lub nowsza wersja

        Typ ramki, w której wystąpiło żądanie.

      • inicjator

        ciąg znaków opcjonalny

        Chrome 63 lub nowsza wersja

        Źródło, z którego zainicjowano żądanie. Nie zmienia się on w przypadku przekierowań. Jeśli jest to nieprzezroczyste źródło, używany jest ciąg tekstowy „null”.

      • method

        tekst

        Standardowa metoda HTTP.

      • parentDocumentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowsza wersja

        Identyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Jeśli nie ma elementu nadrzędnego, ta wartość nie jest ustawiona.

      • parentFrameId

        liczba

        Identyfikator ramki, która zawiera ramkę wysyłającą żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1.

      • requestHeaders

        HttpHeaders opcjonalne

        Nagłówki żądania HTTP, które zostaną wysłane z tym żądaniem.

      • requestId

        tekst

        Identyfikator żądania. Identyfikatory żądań są unikalne w ramach sesji przeglądarki. W efekcie można ich używać do powiązania różnych zdarzeń z tego samego żądania.

      • tabId

        liczba

        Identyfikator karty, na której występuje żądanie. Jeśli żądanie nie jest powiązane z kartą, ustaw wartość -1.

      • timeStamp

        liczba

        Czas aktywacji sygnału w milisekundach od początku epoki.

      • Sposób wykorzystania żądanego zasobu.

      • URL

        tekst

    • returns

      BlockingResponse | undefined

      Jeśli w parametrze „extraInfoSpec” określono „blocking”, detektor zdarzeń powinien zwrócić obiekt tego typu.

  • extraInfoSpec

onCompleted

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

Uruchamiane po zakończeniu żądania.

Parametry

  • callback

    funkcja

    Parametr callback wygląda tak:

    (details: object) => void

    • szczegóły

      obiekt

      • documentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowsza wersja

        Identyfikator UUID dokumentu, który wysyła żądanie.

      • Chrome 106 lub nowsza wersja

        Cykl życia, w którym znajduje się dokument.

      • frameId

        liczba

        Wartość 0 oznacza, że żądanie występuje w ramce głównej, a wartość dodatnia wskazuje identyfikator ramki podrzędnej, w której występuje żądanie. Jeśli dokument (pod)ramki jest wczytany (type to main_frame lub sub_frame), frameId wskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie karty.

      • Chrome 106 lub nowsza wersja

        Typ ramki, w której wystąpiło żądanie.

      • fromCache

        wartość logiczna

        Wskazuje, czy ta odpowiedź została pobrana z pamięci podręcznej na dysku.

      • inicjator

        ciąg znaków opcjonalny

        Chrome 63 lub nowsza wersja

        Źródło, z którego zainicjowano żądanie. Nie zmienia się on w przypadku przekierowań. Jeśli jest to nieprzezroczyste źródło, używany jest ciąg tekstowy „null”.

      • ip

        ciąg znaków opcjonalny

        Adres IP serwera, na który faktycznie wysłano żądanie. Pamiętaj, że może to być adres IPv6.

      • method

        tekst

        Standardowa metoda HTTP.

      • parentDocumentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowsza wersja

        Identyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Jeśli nie ma elementu nadrzędnego, ta wartość nie jest ustawiona.

      • parentFrameId

        liczba

        Identyfikator ramki, która zawiera ramkę wysyłającą żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1.

      • requestId

        tekst

        Identyfikator żądania. Identyfikatory żądań są unikalne w ramach sesji przeglądarki. W efekcie można ich używać do powiązania różnych zdarzeń z tego samego żądania.

      • responseHeaders

        HttpHeaders opcjonalne

        Nagłówki odpowiedzi HTTP, które zostały odebrane wraz z tą odpowiedzią.

      • statusCode

        liczba

        Standardowy kod stanu HTTP zwracany przez serwer.

      • statusLine

        tekst

        Wiersz stanu HTTP odpowiedzi lub ciąg „HTTP/0.9 200 OK” w przypadku odpowiedzi HTTP/0.9 (czyli odpowiedzi, które nie mają wiersza stanu) lub pusty ciąg, jeśli nie ma nagłówków.

      • tabId

        liczba

        Identyfikator karty, na której występuje żądanie. Jeśli żądanie nie jest powiązane z kartą, ustaw wartość -1.

      • timeStamp

        liczba

        Czas aktywacji sygnału w milisekundach od początku epoki.

      • Sposób wykorzystania żądanego zasobu.

      • URL

        tekst

  • extraInfoSpec

    OnCompletedOptions[] opcjonalny

onErrorOccurred

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

Uruchamiane, gdy wystąpi błąd.

Parametry

  • callback

    funkcja

    Parametr callback wygląda tak:

    (details: object) => void

    • szczegóły

      obiekt

      • documentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowsza wersja

        Identyfikator UUID dokumentu, który wysyła żądanie. Ta wartość nie jest obecna, jeśli żądanie dotyczy nawigacji w ramce.

      • Chrome 106 lub nowsza wersja

        Cykl życia, w którym znajduje się dokument.

      • błąd

        tekst

        Opis błędu. Nie gwarantujemy, że ten ciąg znaków będzie zgodny wstecznie między wersjami. Nie wolno go analizować ani podejmować działań na podstawie jego zawartości.

      • frameId

        liczba

        Wartość 0 oznacza, że żądanie występuje w ramce głównej, a wartość dodatnia wskazuje identyfikator ramki podrzędnej, w której występuje żądanie. Jeśli dokument (pod)ramki jest wczytany (type to main_frame lub sub_frame), frameId wskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie karty.

      • Chrome 106 lub nowsza wersja

        Typ ramki, w której wystąpiło żądanie.

      • fromCache

        wartość logiczna

        Wskazuje, czy ta odpowiedź została pobrana z pamięci podręcznej na dysku.

      • inicjator

        ciąg znaków opcjonalny

        Chrome 63 lub nowsza wersja

        Źródło, z którego zainicjowano żądanie. Nie zmienia się on w przypadku przekierowań. Jeśli jest to nieprzezroczyste źródło, używany jest ciąg tekstowy „null”.

      • ip

        ciąg znaków opcjonalny

        Adres IP serwera, na który faktycznie wysłano żądanie. Pamiętaj, że może to być adres IPv6.

      • method

        tekst

        Standardowa metoda HTTP.

      • parentDocumentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowsza wersja

        Identyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Jeśli nie ma elementu nadrzędnego, ta wartość nie jest ustawiona.

      • parentFrameId

        liczba

        Identyfikator ramki, która zawiera ramkę wysyłającą żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1.

      • requestId

        tekst

        Identyfikator żądania. Identyfikatory żądań są unikalne w ramach sesji przeglądarki. W efekcie można ich używać do powiązania różnych zdarzeń z tego samego żądania.

      • tabId

        liczba

        Identyfikator karty, na której występuje żądanie. Jeśli żądanie nie jest powiązane z kartą, ustaw wartość -1.

      • timeStamp

        liczba

        Czas aktywacji sygnału w milisekundach od początku epoki.

      • Sposób wykorzystania żądanego zasobu.

      • URL

        tekst

  • extraInfoSpec

onHeadersReceived

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

Uruchamiane po odebraniu nagłówków odpowiedzi HTTP żądania.

Parametry

  • callback

    funkcja

    Parametr callback wygląda tak:

    (details: object) => BlockingResponse | undefined

    • szczegóły

      obiekt

      • documentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowsza wersja

        Identyfikator UUID dokumentu, który wysyła żądanie.

      • Chrome 106 lub nowsza wersja

        Cykl życia, w którym znajduje się dokument.

      • frameId

        liczba

        Wartość 0 oznacza, że żądanie występuje w ramce głównej, a wartość dodatnia wskazuje identyfikator ramki podrzędnej, w której występuje żądanie. Jeśli dokument (pod)ramki jest wczytany (type to main_frame lub sub_frame), frameId wskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie karty.

      • Chrome 106 lub nowsza wersja

        Typ ramki, w której wystąpiło żądanie.

      • inicjator

        ciąg znaków opcjonalny

        Chrome 63 lub nowsza wersja

        Źródło, z którego zainicjowano żądanie. Nie zmienia się on w przypadku przekierowań. Jeśli jest to nieprzezroczyste źródło, używany jest ciąg tekstowy „null”.

      • method

        tekst

        Standardowa metoda HTTP.

      • parentDocumentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowsza wersja

        Identyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Jeśli nie ma elementu nadrzędnego, ta wartość nie jest ustawiona.

      • parentFrameId

        liczba

        Identyfikator ramki, która zawiera ramkę wysyłającą żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1.

      • requestId

        tekst

        Identyfikator żądania. Identyfikatory żądań są unikalne w ramach sesji przeglądarki. W efekcie można ich używać do powiązania różnych zdarzeń z tego samego żądania.

      • responseHeaders

        HttpHeaders opcjonalne

        Nagłówki odpowiedzi HTTP, które zostały odebrane wraz z tą odpowiedzią.

      • securityInfo

        SecurityInfo opcjonalny

        Chrome 144 lub nowsza wersja

        Informacje o połączeniu TLS/QUIC używanym do połączenia podstawowego. Podawany tylko wtedy, gdy w parametrze extraInfoSpec określono securityInfo.

      • statusCode

        liczba

        Chrome 43 lub nowsza wersja

        Standardowy kod stanu HTTP zwracany przez serwer.

      • statusLine

        tekst

        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).

      • tabId

        liczba

        Identyfikator karty, na której występuje żądanie. Jeśli żądanie nie jest powiązane z kartą, ustaw wartość -1.

      • timeStamp

        liczba

        Czas aktywacji sygnału w milisekundach od początku epoki.

      • Sposób wykorzystania żądanego zasobu.

      • URL

        tekst

    • returns

      BlockingResponse | undefined

      Jeśli w parametrze „extraInfoSpec” określono „blocking”, detektor zdarzeń powinien zwrócić obiekt tego typu.

  • extraInfoSpec

onResponseStarted

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

Uruchamiane po odebraniu pierwszego bajtu treści odpowiedzi. W przypadku żądań HTTP oznacza to, że dostępne są wiersz stanu i nagłówki odpowiedzi.

Parametry

  • callback

    funkcja

    Parametr callback wygląda tak:

    (details: object) => void

    • szczegóły

      obiekt

      • documentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowsza wersja

        Identyfikator UUID dokumentu, który wysyła żądanie.

      • Chrome 106 lub nowsza wersja

        Cykl życia, w którym znajduje się dokument.

      • frameId

        liczba

        Wartość 0 oznacza, że żądanie występuje w ramce głównej, a wartość dodatnia wskazuje identyfikator ramki podrzędnej, w której występuje żądanie. Jeśli dokument (pod)ramki jest wczytany (type to main_frame lub sub_frame), frameId wskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie karty.

      • Chrome 106 lub nowsza wersja

        Typ ramki, w której wystąpiło żądanie.

      • fromCache

        wartość logiczna

        Wskazuje, czy ta odpowiedź została pobrana z pamięci podręcznej na dysku.

      • inicjator

        ciąg znaków opcjonalny

        Chrome 63 lub nowsza wersja

        Źródło, z którego zainicjowano żądanie. Nie zmienia się on w przypadku przekierowań. Jeśli jest to nieprzezroczyste źródło, używany jest ciąg tekstowy „null”.

      • ip

        ciąg znaków opcjonalny

        Adres IP serwera, na który faktycznie wysłano żądanie. Pamiętaj, że może to być adres IPv6.

      • method

        tekst

        Standardowa metoda HTTP.

      • parentDocumentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowsza wersja

        Identyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Jeśli nie ma elementu nadrzędnego, ta wartość nie jest ustawiona.

      • parentFrameId

        liczba

        Identyfikator ramki, która zawiera ramkę wysyłającą żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1.

      • requestId

        tekst

        Identyfikator żądania. Identyfikatory żądań są unikalne w ramach sesji przeglądarki. W efekcie można ich używać do powiązania różnych zdarzeń z tego samego żądania.

      • responseHeaders

        HttpHeaders opcjonalne

        Nagłówki odpowiedzi HTTP, które zostały odebrane wraz z tą odpowiedzią.

      • statusCode

        liczba

        Standardowy kod stanu HTTP zwracany przez serwer.

      • statusLine

        tekst

        Wiersz stanu HTTP odpowiedzi lub ciąg „HTTP/0.9 200 OK” w przypadku odpowiedzi HTTP/0.9 (czyli odpowiedzi, które nie mają wiersza stanu) lub pusty ciąg, jeśli nie ma nagłówków.

      • tabId

        liczba

        Identyfikator karty, na której występuje żądanie. Jeśli żądanie nie jest powiązane z kartą, ustaw wartość -1.

      • timeStamp

        liczba

        Czas aktywacji sygnału w milisekundach od początku epoki.

      • Sposób wykorzystania żądanego zasobu.

      • URL

        tekst

  • extraInfoSpec

onSendHeaders

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

Uruchamiane tuż przed wysłaniem żądania do serwera (modyfikacje poprzednich wywołań zwrotnych onBeforeSendHeaders są widoczne po uruchomieniu onSendHeaders).

Parametry

  • callback

    funkcja

    Parametr callback wygląda tak:

    (details: object) => void

    • szczegóły

      obiekt

      • documentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowsza wersja

        Identyfikator UUID dokumentu, który wysyła żądanie.

      • Chrome 106 lub nowsza wersja

        Cykl życia, w którym znajduje się dokument.

      • frameId

        liczba

        Wartość 0 oznacza, że żądanie występuje w ramce głównej, a wartość dodatnia wskazuje identyfikator ramki podrzędnej, w której występuje żądanie. Jeśli dokument (pod)ramki jest wczytany (type to main_frame lub sub_frame), frameId wskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie karty.

      • Chrome 106 lub nowsza wersja

        Typ ramki, w której wystąpiło żądanie.

      • inicjator

        ciąg znaków opcjonalny

        Chrome 63 lub nowsza wersja

        Źródło, z którego zainicjowano żądanie. Nie zmienia się on w przypadku przekierowań. Jeśli jest to nieprzezroczyste źródło, używany jest ciąg tekstowy „null”.

      • method

        tekst

        Standardowa metoda HTTP.

      • parentDocumentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowsza wersja

        Identyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Jeśli nie ma elementu nadrzędnego, ta wartość nie jest ustawiona.

      • parentFrameId

        liczba

        Identyfikator ramki, która zawiera ramkę wysyłającą żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1.

      • requestHeaders

        HttpHeaders opcjonalne

        Nagłówki żądania HTTP, które zostały wysłane z tym żądaniem.

      • requestId

        tekst

        Identyfikator żądania. Identyfikatory żądań są unikalne w ramach sesji przeglądarki. W efekcie można ich używać do powiązania różnych zdarzeń z tego samego żądania.

      • tabId

        liczba

        Identyfikator karty, na której występuje żądanie. Jeśli żądanie nie jest powiązane z kartą, ustaw wartość -1.

      • timeStamp

        liczba

        Czas aktywacji sygnału w milisekundach od początku epoki.

      • Sposób wykorzystania żądanego zasobu.

      • URL

        tekst

  • extraInfoSpec

    OnSendHeadersOptions[] opcjonalny