chrome.webRequest

Opis

Interfejs chrome.webRequest API pozwala obserwować i analizować ruch oraz przechwytywać, blokować i modyfikować przesyłane żądania.

Uprawnienia

webRequest

Aby używać żądania internetowego, musisz zadeklarować uprawnienia "webRequest" w pliku manifestu rozszerzenia. API, a także niezbędne uprawnienia hosta. Do przechwycenia żądania 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/*"
  ],
  ...
}

webRequestBlocking

Wymagane do rejestrowania blokujących modułów obsługi zdarzeń. Od platformy Manifest V3 dotyczy to tylko dostępnych dla rozszerzeń zainstalowanych zgodnie z zasadami.

webRequestAuthProvider

Wymagane do korzystania z metody onAuthRequired. Zobacz Obsługa uwierzytelniania

Pojęcia i wykorzystanie

Cykl życia żądań

Interfejs API żądania internetowego definiuje zbiór zdarzeń, które następują po cyklu życia żądania internetowego. Za pomocą do obserwowania i analizowania ruchu. Pewne zdarzenia synchroniczne umożliwiają przechwytywanie, zablokować lub zmodyfikować żądanie.

Poniżej zilustrowano cykl życia zdarzeń, które zostały zrealizowane, wraz z definicjami zdarzeń:

Cykl życia żądania internetowego z perspektywy interfejsu API żądania internetowego

onBeforeRequest (opcjonalnie synchronicznie)
Uruchamia się, gdy żądanie może wystąpić. To zdarzenie jest wysyłane przed nawiązaniem połączenia TCP i może mogą służyć do anulowania lub przekierowywania żądań.
onBeforeSendHeaders (opcjonalnie synchronicznie)
Uruchamia się, gdy żądanie ma miejsce i przygotowane są wstępne nagłówki. Wydarzenie jest ma umożliwiać rozszerzeniom dodawanie, modyfikowanie i usuwanie nagłówków żądań(*). Zdarzenie onBeforeSendHeaders jest przekazywane do wszystkich subskrybentów, więc różni subskrybenci mogą próbować modyfikować prośbę; Więcej informacji o tym, jak to zrobić, znajdziesz w sekcji Szczegóły implementacji. To wydarzenie można użyć, aby anulować prośbę.
onSendHeaders
Uruchamia się, gdy wszystkie rozszerzenia zmodyfikowały nagłówki żądań i przedstawiały końcowy efekt wersję (*). Zdarzenie jest wyzwalane przed wysłaniem nagłówków do sieci. To wydarzenie jest informacyjna i obsługiwana asynchronicznie. Nie można też zmodyfikować ani anulować prośby.
onHeadersReceived (opcjonalnie synchronicznie)
Uruchamia się za każdym razem, gdy otrzyma nagłówek odpowiedzi HTTP(S). Ze względu na przekierowania i uwierzytelnianie może następować wiele razy w jednym żądaniu. To zdarzenie ma umożliwiać rozszerzeniom dodawać, modyfikować i usuwać nagłówki odpowiedzi, takie jak przychodzące nagłówki Content-Type. Buforowanie są przetwarzane przed wywołaniem tego zdarzenia, więc modyfikowanie nagłówków, np. Cache-Control nie wpływa na pamięć podręczną przeglądarki. Możesz też anulować lub przekierować żądanie.
onAuthRequired (opcjonalnie synchronicznie)
Uruchamia się, gdy żądanie wymaga uwierzytelnienia użytkownika. To zdarzenie może być obsługiwane synchronicznie w podać dane uwierzytelniające. Pamiętaj, że rozszerzenia mogą podawać nieprawidłowe dane logowania. Uważaj na siebie unikniesz nieskończonej pętli poprzez wielokrotne podanie nieprawidłowych danych logowania. Można to też wykorzystać do: anulować prośbę.
onBeforeRedirect
Uruchamia się, gdy przekierowanie ma zostać wykonane. Przekierowywanie może być wywoływane przez odpowiedź HTTP lub za pomocą rozszerzenia. To zdarzenie ma charakter informacyjny i jest obsługiwane asynchronicznie. Nie zezwala na możesz je zmodyfikować lub anulować.
onResponseStarted
Uruchamia się po otrzymaniu pierwszego bajtu treści odpowiedzi. W przypadku żądań HTTP oznacza to, że para klucz-wartość wiersz stanu i nagłówki odpowiedzi. To zdarzenie ma charakter informacyjny i jest obsługiwane asynchronicznie. Nie można go zmodyfikować ani anulować.
onCompleted
Uruchamia się po przetworzeniu żądania.
onErrorOccurred
Uruchamia się, gdy nie udało się przetworzyć żądania.

Interfejs API żądań internetowych gwarantuje, że w przypadku każdego żądania onCompleted lub onErrorOccurred jest wywoływane jako zdarzenie końcowe, z jednym wyjątkiem: jeśli żądanie zostanie przekierowane na adres URL data://, onBeforeRedirect to ostatnie zgłoszone zdarzenie.

* Pamiętaj, że interfejs API żądań sieciowych przedstawia rozszerzeniu abstrakcję stosu sieciowego. Wewnętrznie jedno żądanie adresu URL można podzielić na kilka żądań HTTP (na przykład w celu pobrania zakres bajtów od dużego pliku) lub może być obsługiwany przez stos sieciowy bez komunikacji z Z tego powodu interfejs API nie udostępnia ostatecznych nagłówków HTTP wysyłanych do Na przykład wszystkie nagłówki związane z buforowaniem są dla rozszerzenia niewidoczne.

Te nagłówki nie są obecnie podawane w zdarzeniu onBeforeSendHeaders. Ta lista nie musi być kompletna ani stabilna.

  • Autoryzacja
  • Cache-Control
  • Połączenie
  • Długość treści
  • Host
  • Jeśli-zmodyfikowane-od
  • If-None-Match
  • If-Range
  • Częściowe dane
  • Pragma
  • Autoryzacja proxy
  • Połączenie z serwerem proxy
  • Transfer-Encoding

Począwszy od Chrome 79 zmiany nagłówków żądań wpływają na udostępnianie zasobów między serwerami z różnych domen (CORS) weryfikacji. Jeśli zmodyfikowane nagłówki dla żądań z innych domen nie spełniają kryteriów, spowoduje to wywołanie wysyłanie procesu wstępnego CORS z pytaniem do serwera, czy takie nagłówki mogą zostać zaakceptowane. Jeśli naprawdę musisz aby zmodyfikować nagłówki w sposób naruszający protokół CORS, musisz określić 'extraHeaders' w opt_extraInfoSpec Z kolei modyfikacje nagłówków odpowiedzi nie mają na celu oszukiwania CORS. weryfikacji. Jeśli chcesz oszukać protokół CORS, musisz też określić 'extraHeaders' dla protokołu modyfikacji odpowiedzi.

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

Od Chrome 79 ten nagłówek żądania nie jest udostępniany i nie można go modyfikować ani usunięto bez określenia 'extraHeaders' w opt_extraInfoSpec:

  • Punkt początkowy
.

Od Chrome 72, jeśli trzeba zmodyfikować odpowiedzi przed blokowaniem odczytu z innych domen (CORB) może zablokować odpowiedź. Musisz określić 'extraHeaders' w polu opt_extraInfoSpec.

Od Chrome 72 poniższe nagłówki żądań nie są udostępniane i nie można ich modyfikować lub usunięto bez określenia 'extraHeaders' w opt_extraInfoSpec:

  • Akceptuj język
  • Accept-Encoding
  • Referer
  • Plik cookie

Od Chrome 72 nagłówek odpowiedzi Set-Cookie nie jest dostarczany i nie można go modyfikować lub usunięto bez określenia 'extraHeaders' w opt_extraInfoSpec.

Od Chrome 89 nie można skutecznie modyfikować nagłówka odpowiedzi X-Frame-Options lub usunięto bez określenia 'extraHeaders' w opt_extraInfoSpec.

Interfejs webRequest API ujawnia tylko te żądania, do wyświetlania których rozszerzenie ma uprawnienia, biorąc pod uwagę jego 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 nawet niektóre żądania z adresami URL korzystającymi z jednego z powyższych schematów są ukryte. Dotyczy to m.in. chrome-extension://other_extension_id, gdzie other_extension_id to nie identyfikator rozszerzenia do obsługi żądania, https://www.google.com/chrome oraz inne poufne dane wysyła żądania kluczowe do funkcji przeglądarki. Także synchroniczne żądania XMLHttpRequest z Twojego rozszerzenia są ukryte przed blokowaniem modułów obsługi zdarzeń w celu uniknięcia zakleszczeń. Pamiętaj, że w przypadku niektórych dla obsługiwanych schematów zestaw dostępnych zdarzeń może być ograniczony ze względu na charakter z odpowiednim protokołem. Na przykład w przypadku pliku: schemat, tylko onBeforeRequest, Możemy wysłać produkty onResponseStarted, onCompleted i onErrorOccurred.

Od Chrome 58 interfejs webRequest API obsługuje przechwytywanie żądania uzgadniania połączenia WebSocket. Ponieważ uzgadnianie połączenia odbywa się za pomocą żądania uaktualnienia HTTP, jego przepływ może być ukierunkowany na HTTP. WebRequest. Pamiętaj, że interfejs API nie przechwytuje:

  • Poszczególne wiadomości wysyłane przez nawiązane połączenie WebSocket.
  • Zamykam połączenie WebSocket.

Żądania WebSocket nie obsługują przekierowań.

Od Chrome 72 rozszerzenie może przechwycić żądanie tylko wtedy, gdy ma hosta do żądanego adresu URL oraz do inicjatora żądania.

Od Chrome 96 interfejs webRequest API obsługuje przechwytywanie ruchu WebTransport przez HTTP/3 żądania uzgadniania połączenia. Uzgadnianie połączenia odbywa się za pomocą żądania HTTP CONNECT, więc jego przepływ pasuje do modelu WebRequest zorientowanego na HTTP. Uwaga:

  • Po zainicjowaniu sesji rozszerzenia nie mogą obserwować jej ani ingerować w nie za pomocą interfejsu WebRequest API.
  • Modyfikacja nagłówków żądań HTTP w interfejsie onBeforeSendHeaders jest ignorowana.
  • Przekierowania i uwierzytelnianie nie są obsługiwane w WebTransport przez HTTP/3.

Identyfikatory żądań

Każde żądanie jest identyfikowane przez identyfikator. Jest on niepowtarzalny w obrębie sesji przeglądarki, a tag w kontekście rozszerzenia. Pozostaje stała przez cały cykl życia żądania i można go użyć aby dopasować zdarzenia dla tego samego żądania. Pamiętaj, że na jedno żądanie internetowe zostało zmapowanych kilka żądań HTTP. w przypadku przekierowań HTTP lub uwierzytelniania HTTP.

Rejestrowanie detektorów zdarzeń

Aby zarejestrować detektor zdarzeń dla żądania internetowego, użyj odmiany typowego tagu addListener() . Oprócz określenia funkcji wywołania zwrotnego musisz też podać argument filtra. Możesz też podać opcjonalny dodatkowy argument informacyjny.

Te 3 argumenty 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 funkcji addListener() przyjmuje obowiązkową funkcję wywołania zwrotnego jako pierwszy parametr. To oddzwonienie jest przekazywana do słownika zawierającego informacje o bieżącym żądaniu adresu URL. informacje w tym słowniku zależą od typu konkretnego zdarzenia, jak również od treści opt_extraInfoSpec

Jeśli opcjonalna tablica opt_extraInfoSpec zawiera ciąg 'blocking' (dozwolone tylko w przypadku określonych zdarzeń), funkcja wywołania zwrotnego jest obsługiwana synchronicznie. Oznacza to, że żądanie jest zablokowane do momentu zwrócenia funkcji wywołania zwrotnego. W tym przypadku wywołanie zwrotne może zwrócić webRequest.BlockingResponse, który określa dalszy cykl życia żądania. W zależności w kontekście umożliwia anulowanie lub przekierowanie żądania (onBeforeRequest), anulowanie żądania lub zmiana nagłówków (onBeforeSendHeaders, onHeadersReceived) oraz anulowanie żądania lub podanie danych uwierzytelniających (onAuthRequired).

Jeśli opcjonalna tablica opt_extraInfoSpec zawiera zamiast tego ciąg 'asyncBlocking' (tylko dozwolone w przypadku onAuthRequired), rozszerzenie może generować webRequest.BlockingResponse asynchronicznie.

filter webRequest.RequestFilter umożliwia ograniczenie żądań zdarzeń, które 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 ładowany dla ramki najwyższego poziomu), sub_frame (a dokument, który jest ładowany dla umieszczonej ramki, oraz 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 w polu opt_extraInfoSpec określić ciągi tekstowe, aby prosić o dodatkowe informacje o nim. Służą one do dostarczania szczegółowych informacji o danych dotyczących żądania w razie wyraźnej prośby.

Obsługa uwierzytelniania

Aby obsługiwać żądania uwierzytelniania HTTP, dodaj "webRequestAuthProvider" uprawnienia do pliku manifestu:

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

Pamiętaj, że to uprawnienie nie jest wymagane w przypadku rozszerzenia zainstalowanego zasad o nazwie uprawnienia "webRequestBlocking".

Aby synchronicznie podać dane logowania:

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

Aby asynchronicznie podać dane logowania:

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

Szczegóły implementacji

Podczas tworzenia rozszerzenia, które wykorzystuje interfejs API żądań sieciowych:

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 wystąpienie błędu. Powyższe warunki 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, musisz zadeklarować tablicę "web_accessible_resources" i wypełnić ją w pliku manifestu w sposób opisany tutaj.

Rozwiązywanie konfliktów

W bieżącej implementacji interfejsu API żądań sieciowych żądanie jest uznawane za anulowane, jeśli ma miejsce co najmniej jedno rozszerzenie informuje o anulowaniu prośby. Jeśli rozszerzenie anuluje prośbę, wszystkie są powiadamiane o zdarzeniach onErrorOccurred. Tylko jedno rozszerzenie może przekierowywać lub zmienić nagłówek naraz. Jeśli kilka rozszerzeń próbuje zmodyfikować żądanie, tag wygrywa ostatnio zainstalowane rozszerzenie, a pozostałe – ignorowane. Rozszerzenie nie jest powiadamiane, jeśli: jego instrukcja zmiany lub przekierowania została zignorowana.

Pamięć podręczna

Chrome wykorzystuje 2 pamięci podręczne: na dysku oraz bardzo szybko. Rekord pamięć podręczna w pamięci jest dołączona do czasu trwania procesu renderowania, który mniej więcej odpowiada karcie. Żądania, na które kierowane są żądania z pamięci podręcznej, są niewidoczne dla interfejsu API żądań internetowych. Jeśli moduł obsługi żądań zmienia swoje działanie (np. działanie zgodnie z tym, które żądania są zablokowane), proste odświeżenie strony może nie uwzględniać tej zmiany. Aby zapewnić działanie zmiana, wywoła handlerBehaviorChanged(), aby wyczyścić pamięć podręczną w pamięci. Ale tego nie rób często; to bardzo kosztowne zadanie. Nie musisz dzwonić handlerBehaviorChanged() po zarejestrowaniu lub wyrejestrowaniu detektora zdarzeń.

Sygnatury czasowe

Gwarantujemy zgodność właściwości timestamp zdarzeń żądań sieciowych tylko wewnętrznie. Porównanie jednego wydarzenia z innym zapewni Ci odpowiednie przesunięcie, ale ich do bieżącego momentu wewnątrz rozszerzenia (np. za pomocą funkcji (new Date()).getTime()) może mogą dać nieoczekiwane rezultaty.

Obsługa błędów

Jeśli spróbujesz zarejestrować zdarzenie z nieprawidłowymi argumentami, wystąpi błąd JavaScript, moduł obsługi zdarzeń nie zostanie zarejestrowany. Jeśli błąd zostanie zgłoszony podczas obsługi zdarzenia lub jeśli moduł obsługi zdarzeń zwraca nieprawidłową odpowiedź blokującą, w , a moduł obsługi tego żądania zostanie zignorowany.

Przykłady

Poniższy przykład pokazuje, jak zablokować wszystkie żądania wysyłane 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 modułu obsługi zdarzeń blokujących, więc wymaga tagów "webRequest" oraz "webRequestBlocking" w pliku manifestu.

Poniższy przykład pozwala efektywniej osiągnąć ten sam cel, 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ładowy WebRequest ze strony chrome-extension-samples z repozytorium.

Typy

BlockingResponse

Zwraca wartość dla modułów obsługi zdarzeń, które mają parametr „blocking” Zastosowano parametr extraInfoSpec. Zezwala modułowi obsługi zdarzeń na modyfikowanie żądań sieciowych.

Właściwości

  • authCredentials

    obiekt opcjonalny

    Używany tylko jako odpowiedź na zdarzenie onAuthRequired. Jeśli są ustawione, żądanie jest wysyłane przy użyciu podanych danych logowania.

    • hasło

      ciąg znaków

    • nazwa użytkownika

      ciąg znaków

  • anuluj

    Wartość logiczna opcjonalna

    Jeśli ma wartość true (prawda), żądanie zostaje anulowane. Uniemożliwia to wysłanie prośby. Można go użyć jako odpowiedzi na zdarzenia onBeforeRequest, onBeforeSendHeaders, onHeadersReceived i onAuthRequired.

  • redirectUrl

    ciąg znaków opcjonalny

    Używany tylko jako odpowiedź na zdarzenia onBeforeRequest i onHeadersReceived. Jeśli jest skonfigurowana, wysyłanie/ukończenie pierwotnego żądania jest zablokowane i przekierowuje użytkownika na podany adres URL. Dozwolone są przekierowania do schematów innych niż HTTP, takich jak data:. Przekierowania zainicjowane przez działanie przekierowania wykorzystują pierwotną metodę żądania, z jednym wyjątkiem: jeśli przekierowanie jest inicjowane na etapie onHeadersReceived, jest ono realizowane za pomocą metody GET. Przekierowania z adresów URL ze schematami ws:// i wss://ignorowane.

  • requestHeaders

    HttpHeaders opcjonalnie

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

  • responseHeaders

    HttpHeaders opcjonalnie

    Używany tylko jako odpowiedź na zdarzenie onHeadersReceived. Jeśli jest ustawione, zakłada się, że serwer odpowiedział za pomocą tych nagłówków odpowiedzi. Zwracaj wartość responseHeaders tylko wtedy, gdy naprawdę chcesz zmodyfikować nagłówki, aby ograniczyć liczbę konfliktów (tylko jedno rozszerzenie może modyfikować responseHeaders w każdym żądaniu).

FormDataItem

Chrome w wersji 66 lub nowszej, .

Zawiera dane przekazywane w danych formularza. W przypadku formatu zakodowanego za pomocą adresu URL dane są przechowywane jako ciąg znaków UTF-8, a w przeciwnym razie – jako tablicaBuffer. W przypadku danych formularza jest to tablicaBuffer. Jeśli dane formularza reprezentują przesyłany plik, są to ciąg znaków z nazwą pliku (o ile została podana nazwa pliku).

Typ wyliczeniowy

SlateBuffer

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

  • binaryValue

    liczba[] opcjonalnie

    Wartość nagłówka HTTP, jeśli nie może być reprezentowana przez kodowanie UTF-8, zapisana jako wartość w pojedynczych bajtach (0..255).

  • nazwa

    ciąg znaków

    Nazwa nagłówka HTTP.

  • wartość

    ciąg znaków opcjonalny

    Wartość nagłówka HTTP, jeśli może być reprezentowana przez UTF-8.

IgnoredActionType

Chrome w wersji 70 lub nowszej .

Typ wyliczeniowy

"redirect"

"request_headers"

&quot;response_headers&quot;

&quot;auth_credentials&quot;

OnAuthRequiredOptions

Chrome w wersji 44 lub nowszej .

Typ wyliczeniowy

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

"blocking"
Określa, że żądanie jest zablokowane, dopóki funkcja wywołania zwrotnego nie zostanie zwrócona.

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

"extraHeaders"
Określa, że nagłówki mogą naruszać zasady CORS.

OnBeforeRedirectOptions

Chrome w wersji 44 lub nowszej .

Typ wyliczeniowy

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

"extraHeaders"
Określa, że nagłówki mogą naruszać zasady CORS.

OnBeforeRequestOptions

Chrome w wersji 44 lub nowszej .

Typ wyliczeniowy

"blocking"
Określa, że żądanie jest zablokowane, dopóki funkcja wywołania zwrotnego nie zostanie zwrócona.

&quot;requestBody&quot;
Określa, że w zdarzeniu ma zostać uwzględniona treść żądania.

"extraHeaders"
Określa, że nagłówki mogą naruszać zasady CORS.

OnBeforeSendHeadersOptions

Chrome w wersji 44 lub nowszej .

Typ wyliczeniowy

&quot;requestHeaders&quot;
Określa, że w zdarzeniu powinien znaleźć się nagłówek żądania.

"blocking"
Określa, że żądanie jest zablokowane, dopóki funkcja wywołania zwrotnego nie zostanie zwrócona.

"extraHeaders"
Określa, że nagłówki mogą naruszać zasady CORS.

OnCompletedOptions

Chrome w wersji 44 lub nowszej .

Typ wyliczeniowy

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

"extraHeaders"
Określa, że nagłówki mogą naruszać zasady CORS.

OnErrorOccurredOptions

Chrome w wersji 79 lub nowszej .

Wartość

"extraHeaders"

OnHeadersReceivedOptions

Chrome w wersji 44 lub nowszej .

Typ wyliczeniowy

"blocking"
Określa, że żądanie jest zablokowane, dopóki funkcja wywołania zwrotnego nie zostanie zwrócona.

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

"extraHeaders"
Określa, że nagłówki mogą naruszać zasady CORS.

OnResponseStartedOptions

Chrome w wersji 44 lub nowszej .

Typ wyliczeniowy

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

"extraHeaders"
Określa, że nagłówki mogą naruszać zasady CORS.

OnSendHeadersOptions

Chrome w wersji 44 lub nowszej .

Typ wyliczeniowy

&quot;requestHeaders&quot;
Określa, że w zdarzeniu powinien znaleźć się nagłówek żądania.

"extraHeaders"
Określa, że nagłówki mogą naruszać zasady CORS.

RequestFilter

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

Właściwości

  • tabId

    liczba opcjonalnie

  • typy

    ResourceType[] opcjonalny

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

  • adresy

    ciąg znaków[]

    Lista adresów URL lub wzorców adresów URL. Żądania, które nie mogą pasować do żadnego z adresów URL, są odfiltrowywane.

  • windowId

    liczba opcjonalnie

ResourceType

Chrome w wersji 44 lub nowszej .

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.

&quot;script&quot;
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.

&quot;xmlhttprequest&quot;
Określa zasób jako XMLHttpRequest.

"ping"
Określa zasób jako ping.

&quot;csp_report&quot;
Określa zasób jako raport dotyczący polityki treści (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, który nie znajduje się na liście typów.

UploadData

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

Właściwości

  • B

    dowolne opcjonalne

    Obiekt 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ń funkcji handlerBehaviorChanged w ciągu 10 minut. handlerBehaviorChanged to drogie wywołanie funkcji, które nie powinno być wywoływane często.

Wartość

20

Metody

handlerBehaviorChanged()

Obietnica .
chrome.webRequest.handlerBehaviorChanged(
  callback?: function,
)

Musi być wywoływana po zmianie działania modułów obsługi WebRequest w celu uniknięcia nieprawidłowej obsługi z powodu buforowania. Wywołanie tej funkcji jest drogie. Nie dzwonij zbyt często

Parametry

  • wywołanie zwrotne

    funkcja optional

    Parametr callback wygląda tak:

    () => void

Zwroty

  • Obietnica<void>

    Chrome 116 lub nowszy .

    Obietnice są obsługiwane w Manifest V3 i nowszych, ale wywołania zwrotne są podane w przypadku zgodność wsteczną. Nie można użyć obu w tym samym wywołaniu funkcji. Polecenie promowana jest realizowane z tym samym typem, który jest przekazywany do wywołania zwrotnego.

Wydarzenia

onActionIgnored

Chrome w wersji 70 lub nowszej .
chrome.webRequest.onActionIgnored.addListener(
  callback: function,
)

Uruchamiane, gdy proponowana zmiana rozszerzenia w żądaniu sieciowym zostanie zignorowana. Dzieje się tak w przypadku konfliktów z innymi rozszerzeniami.

Parametry

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

    (details: object) => void

    • szczegóły

      Obiekt

      • działanie

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

      • requestId

        ciąg znaków

        Identyfikator żądania. Identyfikatory żądań są unikalne w obrębie sesji przeglądarki. Dzięki temu można je wykorzystać do powiązania różnych zdarzeń w tym samym żądaniu.

onAuthRequired

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

Uruchamiane po otrzymaniu błędu uwierzytelniania. Mają trzy opcje: może podać dane uwierzytelniające, anulować żądanie i wyświetlić stronę błędu lub nie podejmować żadnych działań w wyzwaniu. Jeśli zostaną podane nieprawidłowe dane logowania użytkownika, może ono zostać wywołane kilka razy w przypadku tego samego żądania. Pamiętaj, że w parametrze extraInfoSpec musisz podać tylko jeden z trybów 'blocking' lub 'asyncBlocking'.

Parametry

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

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

    • szczegóły

      Obiekt

      • rywal

        Obiekt

        Serwer żądający uwierzytelnienia.

        • host

          ciąg znaków

        • port

          liczba

      • documentId

        ciąg znaków

        Chrome 106 lub nowszy .

        Identyfikator UUID dokumentu przesyłającego żądanie.

      • Chrome 106 lub nowszy .

        Cykl życia dokumentu.

      • frameId

        liczba

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

      • Chrome 106 lub nowszy .

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

      • inicjator

        ciąg znaków opcjonalny

        Chrome w wersji 63 lub nowszej .

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

      • isProxy

        wartość logiczna

        True (prawda) w przypadku Proxy-Authentication, false dla witryny WWW-Authenticate.

      • method

        ciąg znaków

        Standardowa metoda HTTP.

      • parentDocumentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowszy .

        Identyfikator UUID dokumentu nadrzędnego, w którym znajduje się ta ramka. Ta wartość nie jest ustawiona, jeśli nie ma elementu nadrzędnego.

      • parentFrameId

        liczba

        Identyfikator ramki otaczającej klatkę, z której wysłano żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1.

      • obszar

        ciąg znaków opcjonalny

        Obszar uwierzytelniania udostępniany przez serwer (jeśli istnieje).

      • requestId

        ciąg znaków

        Identyfikator żądania. Identyfikatory żądań są unikalne w obrębie sesji przeglądarki. Dzięki temu można je wykorzystać do powiązania różnych zdarzeń w tym samym żądaniu.

      • responseHeaders

        HttpHeaders opcjonalnie

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

      • schemat

        ciąg znaków

        Schemat uwierzytelniania, np. Podstawowe lub Podsumowanie.

      • statusCode

        liczba

        Chrome w wersji 43 lub nowszej .

        Standardowy kod stanu HTTP zwrócony przez serwer.

      • statusLine

        ciąg znaków

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

      • tabId

        liczba

        Identyfikator karty, na której zachodzi żądanie. Jeśli żądanie nie jest związane z kartą, ustaw wartość –1.

      • timeStamp

        liczba

        Czas wywołania tego sygnału (w milisekundach od początku epoki).

      • Sposób wykorzystania żądanego zasobu.

      • URL

        ciąg znaków

    • asyncCallback

      funkcja optional

      Chrome w wersji 58 lub nowszej .

      Parametr asyncCallback wygląda tak:

      (response: BlockingResponse) => void

    • returns

      BlockingResponse | nie zdefiniowano

      Jeśli „blokuję” jest określony w elemencie „extraInfoSpec” , detektor zdarzeń powinien zwrócić obiekt tego typu.

  • extraInfoSpec

    OnAuthRequiredOptions[] opcjonalny

onBeforeRedirect

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

Uruchamiane, gdy zbliża się przekierowanie zainicjowane przez serwer.

Parametry

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

    (details: object) => void

    • szczegóły

      Obiekt

      • documentId

        ciąg znaków

        Chrome 106 lub nowszy .

        Identyfikator UUID dokumentu przesyłającego żądanie.

      • Chrome 106 lub nowszy .

        Cykl życia dokumentu.

      • frameId

        liczba

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

      • Chrome 106 lub nowszy .

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

      • fromCache

        wartość logiczna

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

      • inicjator

        ciąg znaków opcjonalny

        Chrome w wersji 63 lub nowszej .

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

      • ip

        ciąg znaków opcjonalny

        Adres IP serwera, na który żądanie zostało rzeczywiście wysłane. Pamiętaj, że może to być dosłowny adres IPv6.

      • method

        ciąg znaków

        Standardowa metoda HTTP.

      • parentDocumentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowszy .

        Identyfikator UUID dokumentu nadrzędnego, w którym znajduje się ta ramka. Ta wartość nie jest ustawiona, jeśli nie ma elementu nadrzędnego.

      • parentFrameId

        liczba

        Identyfikator ramki otaczającej klatkę, z której wysłano żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1.

      • redirectUrl

        ciąg znaków

        Nowy adres URL.

      • requestId

        ciąg znaków

        Identyfikator żądania. Identyfikatory żądań są unikalne w obrębie sesji przeglądarki. Dzięki temu można je wykorzystać do powiązania różnych zdarzeń w tym samym żądaniu.

      • responseHeaders

        HttpHeaders opcjonalnie

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

      • statusCode

        liczba

        Standardowy kod stanu HTTP zwrócony przez serwer.

      • statusLine

        ciąg znaków

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

      • tabId

        liczba

        Identyfikator karty, na której zachodzi żądanie. Jeśli żądanie nie jest związane z kartą, ustaw wartość –1.

      • timeStamp

        liczba

        Czas wywołania tego sygnału (w milisekundach od początku epoki).

      • Sposób wykorzystania żądanego zasobu.

      • URL

        ciąg znaków

  • extraInfoSpec

onBeforeRequest

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

Uruchamiane, gdy żądanie ma miejsce.

Parametry

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

    (details: object) => BlockingResponse | undefined

    • szczegóły

      Obiekt

      • documentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowszy .

        Identyfikator UUID dokumentu przesyłającego żądanie.

      • documentLifecycle
        Chrome 106 lub nowszy .

        Cykl życia dokumentu.

      • frameId

        liczba

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

      • frameType
        Chrome 106 lub nowszy .

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

      • inicjator

        ciąg znaków opcjonalny

        Chrome w wersji 63 lub nowszej .

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

      • method

        ciąg znaków

        Standardowa metoda HTTP.

      • parentDocumentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowszy .

        Identyfikator UUID dokumentu nadrzędnego, w którym znajduje się ta ramka. Ta wartość nie jest ustawiona, jeśli nie ma elementu nadrzędnego.

      • parentFrameId

        liczba

        Identyfikator ramki otaczającej klatkę, z której wysłano żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1.

      • requestBody

        obiekt opcjonalny

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

        • błąd

          ciąg znaków opcjonalny

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

        • formData

          obiekt opcjonalny

          Jeśli metoda żądania to POST, a treść jest sekwencją par klucz-wartość zakodowanych w UTF8 zakodowanych jako multipart/form-data lub application/x-www-form-urlencoded, ten słownik jest dostępny, a dla każdego klucza zawiera listę wszystkich wartości danego klucza. Jeśli dane należą do innego typu zawartości lub mają nieprawidłowy format, słownik nie jest dostępny. Przykładowa wartość tego słownika to {'key': ['value1', 'value2']}.

        • nieprzetworzone

          UploadData[] 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.

      • requestId

        ciąg znaków

        Identyfikator żądania. Identyfikatory żądań są unikalne w obrębie sesji przeglądarki. Dzięki temu można je wykorzystać do powiązania różnych zdarzeń w tym samym żądaniu.

      • tabId

        liczba

        Identyfikator karty, na której zachodzi żądanie. Jeśli żądanie nie jest związane z kartą, ustaw wartość –1.

      • timeStamp

        liczba

        Czas wywołania tego sygnału (w milisekundach od początku epoki).

      • Sposób wykorzystania żądanego zasobu.

      • URL

        ciąg znaków

    • returns

      BlockingResponse | nie zdefiniowano

      Jeśli „blokuję” jest określony w elemencie „extraInfoSpec” , detektor zdarzeń powinien zwrócić obiekt tego typu.

  • extraInfoSpec

    OnBeforeRequestOptions[] opcjonalny.

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 to nastąpić po nawiązaniu połączenia TCP z serwerem, ale przed wysłaniem danych HTTP.

Parametry

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

    (details: object) => BlockingResponse | undefined

    • szczegóły

      Obiekt

      • documentId

        ciąg znaków

        Chrome 106 lub nowszy .

        Identyfikator UUID dokumentu przesyłającego żądanie.

      • Chrome 106 lub nowszy .

        Cykl życia dokumentu.

      • frameId

        liczba

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

      • Chrome 106 lub nowszy .

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

      • inicjator

        ciąg znaków opcjonalny

        Chrome w wersji 63 lub nowszej .

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

      • method

        ciąg znaków

        Standardowa metoda HTTP.

      • parentDocumentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowszy .

        Identyfikator UUID dokumentu nadrzędnego, w którym znajduje się ta ramka. Ta wartość nie jest ustawiona, jeśli nie ma elementu nadrzędnego.

      • parentFrameId

        liczba

        Identyfikator ramki otaczającej klatkę, z której wysłano żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1.

      • requestHeaders

        HttpHeaders opcjonalnie

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

      • requestId

        ciąg znaków

        Identyfikator żądania. Identyfikatory żądań są unikalne w obrębie sesji przeglądarki. Dzięki temu można je wykorzystać do powiązania różnych zdarzeń w tym samym żądaniu.

      • tabId

        liczba

        Identyfikator karty, na której zachodzi żądanie. Jeśli żądanie nie jest związane z kartą, ustaw wartość –1.

      • timeStamp

        liczba

        Czas wywołania tego sygnału (w milisekundach od początku epoki).

      • Sposób wykorzystania żądanego zasobu.

      • URL

        ciąg znaków

    • returns

      BlockingResponse | nie zdefiniowano

      Jeśli „blokuję” jest określony w elemencie „extraInfoSpec” , detektor zdarzeń powinien zwrócić obiekt tego typu.

  • extraInfoSpec

onCompleted

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

Uruchamiane po zrealizowaniu żądania.

Parametry

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

    (details: object) => void

    • szczegóły

      Obiekt

      • documentId

        ciąg znaków

        Chrome 106 lub nowszy .

        Identyfikator UUID dokumentu przesyłającego żądanie.

      • Chrome 106 lub nowszy .

        Cykl życia dokumentu.

      • frameId

        liczba

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

      • Chrome 106 lub nowszy .

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

      • fromCache

        wartość logiczna

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

      • inicjator

        ciąg znaków opcjonalny

        Chrome w wersji 63 lub nowszej .

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

      • ip

        ciąg znaków opcjonalny

        Adres IP serwera, na który żądanie zostało rzeczywiście wysłane. Pamiętaj, że może to być dosłowny adres IPv6.

      • method

        ciąg znaków

        Standardowa metoda HTTP.

      • parentDocumentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowszy .

        Identyfikator UUID dokumentu nadrzędnego, w którym znajduje się ta ramka. Ta wartość nie jest ustawiona, jeśli nie ma elementu nadrzędnego.

      • parentFrameId

        liczba

        Identyfikator ramki otaczającej klatkę, z której wysłano żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1.

      • requestId

        ciąg znaków

        Identyfikator żądania. Identyfikatory żądań są unikalne w obrębie sesji przeglądarki. Dzięki temu można je wykorzystać do powiązania różnych zdarzeń w tym samym żądaniu.

      • responseHeaders

        HttpHeaders opcjonalnie

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

      • statusCode

        liczba

        Standardowy kod stanu HTTP zwrócony przez serwer.

      • statusLine

        ciąg znaków

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

      • tabId

        liczba

        Identyfikator karty, na której zachodzi żądanie. Jeśli żądanie nie jest związane z kartą, ustaw wartość –1.

      • timeStamp

        liczba

        Czas wywołania tego sygnału (w milisekundach od początku epoki).

      • Sposób wykorzystania żądanego zasobu.

      • URL

        ciąg znaków

  • extraInfoSpec

    OnCompletedOptions[] opcjonalny.

onErrorOccurred

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

Uruchamiane po wystąpieniu błędu.

Parametry

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

    (details: object) => void

    • szczegóły

      Obiekt

      • documentId

        ciąg znaków

        Chrome 106 lub nowszy .

        Identyfikator UUID dokumentu przesyłającego żądanie. Ta wartość nie jest dostępna, jeśli żądanie dotyczy nawigacji po ramce.

      • Chrome 106 lub nowszy .

        Cykl życia dokumentu.

      • błąd

        ciąg znaków

        Opis błędu. Nie ma gwarancji, że ten ciąg znaków pozostanie zgodny wstecznie w różnych wersjach. Nie wolno analizować treści ani podejmować na jej podstawie działań.

      • frameId

        liczba

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

      • Chrome 106 lub nowszy .

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

      • fromCache

        wartość logiczna

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

      • inicjator

        ciąg znaków opcjonalny

        Chrome w wersji 63 lub nowszej .

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

      • ip

        ciąg znaków opcjonalny

        Adres IP serwera, na który żądanie zostało rzeczywiście wysłane. Pamiętaj, że może to być dosłowny adres IPv6.

      • method

        ciąg znaków

        Standardowa metoda HTTP.

      • parentDocumentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowszy .

        Identyfikator UUID dokumentu nadrzędnego, w którym znajduje się ta ramka. Ta wartość nie jest ustawiona, jeśli nie ma elementu nadrzędnego.

      • parentFrameId

        liczba

        Identyfikator ramki otaczającej klatkę, z której wysłano żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1.

      • requestId

        ciąg znaków

        Identyfikator żądania. Identyfikatory żądań są unikalne w obrębie sesji przeglądarki. Dzięki temu można je wykorzystać do powiązania różnych zdarzeń w tym samym żądaniu.

      • tabId

        liczba

        Identyfikator karty, na której zachodzi żądanie. Jeśli żądanie nie jest związane z kartą, ustaw wartość –1.

      • timeStamp

        liczba

        Czas wywołania tego sygnału (w milisekundach od początku epoki).

      • Sposób wykorzystania żądanego zasobu.

      • URL

        ciąg znaków

  • extraInfoSpec

    OnErrorOccurredOptions[] opcjonalny.

onHeadersReceived

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

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

Parametry

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

    (details: object) => BlockingResponse | undefined

    • szczegóły

      Obiekt

      • documentId

        ciąg znaków

        Chrome 106 lub nowszy .

        Identyfikator UUID dokumentu przesyłającego żądanie.

      • Chrome 106 lub nowszy .

        Cykl życia dokumentu.

      • frameId

        liczba

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

      • Chrome 106 lub nowszy .

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

      • inicjator

        ciąg znaków opcjonalny

        Chrome w wersji 63 lub nowszej .

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

      • method

        ciąg znaków

        Standardowa metoda HTTP.

      • parentDocumentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowszy .

        Identyfikator UUID dokumentu nadrzędnego, w którym znajduje się ta ramka. Ta wartość nie jest ustawiona, jeśli nie ma elementu nadrzędnego.

      • parentFrameId

        liczba

        Identyfikator ramki otaczającej klatkę, z której wysłano żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1.

      • requestId

        ciąg znaków

        Identyfikator żądania. Identyfikatory żądań są unikalne w obrębie sesji przeglądarki. Dzięki temu można je wykorzystać do powiązania różnych zdarzeń w tym samym żądaniu.

      • responseHeaders

        HttpHeaders opcjonalnie

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

      • statusCode

        liczba

        Chrome w wersji 43 lub nowszej .

        Standardowy kod stanu HTTP zwrócony przez serwer.

      • statusLine

        ciąg znaków

        Wiersz stanu HTTP odpowiedzi lub „HTTP/0.9 200 OK” ciąg tekstowy dla odpowiedzi HTTP/0.9 (tzn. odpowiedzi bez wiersza stanu).

      • tabId

        liczba

        Identyfikator karty, na której zachodzi żądanie. Jeśli żądanie nie jest związane z kartą, ustaw wartość –1.

      • timeStamp

        liczba

        Czas wywołania tego sygnału (w milisekundach od początku epoki).

      • Sposób wykorzystania żądanego zasobu.

      • URL

        ciąg znaków

    • returns

      BlockingResponse | nie zdefiniowano

      Jeśli „blokuję” jest określony w elemencie „extraInfoSpec” , detektor zdarzeń powinien zwrócić obiekt tego typu.

  • extraInfoSpec

onResponseStarted

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

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

Parametry

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

    (details: object) => void

    • szczegóły

      Obiekt

      • documentId

        ciąg znaków

        Chrome 106 lub nowszy .

        Identyfikator UUID dokumentu przesyłającego żądanie.

      • Chrome 106 lub nowszy .

        Cykl życia dokumentu.

      • frameId

        liczba

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

      • Chrome 106 lub nowszy .

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

      • fromCache

        wartość logiczna

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

      • inicjator

        ciąg znaków opcjonalny

        Chrome w wersji 63 lub nowszej .

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

      • ip

        ciąg znaków opcjonalny

        Adres IP serwera, na który żądanie zostało rzeczywiście wysłane. Pamiętaj, że może to być dosłowny adres IPv6.

      • method

        ciąg znaków

        Standardowa metoda HTTP.

      • parentDocumentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowszy .

        Identyfikator UUID dokumentu nadrzędnego, w którym znajduje się ta ramka. Ta wartość nie jest ustawiona, jeśli nie ma elementu nadrzędnego.

      • parentFrameId

        liczba

        Identyfikator ramki otaczającej klatkę, z której wysłano żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1.

      • requestId

        ciąg znaków

        Identyfikator żądania. Identyfikatory żądań są unikalne w obrębie sesji przeglądarki. Dzięki temu można je wykorzystać do powiązania różnych zdarzeń w tym samym żądaniu.

      • responseHeaders

        HttpHeaders opcjonalnie

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

      • statusCode

        liczba

        Standardowy kod stanu HTTP zwrócony przez serwer.

      • statusLine

        ciąg znaków

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

      • tabId

        liczba

        Identyfikator karty, na której zachodzi żądanie. Jeśli żądanie nie jest związane z kartą, ustaw wartość –1.

      • timeStamp

        liczba

        Czas wywołania tego sygnału (w milisekundach od początku epoki).

      • Sposób wykorzystania żądanego zasobu.

      • URL

        ciąg znaków

  • extraInfoSpec

onSendHeaders

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

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

Parametry

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

    (details: object) => void

    • szczegóły

      Obiekt

      • documentId

        ciąg znaków

        Chrome 106 lub nowszy .

        Identyfikator UUID dokumentu przesyłającego żądanie.

      • Chrome 106 lub nowszy .

        Cykl życia dokumentu.

      • frameId

        liczba

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

      • Chrome 106 lub nowszy .

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

      • inicjator

        ciąg znaków opcjonalny

        Chrome w wersji 63 lub nowszej .

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

      • method

        ciąg znaków

        Standardowa metoda HTTP.

      • parentDocumentId

        ciąg znaków opcjonalny

        Chrome 106 lub nowszy .

        Identyfikator UUID dokumentu nadrzędnego, w którym znajduje się ta ramka. Ta wartość nie jest ustawiona, jeśli nie ma elementu nadrzędnego.

      • parentFrameId

        liczba

        Identyfikator ramki otaczającej klatkę, z której wysłano żądanie. Jeśli nie ma ramki nadrzędnej, ustaw wartość -1.

      • requestHeaders

        HttpHeaders opcjonalnie

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

      • requestId

        ciąg znaków

        Identyfikator żądania. Identyfikatory żądań są unikalne w obrębie sesji przeglądarki. Dzięki temu można je wykorzystać do powiązania różnych zdarzeń w tym samym żądaniu.

      • tabId

        liczba

        Identyfikator karty, na której zachodzi żądanie. Jeśli żądanie nie jest związane z kartą, ustaw wartość –1.

      • timeStamp

        liczba

        Czas wywołania tego sygnału (w milisekundach od początku epoki).

      • Sposób wykorzystania żądanego zasobu.

      • URL

        ciąg znaków

  • extraInfoSpec

    OnSendHeadersOptions[] opcjonalny.