Opis
Interfejs API chrome.webRequest
umożliwia obserwowanie i analizę ruchu oraz przechwytywanie, blokowanie lub modyfikowanie przesyłanych żądań.
Uprawnienia
webRequest
Aby korzystać z interfejsu API żądania internetowego, musisz zadeklarować uprawnienia "webRequest"
w pliku manifestu rozszerzenia oraz niezbędne uprawnienia hosta. Aby przechwycić żądanie zasobu podrzędnego, rozszerzenie musi mieć dostęp zarówno do żądanego adresu URL, jak i do jego inicjatora. Na przykład:
{
"name": "My extension",
...
"permissions": [
"webRequest"
],
"host_permissions": [
"*://*.google.com/*"
],
...
}
webRequestBlocking
Wymagane do zarejestrowania modułów obsługi zdarzeń blokujących. Od platformy Manifest V3 jest on dostępny tylko w przypadku rozszerzeń zainstalowanych zgodnie z zasadami.
webRequestAuthProvider
Wymagane do korzystania z metody onAuthRequired
. Więcej informacji znajdziesz w sekcji Obsługa uwierzytelniania.
Pojęcia i zastosowanie
Cykl życia żądań
Interfejs API żądań sieciowych definiuje zbiór zdarzeń, które podążają za cyklem życia żądania sieciowego. Możesz ich używać do obserwowania i analizowania ruchu. Niektóre zdarzenia synchroniczne umożliwiają przechwytywanie, blokowanie lub modyfikowanie żądania.
Przedstawiamy cykl życia zdarzeń w przypadku udanych żądań, a po nich znajdują się definicje zdarzeń:
onBeforeRequest
(opcjonalnie synchroniczne)- Uruchamia się, gdy żądanie ma wkrótce wystąpić. To zdarzenie jest wysyłane przed nawiązaniem połączenia TCP i można go użyć do anulowania lub przekierowania żądań.
onBeforeSendHeaders
(opcjonalnie synchroniczne)- Uruchamia się, gdy żądanie ma nastąpić i przygotowano początkowe nagłówki. To zdarzenie 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ć zmienić żądanie. Instrukcję obsługi znajdziesz w sekcji Szczegóły implementacji. Pozwala ono anulować prośbę. onSendHeaders
- Uruchamia się, gdy wszystkie rozszerzenia miały szansę zmodyfikować nagłówki żądań i wyświetla ostateczną wersję (*). Zdarzenie jest wywoływane przed przesłaniem nagłówków do sieci. To zdarzenie ma charakter informacyjny i jest obsługiwane asynchronicznie. Nie można modyfikować ani anulować żądania.
onHeadersReceived
(opcjonalnie synchroniczne)- Uruchamia się za każdym razem, gdy zostanie odebrany nagłówek odpowiedzi HTTP(S). Ze względu na przekierowania i żądania uwierzytelnienia może się to zdarzyć kilka razy w ramach jednego żądania. To zdarzenie umożliwia rozszerzeniom dodawanie, modyfikowanie i usuwanie nagłówków odpowiedzi, takich jak przychodzące nagłówki Content-Type. Instrukcje buforowania są przetwarzane przed wywołaniem tego zdarzenia, więc modyfikowanie nagłówków, takich jak Cache-Control, nie ma wpływu na pamięć podręczną przeglądarki. Pozwala też anulować lub przekierować prośbę.
onAuthRequired
(opcjonalnie synchroniczne)- Uruchamia się, gdy żądanie wymaga uwierzytelnienia użytkownika. To zdarzenie może być obsługiwane synchronicznie w celu dostarczenia danych uwierzytelniających. Pamiętaj, że rozszerzenia mogą podawać nieprawidłowe dane logowania. Uważaj, aby nie zapętlać się w nieskończonej pętli, podając wielokrotnie nieprawidłowe dane logowania. W ten sposób możesz też anulować prośbę.
onBeforeRedirect
- Uruchamia się, gdy ma nastąpić przekierowanie. Przekierowywanie może być aktywowane przez kod odpowiedzi HTTP lub rozszerzenie. To zdarzenie ma charakter informacyjny i jest obsługiwane asynchronicznie. Nie można jej zmienić ani anulować.
onResponseStarted
- Uruchamia się po odebraniu pierwszego bajtu treści odpowiedzi. W przypadku żądań HTTP oznacza to, że dostępny jest wiersz stanu i nagłówki odpowiedzi. To zdarzenie ma charakter informacyjny i jest obsługiwane asynchronicznie. Nie pozwala na modyfikowanie ani anulowanie żądania.
onCompleted
- Uruchamia się po przetworzeniu żądania.
onErrorOccurred
- Uruchamia się, gdy nie udało się przetworzyć żądania.
Interfejs API żądania sieciowego gwarantuje, że dla każdego żądania uruchamiane jest zdarzenie onCompleted
lub onErrorOccurred
, z jednym wyjątkiem: jeśli żądanie zostanie przekierowane na adres URL data://
, ostatnim zgłoszonym zdarzeniem jest onBeforeRedirect
.
* Pamiętaj, że interfejs API żądań sieciowych prezentuje rozszerzeniu abstrakcyjny stos sieci. Jedno żądanie adresu URL można podzielić na kilka żądań HTTP (np. aby pobrać poszczególne zakresy bajtów z dużego pliku) lub wykonać je przez stos sieci bez komunikowania się z siecią. Z tego powodu interfejs API nie podaje ostatecznych nagłówków HTTP wysyłanych do sieci. Na przykład wszystkie nagłówki związane z zapisywaniem w pamięci podręcznej są dla rozszerzenia niewidoczne.
Następujące nagłówki nie są obecnie podawane w zdarzeniu onBeforeSendHeaders
. Nie możemy zagwarantować, że ta lista będzie kompletna ani stabilna.
- Upoważnienie
- Cache-Control
- Kontakt
- Content-Length
- Host
- Jeśli-zmodyfikowano-od
- Jeśli-brak dopasowania
- Zakres argumentu
- Częściowe dane
- Pragma
- Proxy-Authorization
- Połączenie z serwerem proxy
- Kodowanie transferu
Od Chrome 79 modyfikacje nagłówka żądania wpływają na kontrole CORS. Jeśli zmodyfikowane nagłówki żądań z innych domen nie spełniają kryteriów, spowoduje to wysłanie procesu wstępnego CORS z pytaniem do serwera, czy nagłówki mogą zostać zaakceptowane. Jeśli naprawdę musisz zmienić nagłówki w sposób naruszający protokół CORS, musisz podać 'extraHeaders'
w elemencie opt_extraInfoSpec
. Z drugiej strony modyfikacje nagłówków odpowiedzi nie służą do oszukiwania kontroli CORS. Jeśli musisz oszukać protokół CORS, musisz też podać 'extraHeaders'
w przypadku modyfikacji odpowiedzi.
Od Chrome w wersji 79 interfejs API webRequest nie przechwytuje domyślnie żądań i odpowiedzi wstępnych CORS. Proces wstępny CORS dla adresu URL żądania jest widoczny dla rozszerzenia, jeśli istnieje odbiornik z parametrem 'extraHeaders'
określonym w polu opt_extraInfoSpec
adresu URL żądania.
onBeforeRequest
może też pobrać plik 'extraHeaders'
z Chrome 79.
Począwszy od Chrome 79 ten nagłówek żądania nie jest dostępny i nie można go zmodyfikować ani usunąć bez określenia 'extraHeaders'
w opt_extraInfoSpec
:
- Punkt początkowy
Począwszy od Chrome 72, jeśli musisz zmodyfikować odpowiedzi, zanim funkcja Cross Origin Read Blokowanie (CORB) będzie mogła zablokować odpowiedź, musisz określić 'extraHeaders'
w polu opt_extraInfoSpec
.
Począwszy od Chrome 72 te nagłówki żądań nie są dostarczane i nie można ich modyfikować ani usuwać bez określenia 'extraHeaders'
w opt_extraInfoSpec
:
- Accept-Language (Akceptuj język)
- Akceptuj kodowanie
- Strona odsyłająca
- Plik cookie
Począwszy od Chrome 72 nagłówek odpowiedzi Set-Cookie
nie jest dostarczany i nie można go zmodyfikować ani usunąć bez określenia 'extraHeaders'
w elemencie opt_extraInfoSpec
.
Począwszy od Chrome 89 nie można skutecznie zmodyfikować ani usunąć nagłówka odpowiedzi X-Frame-Options
bez określenia parametru 'extraHeaders'
w komponencie opt_extraInfoSpec
.
Interfejs webRequest API ujawnia tylko te żądania, do których rozszerzenie ma uprawnienia do wyświetlania, biorąc pod uwagę swoje uprawnienia hosta. Ponadto dostępne są tylko te schematy: http://
, https://
, ftp://
, file://
, ws://
(od Chrome 58), wss://
(od Chrome 58), urn:
(od Chrome 91) i chrome-extension://
. Dodatkowo nawet niektóre żądania z adresami URL korzystającymi z jednego z powyższych schematów są ukryte. Obejmują one żądania chrome-extension://other_extension_id
, w których other_extension_id
nie jest identyfikatorem rozszerzenia obsługującego żądanie, https://www.google.com/chrome
i inne poufne żądania, których podstawą działania są funkcje przeglądarki. Synchroniczne żądania XMLHttpRequest z rozszerzenia nie blokują modułów obsługi zdarzeń, aby zapobiegać zakleszczeniu. Pamiętaj, że w przypadku niektórych obsługiwanych schematów zbiór dostępnych zdarzeń może być ograniczony ze względu na charakter odpowiedniego protokołu. Na przykład w przypadku tego pliku: schemat można wysłać tylko onBeforeRequest
, onResponseStarted
, onCompleted
i onErrorOccurred
.
Począwszy od Chrome 58 interfejs API webRequest obsługuje przechwytywanie żądania uzgadniania połączenia WebSocket. Ponieważ uzgadnianie połączenia jest realizowane za pomocą żądania uaktualnienia HTTP, przepływ pracy pasuje do modelu webRequest zorientowanego na HTTP. Pamiętaj, że interfejs API nie przechwytuje:
- Poszczególne wiadomości wysyłane przez ustanowione połączenie WebSocket.
- WebSocket zamyka połączenie.
Przekierowania nie są obsługiwane w przypadku żądań WebSocket.
Począwszy od Chrome 72 rozszerzenie będzie mogło przechwytywać żądanie tylko wtedy, gdy ma uprawnienia hosta zarówno do żądanego adresu URL, jak i do inicjatora żądania.
Od Chrome 96 interfejs API webRequest obsługuje przechwytywanie informacji WebTransport przez żądanie uzgadniania połączenia HTTP/3. Ponieważ uzgadnianie połączenia jest realizowane za pomocą żądania połączenia HTTP, jego przepływ pasuje do modelu żądania webRequest zorientowanego na HTTP. Uwaga:
- Po zainicjowaniu sesji rozszerzenia nie mogą jej obserwować ani interweniować za pomocą interfejsu webRequest API.
- Modyfikowanie nagłówków żądań HTTP w pliku
onBeforeSendHeaders
jest ignorowane. - Przekierowania i uwierzytelnianie nie są obsługiwane w WebTransport przez HTTP/3.
Identyfikatory żądań
Każde żądanie jest identyfikowane przez identyfikator. Ten identyfikator jest unikalny w ramach sesji przeglądarki i w kontekście rozszerzenia. Ta wartość pozostaje stała w trakcie cyklu życia żądania i można jej używać do dopasowywania zdarzeń w przypadku tego samego żądania. Pamiętaj, że kilka żądań HTTP jest mapowanych na jedno żądanie internetowe w przypadku przekierowania HTTP lub uwierzytelniania HTTP.
Rejestrowanie detektorów zdarzeń
Aby zarejestrować detektor zdarzeń na potrzeby żądania internetowego, użyj wariantu zwykłej funkcji addListener()
. Oprócz określenia funkcji wywołania zwrotnego musisz podać argument filtra i możesz podać opcjonalny dodatkowy argument info.
Trzy argumenty funkcji addListener()
interfejsu API żądania sieciowego mają te definicje:
var callback = function(details) {...};
var filter = {...};
var opt_extraInfoSpec = [...];
Oto przykład nasłuchiwania zdarzenia onBeforeRequest
:
chrome.webRequest.onBeforeRequest.addListener(
callback, filter, opt_extraInfoSpec);
Każde wywołanie addListener()
przyjmuje obowiązkową funkcję wywołania zwrotnego jako pierwszy parametr. Ta funkcja wywołania zwrotnego jest przekazywana do słownika zawierającego informacje o bieżącym żądaniu adresu URL. Informacje w tym słowniku zależą od typu zdarzenia oraz zawartości opt_extraInfoSpec
.
Jeśli opcjonalna tablica opt_extraInfoSpec
zawiera ciąg znaków 'blocking'
(dozwolony tylko w przypadku określonych zdarzeń), funkcja wywołania zwrotnego jest obsługiwana synchronicznie. Oznacza to, że żądanie jest blokowane do czasu zwrócenia funkcji wywołania zwrotnego. W takim przypadku wywołanie zwrotne może zwrócić kod webRequest.BlockingResponse
, który określa dalszy cykl życia żądania. W zależności od kontekstu ta odpowiedź umożliwia anulowanie lub przekierowanie żądania (onBeforeRequest
), anulowanie żądania lub modyfikowanie nagłówków (onBeforeSendHeaders
, onHeadersReceived
), a także anulowanie żądania lub podanie danych uwierzytelniających (onAuthRequired
).
Jeśli zamiast tego opcjonalna tablica opt_extraInfoSpec
zawiera ciąg 'asyncBlocking'
(dozwolone tylko w przypadku onAuthRequired
), rozszerzenie może wygenerować webRequest.BlockingResponse
asynchronicznie.
Element filter
webRequest.RequestFilter
pozwala ograniczyć liczbę żądań, w przypadku których zdarzenia są wywoływane w różnych wymiarach:
- Adresy URL
- Wzorce adresów URL, np.
*://www.google.com/foo*bar
. - Typy
- Typy żądań, na przykład
main_frame
(dokument, który jest wczytywany w ramce najwyższego poziomu),sub_frame
(dokument, który jest ładowany w przypadku umieszczonej ramki) iimage
(obraz na stronie internetowej). ZobaczwebRequest.RequestFilter
. - Identyfikator karty
- Identyfikator jednej karty.
- Identyfikator okna
- Identyfikator okna.
W zależności od typu zdarzenia możesz określić w żądaniu opt_extraInfoSpec
ciągi tekstowe, które będą prosić o dodatkowe informacje o żądaniu. Służy do podawania szczegółowych informacji o danych żądania tylko wtedy, gdy o to wyraźnie poprosisz.
Obsługa uwierzytelniania
Aby obsługiwać żądania uwierzytelniania HTTP, dodaj do pliku manifestu uprawnienie "webRequestAuthProvider"
:
{
"permissions": [
"webRequest",
"webRequestAuthProvider"
]
}
Pamiętaj, że to uprawnienie nie jest wymagane w przypadku rozszerzenia zainstalowanego w ramach zasad z uprawnieniem "webRequestBlocking"
.
Aby synchronicznie podawać 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 korzystającego z interfejsu API żądań sieciowych trzeba wziąć pod uwagę kilka szczegółów implementacji:
web_accessible_resources
Gdy rozszerzenie używa interfejsów API webRequest do przekierowywania żądania zasobu publicznego do zasobu niedostępnego z internetu, jest ono blokowane i powoduje błąd. Powyższa zasada obowiązuje nawet wtedy, gdy zasób, który nie jest dostępny z internetu, należy do rozszerzenia przekierowującego. Aby zadeklarować zasoby do użycia z interfejsami API deklarativeWebRequest, w pliku manifestu należy zadeklarować i wypełnić tablica "web_accessible_resources"
w sposób opisany tutaj.
Rozwiązanie konfliktu
W obecnej implementacji interfejsu API żądań sieciowych żądanie jest uznawane za anulowane, jeśli co najmniej 1 rozszerzenie poprosi o jego anulowanie. Jeśli rozszerzenie anuluje prośbę, wszystkie rozszerzenia zostaną powiadomione zdarzeniem onErrorOccurred
. Tylko jedno rozszerzenie może jednocześnie przekierować
żądanie lub zmodyfikować nagłówek. Jeśli więcej niż jedno rozszerzenie próbuje zmodyfikować żądanie, wygrywa ono, które zostało zainstalowane ostatnio, a wszystkie pozostałe są ignorowane. Rozszerzenie nie jest powiadamiane, jeśli jego instrukcja zmiany lub przekierowania została zignorowana.
Zapisywanie w pamięci podręcznej
Chrome wykorzystuje dwie pamięci podręczne – jedną na dysku i bardzo szybką w pamięci. Czas życia pamięci podręcznej jest powiązany z czasem trwania procesu renderowania, który w przybliżeniu odpowiada karcie.
Żądania, na które odpowiedzi są udzielane z pamięci podręcznej, są niewidoczne dla interfejsu API żądań sieciowych. Jeśli moduł obsługi żądań zmieni swoje działanie (np. sposób blokowania żądań), proste odświeżenie strony może go nie uwzględnić. Aby mieć pewność, że zmiana działania zostanie zastosowana, wywołaj handlerBehaviorChanged()
w celu opróżnienia pamięci podręcznej. Ale nie rób tego zbyt często. Wyczyszczenie pamięci podręcznej
jest bardzo kosztowne. Po zarejestrowaniu lub wyrejestrowaniu detektora nie musisz już wywoływać funkcji handlerBehaviorChanged()
.
Sygnatury czasowe
Właściwość timestamp
zdarzeń żądania internetowego jest gwarantowana tylko wewnętrznie spójna.
Porównanie jednego zdarzenia do innego pozwoli uzyskać właściwą przesunięcie między nimi, ale porównanie ich z bieżącym czasem w rozszerzeniu (np. za pomocą funkcji (new Date()).getTime()
) może przynieść nieoczekiwane efekty.
Obsługa błędów
Przy próbie zarejestrowania zdarzenia z nieprawidłowymi argumentami spowoduje to zgłoszenie błędu JavaScriptu, a moduł obsługi zdarzeń nie zostanie zarejestrowany. Jeśli podczas obsługi zdarzenia zostanie zgłoszony błąd lub moduł obsługi zdarzeń zwróci nieprawidłową odpowiedź blokującą, w konsoli rozszerzenia zostanie zarejestrowany komunikat o błędzie, a moduł obsługi tego żądania zostanie zignorowany.
Przykłady
Ten przykład pokazuje, jak blokować 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 uprawnienia "webRequest"
oraz "webRequestBlocking"
w pliku manifestu.
Ten przykład pozwala osiągnąć ten sam cel w bardziej wydajny sposób, ponieważ żądania, które nie są kierowane na element 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 żądania webRequest z repozytorium chrome-extension-samples.
Typy
BlockingResponse
Zwraca wartość modułów obsługi zdarzeń, w których zastosowano parametr „blocking” extraInfoSpec. Umożliwia modułowi obsługi zdarzeń modyfikowanie żądań sieciowych.
Właściwości
-
authCredentials
obiekt opcjonalnie
Używane tylko jako odpowiedź na zdarzenie onAuthRequired. Jeśli zasada jest skonfigurowana, żądanie jest wysyłane przy użyciu podanych danych logowania.
-
hasło
string,
-
nazwa użytkownika
string,
-
-
anuluj
wartość logiczna opcjonalna
Jeśli ma wartość prawda, żądanie jest anulowane. Uniemożliwia to wysłanie prośby. Można jej używać jako odpowiedzi na zdarzenia onBeforeRequest, onBeforeSendHeaders, onHeadersReceived i onAuthRequired.
-
redirectUrl
ciąg znaków opcjonalny
Używana tylko jako odpowiedź na zdarzenia onBeforeRequest i onHeadersReceived. Jeśli zasada jest skonfigurowana, nie można wysłać ani zrealizować pierwotnego żądania, a zamiast tego zostanie przekierowane na podany adres URL. Dozwolone są przekierowania do schematów innych niż HTTP, takich jak
data:
. Przekierowania zainicjowane przez działanie przekierowujące korzystają z pierwotnej metody żądania w przypadku przekierowania, z jednym wyjątkiem: jeśli przekierowanie zostało zainicjowane na etapie onHeadersReceived, przekierowanie jest wykonywane przy użyciu metody GET. Przekierowania z adresów URL o schematachws://
iwss://
są ignorowane. -
requestHeaders
HttpHeaders opcjonalnie
Używana tylko w odpowiedzi na zdarzenie onBeforeSendHeaders. Jeśli zasada jest skonfigurowana, żądanie jest wysyłane z tymi nagłówkami.
-
responseHeaders
HttpHeaders opcjonalnie
Jest używana tylko w odpowiedzi na zdarzenie onHeadersReceived. Jeśli zasada jest skonfigurowana, przyjmuje się, że serwer wysłał odpowiedź z tymi nagłówkami odpowiedzi. Zwracaj wartość
responseHeaders
tylko wtedy, gdy naprawdę chcesz zmodyfikować nagłówki, aby ograniczyć liczbę konfliktów (tylko jedno rozszerzenie może zmodyfikowaćresponseHeaders
w każdym żądaniu).
FormDataItem
Zawiera dane przekazywane w ramach danych formularza. W przypadku formatu z adresem URL jest on przechowywany jako ciąg znaków, jeśli dane są ciągiem utf-8, a w przeciwnym razie jako tablica Buffer. W przypadku danych formularzy jest to ArrayBuffer. Jeśli dane formularza reprezentują przesyłanie pliku, są to ciąg znaków z nazwą pliku (o ile została podana jego nazwa).
Typ wyliczeniowy
ArrayBuffer
string,
HttpHeaders
Tablica nagłówków HTTP. Każdy nagłówek jest przedstawiany jako słownik zawierający klucze name
oraz value
lub binaryValue
.
Typ
obiekt[]
Właściwości
-
binaryValue
number[] opcjonalny
Wartość nagłówka HTTP, jeśli nie może być reprezentowana w formacie UTF-8, przechowywana w postaci pojedynczych wartości bajtowych (0..255).
-
nazwa
string,
Nazwa nagłówka HTTP.
-
value
ciąg znaków opcjonalny
Wartość nagłówka HTTP, jeśli może być reprezentowany w formacie UTF-8.
IgnoredActionType
Typ wyliczeniowy
"redirect"
"request_headers"
"response_headers"
"auth_credentials"
OnAuthRequiredOptions
Typ wyliczeniowy
"responseHeaders"
Określa, że do zdarzenia mają zostać dołączone nagłówki odpowiedzi.
"blocking"
Określa, że żądanie jest blokowane do czasu zwrócenia funkcji wywołania zwrotnego.
"asyncBlock"
Określa, że funkcja wywołania zwrotnego jest obsługiwana asynchronicznie.
"extraHeaders"
Określa, że nagłówki mogą naruszać udostępnianie zasobów między serwerami (CORS).
OnBeforeRedirectOptions
Typ wyliczeniowy
"responseHeaders"
Określa, że do zdarzenia mają zostać dołączone nagłówki odpowiedzi.
"extraHeaders"
Określa, że nagłówki mogą naruszać udostępnianie zasobów między serwerami (CORS).
OnBeforeRequestOptions
Typ wyliczeniowy
"blocking"
Określa, że żądanie jest blokowane do czasu zwrócenia funkcji wywołania zwrotnego.
"requestBody"
Określa, że treść żądania powinna być uwzględniona w zdarzeniu.
"extraHeaders"
Określa, że nagłówki mogą naruszać udostępnianie zasobów między serwerami (CORS).
OnBeforeSendHeadersOptions
Typ wyliczeniowy
"requestHeaders"
Określa, że do zdarzenia powinien zostać dołączony nagłówek żądania.
"blocking"
Określa, że żądanie jest blokowane do czasu zwrócenia funkcji wywołania zwrotnego.
"extraHeaders"
Określa, że nagłówki mogą naruszać udostępnianie zasobów między serwerami (CORS).
OnCompletedOptions
Typ wyliczeniowy
"responseHeaders"
Określa, że do zdarzenia mają zostać dołączone nagłówki odpowiedzi.
"extraHeaders"
Określa, że nagłówki mogą naruszać udostępnianie zasobów między serwerami (CORS).
OnErrorOccurredOptions
Wartość
"extraHeaders"
OnHeadersReceivedOptions
Typ wyliczeniowy
"blocking"
Określa, że żądanie jest blokowane do czasu zwrócenia funkcji wywołania zwrotnego.
"responseHeaders"
Określa, że do zdarzenia mają zostać dołączone nagłówki odpowiedzi.
"extraHeaders"
Określa, że nagłówki mogą naruszać udostępnianie zasobów między serwerami (CORS).
OnResponseStartedOptions
Typ wyliczeniowy
"responseHeaders"
Określa, że do zdarzenia mają zostać dołączone nagłówki odpowiedzi.
"extraHeaders"
Określa, że nagłówki mogą naruszać udostępnianie zasobów między serwerami (CORS).
OnSendHeadersOptions
Typ wyliczeniowy
"requestHeaders"
Określa, że do zdarzenia powinien zostać dołączony nagłówek żądania.
"extraHeaders"
Określa, że nagłówki mogą naruszać udostępnianie zasobów między serwerami (CORS).
RequestFilter
Obiekt opisujący filtry, które mają być stosowane do zdarzeń webRequest.
Właściwości
-
tabId
Liczba opcjonalnie
-
Niestandardowe typy treści
ResourceType[] opcjonalny
Lista typów żądań. Żądania, które nie pasują do żadnego typu, zostaną odfiltrowane.
-
urls
string[]
Lista adresów URL lub wzorców adresów URL. Żądania, które nie pasują do żadnego z adresów URL, zostaną odfiltrowane.
-
windowId
Liczba opcjonalnie
ResourceType
Typ wyliczeniowy
"main_frame"
Określa zasób jako klatkę główną.
"sub_frame"
Określa zasób jako ramkę podrzędną.
"stylesheet"
Określa zasób jako arkusz stylów.
"script"
Określa zasób jako skrypt.
"image"
Określa zasób jako obraz.
"font"
Określa zasób jako czcionkę.
"object"
Określa zasób jako obiekt.
"xmlhttprequest"
Określa zasób jako XMLHttpRequest.
"ping"
Określa zasób jako ping.
"csp_report"
Określa zasób jako raport Content Security Policy (CSP).
"media"
Określa zasób jako obiekt multimedialny.
"websocket"
Określa zasób jako WebSocket.
"webbundle"
Określa zasób jako WebBundle.
"other"
Określa zasób jako typ, którego nie ma na liście typów.
UploadData
Zawiera dane przesłane w żądaniu adresu URL.
Właściwości
-
B
dowolne opcjonalne
tablica Buffer z kopią danych;
-
plik
ciąg znaków opcjonalny
Ciąg tekstowy zawierający ś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 nieprzerwanego interwału. handlerBehaviorChanged
to kosztowne wywołanie funkcji, które nie powinno być często wywoływane.
Wartość
20
Metody
handlerBehaviorChanged()
chrome.webRequest.handlerBehaviorChanged(
callback?: function,
)
Trzeba go wywoływać, gdy działanie modułów webRequest uległo zmianie, aby zapobiec nieprawidłowej obsłudze spowodowanej buforowaniem. To wywołanie funkcji jest drogie. Nie powtarzaj tego często.
Parametry
-
wywołanie zwrotne
funkcja opcjonalnie
Parametr
callback
wygląda tak:() => void
Zwroty
-
Promise<void>
Chrome 116 i nowsze wersjeObietnice są obsługiwane w platformie Manifest V3 i nowszych, ale wywołania zwrotne są dostępne na potrzeby zgodności wstecznej. Nie można użyć obu w tym samym wywołaniu funkcji. Obietnica znika z tym samym typem, który jest przekazywany do wywołania zwrotnego.
Wydarzenia
onActionIgnored
chrome.webRequest.onActionIgnored.addListener(
callback: function,
)
Uruchamiane, gdy proponowana przez rozszerzenie modyfikacja w żądaniu sieciowym jest ignorowana. 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
string,
Identyfikator żądania. Identyfikatory żądań są unikalne w obrębie sesji przeglądarki. Oznacza to, że mogą one służyć do powiązania różnych zdarzeń związanych z tą samą prośbą.
-
-
onAuthRequired
chrome.webRequest.onAuthRequired.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnAuthRequiredOptions[],
)
Uruchamiane po otrzymaniu błędu uwierzytelniania. Detektor ma 3 opcje: może podać dane uwierzytelniające, anulować żądanie i wyświetlić stronę błędu lub nie wykonać żadnego działania w wyzwaniu. Jeśli podasz błędne dane logowania użytkownika, to żądanie może zostać wywołane wiele razy dla tego samego żądania. Pamiętaj, że w parametrze extraInfoSpec
można określić 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.
-
organizator
string,
-
port
Liczba
-
-
documentId
string,
Chrome 106 i nowsze wersjeIdentyfikator UUID dokumentu wysyłającego żądanie.
-
documentLifecycleChrome 106 i nowsze wersje
Cykl życia dokumentu.
-
frameId
Liczba
Wartość 0 oznacza, że żądanie jest wysyłane w ramce głównej, a wartość dodatnia wskazuje identyfikator ramki podrzędnej, w której żądanie jest wysyłane. Jeśli wczytany jest dokument (elementu podrzędnego) (
type
tomain_frame
lubsub_frame
), wartośćframeId
wskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory klatek są unikalne w obrębie karty. -
frameTypeChrome 106 i nowsze wersje
Typ klatki, w której wystąpiło żądanie.
-
inicjator
ciąg znaków opcjonalny
Chrome w wersji 63 i nowszychŹródło, z którego zainicjowano żądanie. Nie zmienia się w wyniku przekierowania. Jeśli źródło jest nieprzezroczyste, zostanie użyty ciąg „null”.
-
isProxy
boolean
Prawda dla Proxy-Authenticate, false dla WWW-Authenticate.
-
method
string,
Standardowa metoda HTTP.
-
parentDocumentId
ciąg znaków opcjonalny
Chrome 106 i nowsze wersjeIdentyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Ta wartość nie jest ustawiona, jeśli nie ma elementu nadrzędnego.
-
parentFrameId
Liczba
Identyfikator ramki, która opakowuje ramkę, która wysłała żądanie. Jeśli nie istnieje ramka nadrzędna, ustaw wartość -1.
-
obszar
ciąg znaków opcjonalny
Obszar uwierzytelniania udostępniony przez serwer (jeśli istnieje).
-
requestId
string,
Identyfikator żądania. Identyfikatory żądań są unikalne w obrębie sesji przeglądarki. Oznacza to, że mogą one służyć do powiązania różnych zdarzeń związanych z tą samą prośbą.
-
responseHeaders
HttpHeaders opcjonalnie
Nagłówki odpowiedzi HTTP otrzymane wraz z tą odpowiedzią.
-
schemat
string,
Schemat uwierzytelniania, np. Podstawowe lub Podsumowanie.
-
statusCode
Liczba
Chrome 43 i nowsze wersjeStandardowy kod stanu HTTP zwracany przez serwer.
-
statusLine
string,
Wiersz stanu HTTP odpowiedzi lub ciąg „HTTP/0.9 200 OK” w przypadku odpowiedzi HTTP/0.9 (tj. odpowiedzi bez wiersza stanu) lub pusty ciąg znaków, jeśli nie ma nagłówków.
-
tabId
Liczba
Identyfikator karty, na której występuje żą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.
-
Niestandardowy typ treści
Sposób wykorzystania żądanego zasobu.
-
URL
string,
-
-
asyncCallback
funkcja opcjonalnie
Chrome w wersji 58 i nowszychParametr
asyncCallback
wygląda tak:(response: BlockingResponse) => void
-
odpowiedź
-
-
returns
BlockingResponse | undefined (Nie zdefiniowano)
Jeśli parametr „extraInfoSpec” określił „blokowanie”, detektor zdarzeń powinien zwracać obiekt tego typu.
-
-
filtr
-
extraInfoSpec
OnAuthRequiredOptions[] opcjonalnie
onBeforeRedirect
chrome.webRequest.onBeforeRedirect.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeRedirectOptions[],
)
Uruchamiane, gdy zbliża się przekierowanie inicjowane przez serwer.
Parametry
-
wywołanie zwrotne
funkcja
Parametr
callback
wygląda tak:(details: object) => void
-
szczegóły
obiekt
-
documentId
string,
Chrome 106 i nowsze wersjeIdentyfikator UUID dokumentu wysyłającego żądanie.
-
documentLifecycleChrome 106 i nowsze wersje
Cykl życia dokumentu.
-
frameId
Liczba
Wartość 0 oznacza, że żądanie jest wysyłane w ramce głównej, a wartość dodatnia wskazuje identyfikator ramki podrzędnej, w której żądanie jest wysyłane. Jeśli wczytany jest dokument (elementu podrzędnego) (
type
tomain_frame
lubsub_frame
), wartośćframeId
wskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory klatek są unikalne w obrębie karty. -
frameTypeChrome 106 i nowsze wersje
Typ klatki, w której wystąpiło żądanie.
-
fromCache
boolean
Wskazuje, czy ta odpowiedź została pobrana z pamięci podręcznej dysku.
-
inicjator
ciąg znaków opcjonalny
Chrome w wersji 63 i nowszychŹródło, z którego zainicjowano żądanie. Nie zmienia się w wyniku przekierowania. Jeśli źródło jest nieprzezroczyste, zostanie użyty ciąg „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
string,
Standardowa metoda HTTP.
-
parentDocumentId
ciąg znaków opcjonalny
Chrome 106 i nowsze wersjeIdentyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Ta wartość nie jest ustawiona, jeśli nie ma elementu nadrzędnego.
-
parentFrameId
Liczba
Identyfikator ramki, która opakowuje ramkę, która wysłała żądanie. Jeśli nie istnieje ramka nadrzędna, ustaw wartość -1.
-
redirectUrl
string,
Nowy adres URL.
-
requestId
string,
Identyfikator żądania. Identyfikatory żądań są unikalne w obrębie sesji przeglądarki. Oznacza to, że mogą one służyć do powiązania różnych zdarzeń związanych z tą samą prośbą.
-
responseHeaders
HttpHeaders opcjonalnie
Nagłówki odpowiedzi HTTP otrzymane wraz z tym przekierowaniem.
-
statusCode
Liczba
Standardowy kod stanu HTTP zwracany przez serwer.
-
statusLine
string,
Wiersz stanu HTTP odpowiedzi lub ciąg „HTTP/0.9 200 OK” w przypadku odpowiedzi HTTP/0.9 (tj. odpowiedzi bez wiersza stanu) lub pusty ciąg znaków, jeśli nie ma nagłówków.
-
tabId
Liczba
Identyfikator karty, na której występuje żą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.
-
Niestandardowy typ treści
Sposób wykorzystania żądanego zasobu.
-
URL
string,
-
-
-
filtr
-
extraInfoSpec
OnBeforeRedirectOptions[] opcjonalnie
onBeforeRequest
chrome.webRequest.onBeforeRequest.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeRequestOptions[],
)
Uruchamiane, gdy żądanie ma wkrótce wystąpić.
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 i nowsze wersjeIdentyfikator UUID dokumentu wysyłającego żądanie.
-
documentLifecycle
extensionTypes.DocumentLifecycle opcjonalnie
Chrome 106 i nowsze wersjeCykl życia dokumentu.
-
frameId
Liczba
Wartość 0 oznacza, że żądanie jest wysyłane w ramce głównej, a wartość dodatnia wskazuje identyfikator ramki podrzędnej, w której żądanie jest wysyłane. Jeśli wczytany jest dokument (elementu podrzędnego) (
type
tomain_frame
lubsub_frame
), wartośćframeId
wskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory klatek są unikalne w obrębie karty. -
frameType
extensionTypes.FrameType opcjonalny
Chrome 106 i nowsze wersjeTyp klatki, w której wystąpiło żądanie.
-
inicjator
ciąg znaków opcjonalny
Chrome w wersji 63 i nowszychŹródło, z którego zainicjowano żądanie. Nie zmienia się w wyniku przekierowania. Jeśli źródło jest nieprzezroczyste, zostanie użyty ciąg „null”.
-
method
string,
Standardowa metoda HTTP.
-
parentDocumentId
ciąg znaków opcjonalny
Chrome 106 i nowsze wersjeIdentyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Ta wartość nie jest ustawiona, jeśli nie ma elementu nadrzędnego.
-
parentFrameId
Liczba
Identyfikator ramki, która opakowuje ramkę, która wysłała żądanie. Jeśli nie istnieje ramka nadrzędna, ustaw wartość -1.
-
requestBody
obiekt opcjonalnie
Zawiera dane treści żądania HTTP. Stosowane tylko wtedy, gdy element extraInfoSpec zawiera element „requestBody”.
-
error
ciąg znaków opcjonalny
Błędy podczas uzyskiwania danych treści żądania.
-
formData
obiekt opcjonalnie
Jeśli metodą żądania jest POST, a treść to sekwencja par klucz-wartość zakodowane w UTF8, zakodowane jako wieloczęściowe/dane-formularzy lub application/x-www-form-urlencoded, słownik jest dostępny, a każdy klucz zawiera listę wszystkich wartości danego klucza. Jeśli dane są innego typu lub mają nieprawidłowy format, słownik nie jest dostępny. Przykładowa wartość w tym słowniku to {'klucz': ['wartość1', 'wartość2']}.
-
nieprzetworzony
UploadData[] opcjonalnie
Jeśli metodą żądania jest PUT lub POST, a treść nie jest jeszcze analizowana w formData, tablica ta zawiera nieprzeanalizowane elementy treści żądania.
-
-
requestId
string,
Identyfikator żądania. Identyfikatory żądań są unikalne w obrębie sesji przeglądarki. Oznacza to, że mogą one służyć do powiązania różnych zdarzeń związanych z tą samą prośbą.
-
tabId
Liczba
Identyfikator karty, na której występuje żą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.
-
Niestandardowy typ treści
Sposób wykorzystania żądanego zasobu.
-
URL
string,
-
-
returns
BlockingResponse | undefined (Nie zdefiniowano)
Jeśli parametr „extraInfoSpec” określił „blokowanie”, detektor zdarzeń powinien zwracać obiekt tego typu.
-
-
filtr
-
extraInfoSpec
OnBeforeRequestOptions[] opcjonalnie
onBeforeSendHeaders
chrome.webRequest.onBeforeSendHeaders.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnBeforeSendHeadersOptions[],
)
Uruchamiane przed wysłaniem żądania HTTP, gdy nagłówki żądań są dostępne. Może się to zdarzyć po nawiązaniu połączenia TCP z serwerem, ale przed wysłaniem jakichkolwiek danych HTTP.
Parametry
-
wywołanie zwrotne
funkcja
Parametr
callback
wygląda tak:(details: object) => BlockingResponse | undefined
-
szczegóły
obiekt
-
documentId
string,
Chrome 106 i nowsze wersjeIdentyfikator UUID dokumentu wysyłającego żądanie.
-
documentLifecycleChrome 106 i nowsze wersje
Cykl życia dokumentu.
-
frameId
Liczba
Wartość 0 oznacza, że żądanie jest wysyłane w ramce głównej, a wartość dodatnia wskazuje identyfikator ramki podrzędnej, w której żądanie jest wysyłane. Jeśli wczytany jest dokument (elementu podrzędnego) (
type
tomain_frame
lubsub_frame
), wartośćframeId
wskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory klatek są unikalne w obrębie karty. -
frameTypeChrome 106 i nowsze wersje
Typ klatki, w której wystąpiło żądanie.
-
inicjator
ciąg znaków opcjonalny
Chrome w wersji 63 i nowszychŹródło, z którego zainicjowano żądanie. Nie zmienia się w wyniku przekierowania. Jeśli źródło jest nieprzezroczyste, zostanie użyty ciąg „null”.
-
method
string,
Standardowa metoda HTTP.
-
parentDocumentId
ciąg znaków opcjonalny
Chrome 106 i nowsze wersjeIdentyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Ta wartość nie jest ustawiona, jeśli nie ma elementu nadrzędnego.
-
parentFrameId
Liczba
Identyfikator ramki, która opakowuje ramkę, która wysłała żądanie. Jeśli nie istnieje ramka nadrzędna, ustaw wartość -1.
-
requestHeaders
HttpHeaders opcjonalnie
Nagłówki żądań HTTP, które będą wysyłane z tym żądaniem.
-
requestId
string,
Identyfikator żądania. Identyfikatory żądań są unikalne w obrębie sesji przeglądarki. Oznacza to, że mogą one służyć do powiązania różnych zdarzeń związanych z tą samą prośbą.
-
tabId
Liczba
Identyfikator karty, na której występuje żą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.
-
Niestandardowy typ treści
Sposób wykorzystania żądanego zasobu.
-
URL
string,
-
-
returns
BlockingResponse | undefined (Nie zdefiniowano)
Jeśli parametr „extraInfoSpec” określił „blokowanie”, detektor zdarzeń powinien zwracać obiekt tego typu.
-
-
filtr
-
extraInfoSpec
OnBeforeSendHeadersOptions[] opcjonalnie.
onCompleted
chrome.webRequest.onCompleted.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnCompletedOptions[],
)
Uruchamiane po ukończeniu żądania.
Parametry
-
wywołanie zwrotne
funkcja
Parametr
callback
wygląda tak:(details: object) => void
-
szczegóły
obiekt
-
documentId
string,
Chrome 106 i nowsze wersjeIdentyfikator UUID dokumentu wysyłającego żądanie.
-
documentLifecycleChrome 106 i nowsze wersje
Cykl życia dokumentu.
-
frameId
Liczba
Wartość 0 oznacza, że żądanie jest wysyłane w ramce głównej, a wartość dodatnia wskazuje identyfikator ramki podrzędnej, w której żądanie jest wysyłane. Jeśli wczytany jest dokument (elementu podrzędnego) (
type
tomain_frame
lubsub_frame
), wartośćframeId
wskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory klatek są unikalne w obrębie karty. -
frameTypeChrome 106 i nowsze wersje
Typ klatki, w której wystąpiło żądanie.
-
fromCache
boolean
Wskazuje, czy ta odpowiedź została pobrana z pamięci podręcznej dysku.
-
inicjator
ciąg znaków opcjonalny
Chrome w wersji 63 i nowszychŹródło, z którego zainicjowano żądanie. Nie zmienia się w wyniku przekierowania. Jeśli źródło jest nieprzezroczyste, zostanie użyty ciąg „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
string,
Standardowa metoda HTTP.
-
parentDocumentId
ciąg znaków opcjonalny
Chrome 106 i nowsze wersjeIdentyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Ta wartość nie jest ustawiona, jeśli nie ma elementu nadrzędnego.
-
parentFrameId
Liczba
Identyfikator ramki, która opakowuje ramkę, która wysłała żądanie. Jeśli nie istnieje ramka nadrzędna, ustaw wartość -1.
-
requestId
string,
Identyfikator żądania. Identyfikatory żądań są unikalne w obrębie sesji przeglądarki. Oznacza to, że mogą one służyć do powiązania różnych zdarzeń związanych z tą samą prośbą.
-
responseHeaders
HttpHeaders opcjonalnie
Nagłówki odpowiedzi HTTP otrzymane wraz z tą odpowiedzią.
-
statusCode
Liczba
Standardowy kod stanu HTTP zwracany przez serwer.
-
statusLine
string,
Wiersz stanu HTTP odpowiedzi lub ciąg „HTTP/0.9 200 OK” w przypadku odpowiedzi HTTP/0.9 (tj. odpowiedzi bez wiersza stanu) lub pusty ciąg znaków, jeśli nie ma nagłówków.
-
tabId
Liczba
Identyfikator karty, na której występuje żą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.
-
Niestandardowy typ treści
Sposób wykorzystania żądanego zasobu.
-
URL
string,
-
-
-
filtr
-
extraInfoSpec
OnCompletedOptions[] opcjonalnie
onErrorOccurred
chrome.webRequest.onErrorOccurred.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnErrorOccurredOptions[],
)
Uruchamiane, gdy wystąpi błąd.
Parametry
-
wywołanie zwrotne
funkcja
Parametr
callback
wygląda tak:(details: object) => void
-
szczegóły
obiekt
-
documentId
string,
Chrome 106 i nowsze wersjeIdentyfikator UUID dokumentu wysyłającego żądanie. Ta wartość nie jest dostępna, jeśli żądanie dotyczy nawigacji w ramce.
-
documentLifecycleChrome 106 i nowsze wersje
Cykl życia dokumentu.
-
error
string,
Opis błędu. Nie ma gwarancji, że ten ciąg znaków będzie zgodny wstecznie między wersjami. Nie wolno analizować jej treści ani podejmować działań na jej podstawie.
-
frameId
Liczba
Wartość 0 oznacza, że żądanie jest wysyłane w ramce głównej, a wartość dodatnia wskazuje identyfikator ramki podrzędnej, w której żądanie jest wysyłane. Jeśli wczytany jest dokument (elementu podrzędnego) (
type
tomain_frame
lubsub_frame
), wartośćframeId
wskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory klatek są unikalne w obrębie karty. -
frameTypeChrome 106 i nowsze wersje
Typ klatki, w której wystąpiło żądanie.
-
fromCache
boolean
Wskazuje, czy ta odpowiedź została pobrana z pamięci podręcznej dysku.
-
inicjator
ciąg znaków opcjonalny
Chrome w wersji 63 i nowszychŹródło, z którego zainicjowano żądanie. Nie zmienia się w wyniku przekierowania. Jeśli źródło jest nieprzezroczyste, zostanie użyty ciąg „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
string,
Standardowa metoda HTTP.
-
parentDocumentId
ciąg znaków opcjonalny
Chrome 106 i nowsze wersjeIdentyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Ta wartość nie jest ustawiona, jeśli nie ma elementu nadrzędnego.
-
parentFrameId
Liczba
Identyfikator ramki, która opakowuje ramkę, która wysłała żądanie. Jeśli nie istnieje ramka nadrzędna, ustaw wartość -1.
-
requestId
string,
Identyfikator żądania. Identyfikatory żądań są unikalne w obrębie sesji przeglądarki. Oznacza to, że mogą one służyć do powiązania różnych zdarzeń związanych z tą samą prośbą.
-
tabId
Liczba
Identyfikator karty, na której występuje żą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.
-
Niestandardowy typ treści
Sposób wykorzystania żądanego zasobu.
-
URL
string,
-
-
-
filtr
-
extraInfoSpec
OnErrorOccurredOptions[] opcjonalny
onHeadersReceived
chrome.webRequest.onHeadersReceived.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnHeadersReceivedOptions[],
)
Uruchamiane po odebraniu nagłówków odpowiedzi HTTP żądania.
Parametry
-
wywołanie zwrotne
funkcja
Parametr
callback
wygląda tak:(details: object) => BlockingResponse | undefined
-
szczegóły
obiekt
-
documentId
string,
Chrome 106 i nowsze wersjeIdentyfikator UUID dokumentu wysyłającego żądanie.
-
documentLifecycleChrome 106 i nowsze wersje
Cykl życia dokumentu.
-
frameId
Liczba
Wartość 0 oznacza, że żądanie jest wysyłane w ramce głównej, a wartość dodatnia wskazuje identyfikator ramki podrzędnej, w której żądanie jest wysyłane. Jeśli wczytany jest dokument (elementu podrzędnego) (
type
tomain_frame
lubsub_frame
), wartośćframeId
wskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory klatek są unikalne w obrębie karty. -
frameTypeChrome 106 i nowsze wersje
Typ klatki, w której wystąpiło żądanie.
-
inicjator
ciąg znaków opcjonalny
Chrome w wersji 63 i nowszychŹródło, z którego zainicjowano żądanie. Nie zmienia się w wyniku przekierowania. Jeśli źródło jest nieprzezroczyste, zostanie użyty ciąg „null”.
-
method
string,
Standardowa metoda HTTP.
-
parentDocumentId
ciąg znaków opcjonalny
Chrome 106 i nowsze wersjeIdentyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Ta wartość nie jest ustawiona, jeśli nie ma elementu nadrzędnego.
-
parentFrameId
Liczba
Identyfikator ramki, która opakowuje ramkę, która wysłała żądanie. Jeśli nie istnieje ramka nadrzędna, ustaw wartość -1.
-
requestId
string,
Identyfikator żądania. Identyfikatory żądań są unikalne w obrębie sesji przeglądarki. Oznacza to, że mogą one służyć do powiązania różnych zdarzeń związanych z tą samą prośbą.
-
responseHeaders
HttpHeaders opcjonalnie
Nagłówki odpowiedzi HTTP, które zostały odebrane z tą odpowiedzią.
-
statusCode
Liczba
Chrome 43 i nowsze wersjeStandardowy kod stanu HTTP zwracany przez serwer.
-
statusLine
string,
Wiersz stanu HTTP odpowiedzi lub ciąg „HTTP/0.9 200 OK” w przypadku odpowiedzi HTTP/0.9 (tj. odpowiedzi bez wiersza stanu).
-
tabId
Liczba
Identyfikator karty, na której występuje żą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.
-
Niestandardowy typ treści
Sposób wykorzystania żądanego zasobu.
-
URL
string,
-
-
returns
BlockingResponse | undefined (Nie zdefiniowano)
Jeśli parametr „extraInfoSpec” określił „blokowanie”, detektor zdarzeń powinien zwracać obiekt tego typu.
-
-
filtr
-
extraInfoSpec
OnHeadersReceivedOptions[] opcjonalnie
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ępny jest wiersz stanu i nagłówki odpowiedzi.
Parametry
-
wywołanie zwrotne
funkcja
Parametr
callback
wygląda tak:(details: object) => void
-
szczegóły
obiekt
-
documentId
string,
Chrome 106 i nowsze wersjeIdentyfikator UUID dokumentu wysyłającego żądanie.
-
documentLifecycleChrome 106 i nowsze wersje
Cykl życia dokumentu.
-
frameId
Liczba
Wartość 0 oznacza, że żądanie jest wysyłane w ramce głównej, a wartość dodatnia wskazuje identyfikator ramki podrzędnej, w której żądanie jest wysyłane. Jeśli wczytany jest dokument (elementu podrzędnego) (
type
tomain_frame
lubsub_frame
), wartośćframeId
wskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory klatek są unikalne w obrębie karty. -
frameTypeChrome 106 i nowsze wersje
Typ klatki, w której wystąpiło żądanie.
-
fromCache
boolean
Wskazuje, czy ta odpowiedź została pobrana z pamięci podręcznej dysku.
-
inicjator
ciąg znaków opcjonalny
Chrome w wersji 63 i nowszychŹródło, z którego zainicjowano żądanie. Nie zmienia się w wyniku przekierowania. Jeśli źródło jest nieprzezroczyste, zostanie użyty ciąg „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
string,
Standardowa metoda HTTP.
-
parentDocumentId
ciąg znaków opcjonalny
Chrome 106 i nowsze wersjeIdentyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Ta wartość nie jest ustawiona, jeśli nie ma elementu nadrzędnego.
-
parentFrameId
Liczba
Identyfikator ramki, która opakowuje ramkę, która wysłała żądanie. Jeśli nie istnieje ramka nadrzędna, ustaw wartość -1.
-
requestId
string,
Identyfikator żądania. Identyfikatory żądań są unikalne w obrębie sesji przeglądarki. Oznacza to, że mogą one służyć do powiązania różnych zdarzeń związanych z tą samą prośbą.
-
responseHeaders
HttpHeaders opcjonalnie
Nagłówki odpowiedzi HTTP otrzymane wraz z tą odpowiedzią.
-
statusCode
Liczba
Standardowy kod stanu HTTP zwracany przez serwer.
-
statusLine
string,
Wiersz stanu HTTP odpowiedzi lub ciąg „HTTP/0.9 200 OK” w przypadku odpowiedzi HTTP/0.9 (tj. odpowiedzi bez wiersza stanu) lub pusty ciąg znaków, jeśli nie ma nagłówków.
-
tabId
Liczba
Identyfikator karty, na której występuje żą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.
-
Niestandardowy typ treści
Sposób wykorzystania żądanego zasobu.
-
URL
string,
-
-
-
filtr
-
extraInfoSpec
OnResponseStartedOptions[] opcjonalny
onSendHeaders
chrome.webRequest.onSendHeaders.addListener(
callback: function,
filter: RequestFilter,
extraInfoSpec?: OnSendHeadersOptions[],
)
Uruchamiane tuż przed wysłaniem żądania do serwera (zmiany poprzednich wywołań zwrotnych onBeforeSendHeaders są widoczne dopiero po uruchomieniu funkcji onSendHeaders).
Parametry
-
wywołanie zwrotne
funkcja
Parametr
callback
wygląda tak:(details: object) => void
-
szczegóły
obiekt
-
documentId
string,
Chrome 106 i nowsze wersjeIdentyfikator UUID dokumentu wysyłającego żądanie.
-
documentLifecycleChrome 106 i nowsze wersje
Cykl życia dokumentu.
-
frameId
Liczba
Wartość 0 oznacza, że żądanie jest wysyłane w ramce głównej, a wartość dodatnia wskazuje identyfikator ramki podrzędnej, w której żądanie jest wysyłane. Jeśli wczytany jest dokument (elementu podrzędnego) (
type
tomain_frame
lubsub_frame
), wartośćframeId
wskazuje identyfikator tej ramki, a nie identyfikator ramki zewnętrznej. Identyfikatory klatek są unikalne w obrębie karty. -
frameTypeChrome 106 i nowsze wersje
Typ klatki, w której wystąpiło żądanie.
-
inicjator
ciąg znaków opcjonalny
Chrome w wersji 63 i nowszychŹródło, z którego zainicjowano żądanie. Nie zmienia się w wyniku przekierowania. Jeśli źródło jest nieprzezroczyste, zostanie użyty ciąg „null”.
-
method
string,
Standardowa metoda HTTP.
-
parentDocumentId
ciąg znaków opcjonalny
Chrome 106 i nowsze wersjeIdentyfikator UUID dokumentu nadrzędnego, do którego należy ta ramka. Ta wartość nie jest ustawiona, jeśli nie ma elementu nadrzędnego.
-
parentFrameId
Liczba
Identyfikator ramki, która opakowuje ramkę, która wysłała żądanie. Jeśli nie istnieje ramka nadrzędna, ustaw wartość -1.
-
requestHeaders
HttpHeaders opcjonalnie
Nagłówki żądań HTTP, które zostały wysłane z tym żądaniem.
-
requestId
string,
Identyfikator żądania. Identyfikatory żądań są unikalne w obrębie sesji przeglądarki. Oznacza to, że mogą one służyć do powiązania różnych zdarzeń związanych z tą samą prośbą.
-
tabId
Liczba
Identyfikator karty, na której występuje żą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.
-
Niestandardowy typ treści
Sposób wykorzystania żądanego zasobu.
-
URL
string,
-
-
-
filtr
-
extraInfoSpec
OnSendHeadersOptions[] opcjonalnie.