Opis
Interfejs chrome.webRequest
API pozwala obserwować i analizować ruch oraz przechwytywać, blokować i modyfikować przesyłane żądania.
Uprawnienia
webRequest
Plik manifestu
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/*"
],
...
}
Od wersji Chrome 108 możesz asynchronicznie podawać dane logowania do zdarzeń onAuthRequired
, jeśli używasz interfejsów "webRequest"
i "webRequestAuthProvider"
uprawnień.
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ń:
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.
Pojęcia
Jak wyjaśniamy w sekcjach poniżej, zdarzenia w interfejsie API żądań internetowych korzystają z identyfikatorów żądań. opcjonalnie określać filtry i dodatkowe informacje podczas rejestrowania detektorów zdarzeń.
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, orazimage
(obraz w witrynie). ZobaczwebRequest.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.
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 schematamiws://
iwss://
są 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
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
Typ wyliczeniowy
"redirect"
"request_headers"
"response_headers"
"auth_credentials"
OnAuthRequiredOptions
Typ wyliczeniowy
"responseHeaders"
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.
"asyncBlocking"
Określa, że funkcja wywołania zwrotnego jest obsługiwana asynchronicznie.
"extraHeaders"
Określa, że nagłówki mogą naruszać zasady CORS.
OnBeforeRedirectOptions
Typ wyliczeniowy
"responseHeaders"
Określa, że w zdarzeniu powinny być uwzględnione nagłówki odpowiedzi.
"extraHeaders"
Określa, że nagłówki mogą naruszać zasady CORS.
OnBeforeRequestOptions
Typ wyliczeniowy
"blocking"
Określa, że żądanie jest zablokowane, dopóki funkcja wywołania zwrotnego nie zostanie zwrócona.
"requestBody"
Określa, że w zdarzeniu ma zostać uwzględniona treść żądania.
"extraHeaders"
Określa, że nagłówki mogą naruszać zasady CORS.
OnBeforeSendHeadersOptions
Typ wyliczeniowy
"requestHeaders"
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
Typ wyliczeniowy
"responseHeaders"
Określa, że w zdarzeniu powinny być uwzględnione nagłówki odpowiedzi.
"extraHeaders"
Określa, że nagłówki mogą naruszać zasady CORS.
OnErrorOccurredOptions
Wartość
"extraHeaders"
OnHeadersReceivedOptions
Typ wyliczeniowy
"blocking"
Określa, że żądanie jest zablokowane, dopóki funkcja wywołania zwrotnego nie zostanie zwrócona.
"responseHeaders"
Określa, że w zdarzeniu powinny być uwzględnione nagłówki odpowiedzi.
"extraHeaders"
Określa, że nagłówki mogą naruszać zasady CORS.
OnResponseStartedOptions
Typ wyliczeniowy
"responseHeaders"
Określa, że w zdarzeniu powinny być uwzględnione nagłówki odpowiedzi.
"extraHeaders"
Określa, że nagłówki mogą naruszać zasady CORS.
OnSendHeadersOptions
Typ wyliczeniowy
"requestHeaders"
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
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 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()
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 tylko na platformie Manifest V3 i nowszych, inne platformy muszą używać wywołań zwrotnych.
Wydarzenia
onActionIgnored
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.
-
documentLifecycleChrome 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
tomain_frame
lubsub_frame
),frameId
wskazuje identyfikator ramki, a nie ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie danej karty. -
frameTypeChrome 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).
-
typ
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
-
odpowiedź
-
-
returns
BlockingResponse | nie zdefiniowano
Jeśli „blokuję” jest określony w elemencie „extraInfoSpec” , detektor zdarzeń powinien zwrócić obiekt tego typu.
-
-
filtr
-
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.
-
documentLifecycleChrome 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
tomain_frame
lubsub_frame
),frameId
wskazuje identyfikator ramki, a nie ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie danej karty. -
frameTypeChrome 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).
-
typ
Sposób wykorzystania żądanego zasobu.
-
URL
ciąg znaków
-
-
-
filtr
-
extraInfoSpec
OnBeforeRedirectOptions[] opcjonalnie
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
extensionTypes.DocumentLifecycle optional
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
tomain_frame
lubsub_frame
),frameId
wskazuje identyfikator ramki, a nie ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie danej karty. -
frameType
extensionTypes.FrameType optional
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).
-
typ
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.
-
-
filtr
-
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.
-
documentLifecycleChrome 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
tomain_frame
lubsub_frame
),frameId
wskazuje identyfikator ramki, a nie ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie danej karty. -
frameTypeChrome 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).
-
typ
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.
-
-
filtr
-
extraInfoSpec
OnBeforeSendHeadersOptions[] opcjonalnie.
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.
-
documentLifecycleChrome 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
tomain_frame
lubsub_frame
),frameId
wskazuje identyfikator ramki, a nie ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie danej karty. -
frameTypeChrome 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).
-
typ
Sposób wykorzystania żądanego zasobu.
-
URL
ciąg znaków
-
-
-
filtr
-
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.
-
documentLifecycleChrome 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
tomain_frame
lubsub_frame
),frameId
wskazuje identyfikator ramki, a nie ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie danej karty. -
frameTypeChrome 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).
-
typ
Sposób wykorzystania żądanego zasobu.
-
URL
ciąg znaków
-
-
-
filtr
-
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.
-
documentLifecycleChrome 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
tomain_frame
lubsub_frame
),frameId
wskazuje identyfikator ramki, a nie ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie danej karty. -
frameTypeChrome 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).
-
typ
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.
-
-
filtr
-
extraInfoSpec
OnHeadersReceivedOptions[] opcjonalny.
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.
-
documentLifecycleChrome 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
tomain_frame
lubsub_frame
),frameId
wskazuje identyfikator ramki, a nie ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie danej karty. -
frameTypeChrome 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).
-
typ
Sposób wykorzystania żądanego zasobu.
-
URL
ciąg znaków
-
-
-
filtr
-
extraInfoSpec
OnResponseStartedOptions[] opcjonalny.
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.
-
documentLifecycleChrome 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
tomain_frame
lubsub_frame
),frameId
wskazuje identyfikator ramki, a nie ramki zewnętrznej. Identyfikatory ramek są unikalne w obrębie danej karty. -
frameTypeChrome 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).
-
typ
Sposób wykorzystania żądanego zasobu.
-
URL
ciąg znaków
-
-
-
filtr
-
extraInfoSpec
OnSendHeadersOptions[] opcjonalny.