chrome.webRequest

Descrizione

Utilizza l'API chrome.webRequest per osservare e analizzare il traffico e per intercettare, bloccare o modificare le richieste in corso.

Autorizzazioni

webRequest

Per utilizzare l'API richiesta web, devi dichiarare l'autorizzazione "webRequest" nel manifest dell'estensione, insieme alle autorizzazioni host necessarie. Per intercettare una richiesta di sottorisorsa, l'estensione deve avere accesso sia all'URL richiesto sia a chi l'ha creato. Ad esempio:

{
  "name": "My extension",
  ...
  "permissions": [
    "webRequest"
  ],
  "host_permissions": [
    "*://*.google.com/*"
  ],
  ...
}

webRequestBlocking

Obbligatorio per registrare i gestori di eventi di blocco. A partire da Manifest V3, è disponibile solo per le estensioni installate secondo i criteri.

webRequestAuthProvider

Obbligatorio per utilizzare il metodo onAuthRequired. Vedi Gestione dell'autenticazione.

Concetti e utilizzo

Ciclo di vita delle richieste

L'API per le richieste web definisce un insieme di eventi che seguono il ciclo di vita di una richiesta web. Puoi utilizzare questi eventi per osservare e analizzare il traffico. Alcuni eventi sincroni ti consentono di intercettare, bloccare o modificare una richiesta.

Il ciclo di vita degli eventi per le richieste andate a buon fine è illustrato qui, seguito dalle definizioni degli eventi:

Ciclo di vita di una richiesta web dal punto di vista dell'API webrequest

onBeforeRequest (facoltativamente sincrona)
Si attiva quando sta per essere effettuata una richiesta. Questo evento viene inviato prima che venga stabilita qualsiasi connessione TCP e può essere utilizzato per annullare o reindirizzare le richieste.
onBeforeSendHeaders (facoltativamente sincrona)
Si attiva quando sta per verificarsi una richiesta e le intestazioni iniziali sono state preparate. L'evento ha lo scopo di consentire alle estensioni di aggiungere, modificare ed eliminare le intestazioni delle richieste (*). L'evento onBeforeSendHeaders viene trasmesso a tutti i sottoscrittori, pertanto sottoscrittori diversi potrebbero tentare di modificare la richiesta. Per informazioni sulla gestione di questa operazione, consulta la sezione Dettagli implementazione. Questo evento può essere utilizzato per annullare la richiesta.
onSendHeaders
Si attiva dopo che tutte le estensioni hanno avuto la possibilità di modificare le intestazioni delle richieste e presenta la versione (*) finale. L'evento viene attivato prima che le intestazioni vengano inviate alla rete. Questo evento è informativo e gestito in modo asincrono. Non consente di modificare o annullare la richiesta.
onHeadersReceived (facoltativamente sincrona)
Si attiva ogni volta che viene ricevuta un'intestazione della risposta HTTP(S). A causa di reindirizzamenti e richieste di autenticazione, questo può accadere più volte per ogni richiesta. Questo evento ha lo scopo di consentire alle estensioni di aggiungere, modificare ed eliminare le intestazioni delle risposte, come le intestazioni Content-Type in entrata. Le istruzioni di memorizzazione nella cache vengono elaborate prima dell'attivazione di questo evento, quindi la modifica delle intestazioni come Cache-Control non ha alcuna influenza sulla cache del browser. Ti consente inoltre di annullare o reindirizzare la richiesta.
onAuthRequired (facoltativamente sincrona)
Si attiva quando una richiesta richiede l'autenticazione dell'utente. Questo evento può essere gestito in modo sincrono per fornire le credenziali di autenticazione. Tieni presente che le estensioni potrebbero fornire credenziali non valide. Fai attenzione a non entrare in un ciclo infinito fornendo ripetutamente credenziali non valide. Questo può essere utilizzato anche per annullare la richiesta.
onBeforeRedirect
Si attiva quando sta per essere eseguito un reindirizzamento. Un reindirizzamento può essere attivato da un codice di risposta HTTP o da un'estensione. Questo evento è informativo e gestito in modo asincrono. Non consente di modificare o annullare la richiesta.
onResponseStarted
Si attiva quando viene ricevuto il primo byte del corpo della risposta. Per le richieste HTTP, significa che sono disponibili la riga di stato e le intestazioni di risposta. Questo evento è informativo e gestito in modo asincrono. Non consente di modificare o annullare la richiesta.
onCompleted
Si attiva quando una richiesta viene elaborata correttamente.
onErrorOccurred
Si attiva quando non è stato possibile elaborare una richiesta.

L'API per le richieste web garantisce che per ogni richiesta, onCompleted o onErrorOccurred venga attivato come evento finale, con un'eccezione: se una richiesta viene reindirizzata a un URL data://, onBeforeRedirect è l'ultimo evento segnalato.

* Tieni presente che l'API di richiesta web presenta un'astrazione dello stack di rete per l'estensione. Internamente, una richiesta URL può essere suddivisa in più richieste HTTP (ad esempio, per recuperare singoli intervalli di byte da un file di grandi dimensioni) oppure può essere gestita dallo stack di rete senza comunicare con la rete. Per questo motivo, l'API non fornisce le intestazioni HTTP finali inviate alla rete. Ad esempio, tutte le intestazioni relative alla memorizzazione nella cache sono invisibili all'estensione.

Le seguenti intestazioni non sono attualmente fornite per l'evento onBeforeSendHeaders. Non è garantito che questo elenco sia completo o stabile.

  • Autorizzazione
  • Cache-Control
  • Connessione
  • Content-Length
  • Host
  • Se-modificato-da
  • Se-nessuna-corrispondenza
  • Intervallo if
  • Dati parziali
  • Pragma
  • Autorizzazione proxy
  • Connessione proxy
  • Codifica trasferimento

A partire da Chrome 79, le modifiche dell'intestazione delle richieste influiscono sui controlli della condivisione delle risorse tra origini (CORS). Se le intestazioni modificate per le richieste multiorigine non soddisfano i criteri, verrà inviato un preflight CORS per chiedere al server se queste intestazioni possono essere accettate. Se devi modificare le intestazioni in modo da violare il protocollo CORS, devi specificare 'extraHeaders' in opt_extraInfoSpec. D'altra parte, le modifiche dell'intestazione delle risposte non funzionano per ingannare i controlli CORS. Se devi ingannare il protocollo CORS, devi specificare anche 'extraHeaders' per le modifiche della risposta.

A partire da Chrome 79, per impostazione predefinita l'API webRequest non intercetta le richieste e le risposte preflight CORS. Un preflight CORS per un URL di richiesta è visibile a un'estensione se esiste un listener con 'extraHeaders' specificato in opt_extraInfoSpec per l'URL della richiesta. onBeforeRequest può anche richiedere 'extraHeaders' da Chrome 79.

A partire da Chrome 79, la seguente intestazione della richiesta non viene fornita e non può essere modificata o rimossa senza specificare 'extraHeaders' in opt_extraInfoSpec:

  • Origin

A partire da Chrome 72, se devi modificare le risposte prima che il blocco della lettura su più origini (CORB) possa bloccare la risposta, devi specificare 'extraHeaders' in opt_extraInfoSpec.

A partire da Chrome 72, le seguenti intestazioni delle richieste non vengono fornite e non possono essere modificate o rimosse senza specificare 'extraHeaders' in opt_extraInfoSpec:

  • Accetta-Lingua
  • Accetta-codifica
  • Referrer
  • Cookie

A partire da Chrome 72, l'intestazione della risposta Set-Cookie non viene fornita e non può essere modificata o rimossa senza specificare 'extraHeaders' in opt_extraInfoSpec.

A partire da Chrome 89, l'intestazione della risposta X-Frame-Options non può essere modificata o rimossa in modo efficace senza specificare 'extraHeaders' in opt_extraInfoSpec.

L'API webRequest espone solo le richieste che l'estensione è autorizzata a vedere, date le autorizzazioni host. Inoltre, sono accessibili solo i seguenti schemi: http://, https://, ftp://, file://, ws:// (da Chrome 58), wss:// (da Chrome 58), urn: (da Chrome 91) ochrome-extension://. Inoltre, anche alcune richieste con URL che utilizzano uno degli schemi precedenti sono nascoste. Questi includono chrome-extension://other_extension_id, dove other_extension_id non è l'ID dell'estensione per gestire la richiesta, https://www.google.com/chrome e altre richieste sensibili principali per la funzionalità del browser. Inoltre, le XMLHttpRequests sincrone della tua estensione vengono nascoste dal blocco dei gestori di eventi al fine di evitare deadlock. Tieni presente che per alcuni degli schemi supportati l'insieme di eventi disponibili potrebbe essere limitato a causa della natura del protocollo corrispondente. Ad esempio, per lo schema file:, possono essere inviati solo onBeforeRequest, onResponseStarted, onCompleted e onErrorOccurred.

A partire da Chrome 58, l'API webRequest supporta l'intercettazione della richiesta di handshake WebSocket. Poiché l'handshake viene eseguito tramite una richiesta di upgrade HTTP, il suo flusso si adatta al modello webRequest orientato a HTTP. Tieni presente che l'API non intercetta:

  • Messaggi singoli inviati tramite una connessione WebSocket stabilita.
  • WebSocket chiude la connessione.

I reindirizzamenti non sono supportati per le richieste WebSocket.

A partire da Chrome 72, un'estensione sarà in grado di intercettare una richiesta solo se dispone delle autorizzazioni host sia per l'URL richiesto sia per l'autore della richiesta.

A partire da Chrome 96, l'API webRequest supporta l'intercettazione della richiesta di handshake HTTP/3. Poiché l'handshake viene eseguito tramite una richiesta HTTP CONNECT, il suo flusso si adatta al modello webRequest orientato a HTTP. Ricorda:

  • Una volta stabilita la sessione, le estensioni non possono osservare o intervenire nella sessione tramite l'API webRequest.
  • La modifica delle intestazioni delle richieste HTTP in onBeforeSendHeaders viene ignorata.
  • I reindirizzamenti e le autenticazioni non sono supportati in WebTransport tramite HTTP/3.

ID richiesta

Ogni richiesta è identificata da un ID richiesta. Questo ID è univoco all'interno di una sessione del browser e nel contesto di un'estensione. Rimane costante durante il ciclo di vita di una richiesta e può essere utilizzato per associare gli eventi della stessa richiesta. Tieni presente che diverse richieste HTTP sono mappate a una singola richiesta web in caso di reindirizzamento HTTP o autenticazione HTTP.

Registrazione dei listener di eventi

Per registrare un listener di eventi per una richiesta web, utilizza una variante della normale funzione addListener(). Oltre a specificare una funzione di callback, devi specificare un argomento di filtro e un argomento di informazioni aggiuntivo facoltativo.

I tre argomenti dell'API della richiesta web addListener() hanno le seguenti definizioni:

var callback = function(details) {...};
var filter = {...};
var opt_extraInfoSpec = [...];

Ecco un esempio di ascolto dell'evento onBeforeRequest:

chrome.webRequest.onBeforeRequest.addListener(
    callback, filter, opt_extraInfoSpec);

Ogni chiamata addListener() richiede una funzione di callback obbligatoria come primo parametro. A questa funzione di callback viene passato un dizionario contenente informazioni sulla richiesta dell'URL corrente. Le informazioni di questo dizionario dipendono dal tipo di evento specifico e dai contenuti di opt_extraInfoSpec.

Se l'array opt_extraInfoSpec facoltativo contiene la stringa 'blocking' (consentita solo per eventi specifici), la funzione di callback viene gestita in modo sincrono. Ciò significa che la richiesta è bloccata fino a quando non viene restituita la funzione di callback. In questo caso, il callback può restituire un elemento webRequest.BlockingResponse che determina l'ulteriore ciclo di vita della richiesta. A seconda del contesto, questa risposta consente di annullare o reindirizzare una richiesta (onBeforeRequest), annullare una richiesta o modificare le intestazioni (onBeforeSendHeaders, onHeadersReceived) e annullare una richiesta o fornire le credenziali di autenticazione (onAuthRequired).

Se l'array opt_extraInfoSpec facoltativo contiene la stringa 'asyncBlocking' (consentita solo per onAuthRequired), l'estensione può generare webRequest.BlockingResponse in modo asincrono.

L'filter webRequest.RequestFilter consente di limitare le richieste per le quali vengono attivati gli eventi in varie dimensioni:

URL
Pattern URL come *://www.google.com/foo*bar.
Tipi
Tipi di richiesta come main_frame (un documento che viene caricato per un frame di primo livello), sub_frame (un documento caricato per un frame incorporato) e image (un'immagine su un sito web). Consulta la pagina webRequest.RequestFilter.
ID scheda
L'identificatore di una scheda.
ID finestra
L'identificatore di una finestra.

A seconda del tipo di evento, puoi specificare le stringhe in opt_extraInfoSpec per chiedere ulteriori informazioni sulla richiesta. Viene utilizzato per fornire informazioni dettagliate sui dati della richiesta solo se esplicitamente richiesto.

Gestione dell'autenticazione

Per gestire le richieste di autenticazione HTTP, aggiungi l'autorizzazione "webRequestAuthProvider" al file manifest:

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

Tieni presente che questa autorizzazione non è necessaria per un'estensione installata da un criterio con l'autorizzazione "webRequestBlocking".

Per fornire le credenziali in modo sincrono:

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

Per fornire le credenziali in modo asincrono:

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

Dettagli di implementazione

Durante lo sviluppo di un'estensione che utilizza l'API di richiesta web, è importante comprendere diversi dettagli di implementazione:

web_accessible_resources

Quando un'estensione utilizza le API webRequest per reindirizzare una richiesta di risorsa pubblica a una risorsa non accessibile dal web, l'estensione viene bloccata e restituirà un errore. Quanto riportato sopra è valido anche se la risorsa non accessibile dal web è di proprietà dell'estensione di reindirizzamento. Per dichiarare le risorse da utilizzare con le API dichiarativeWebRequest, l'array "web_accessible_resources" deve essere dichiarato e compilato nel manifest come documentato qui.

Risoluzione dei conflitti

Nell'implementazione corrente dell'API Web Request, una richiesta viene considerata annullata se almeno un'estensione indica di annullare la richiesta. Se un'estensione annulla una richiesta, tutte le estensioni ricevono una notifica da un evento onErrorOccurred. Solo un'estensione può reindirizzare una richiesta o modificare un'intestazione alla volta. Se più di un'estensione tenta di modificare la richiesta, vince l'estensione installata più di recente e tutte le altre vengono ignorate. A un'estensione non viene inviata alcuna notifica se l'istruzione di modifica o di reindirizzamento dell'estensione viene ignorata.

Memorizzazione nella cache

Chrome utilizza due cache: una su disco e una in memoria molto veloce. La durata di una cache in memoria è collegata alla durata di un processo di rendering, che corrisponde approssimativamente a una scheda. Le richieste che ricevono risposta dalla cache in memoria non sono visibili all'API delle richieste web. Se un gestore delle richieste cambia il comportamento, ad esempio il comportamento in base al quale le richieste sono bloccate, un semplice aggiornamento della pagina potrebbe non rispettare questo comportamento modificato. Per assicurarti che la modifica del comportamento vada a buon fine, chiama handlerBehaviorChanged() per svuotare la cache in memoria. Ma non farlo spesso; lo svuotamento della cache è un'operazione molto costosa. Non è necessario chiamare handlerBehaviorChanged() dopo aver registrato o annullato la registrazione di un listener di eventi.

Timestamp

È garantito che la proprietà timestamp degli eventi di richieste web sia coerente solo internamente. Se confronti un evento con un altro, otterrai l'offset corretto, ma se metti a confronto l'ora attuale all'interno dell'estensione (tramite (new Date()).getTime(), ad esempio) potresti ottenere risultati imprevisti.

Gestione degli errori

Se provi a registrare un evento con argomenti non validi, verrà generato un errore JavaScript e il gestore di eventi non verrà registrato. Se viene generato un errore durante la gestione di un evento o se un gestore di eventi restituisce una risposta di blocco non valida, nella console dell'estensione viene registrato un messaggio di errore e il gestore viene ignorato per la richiesta.

Esempi

L'esempio seguente illustra come bloccare tutte le richieste a www.evil.com:

chrome.webRequest.onBeforeRequest.addListener(
  function(details) {
    return {cancel: details.url.indexOf("://www.evil.com/") != -1};
  },
  {urls: ["<all_urls>"]},
  ["blocking"]
);

Poiché questa funzione utilizza un gestore di eventi di blocco, richiede l'autorizzazione "webRequest" e "webRequestBlocking" nel file manifest.

Il seguente esempio raggiunge lo stesso obiettivo in modo più efficiente, perché le richieste che non sono indirizzate a www.evil.com non devono essere trasmesse all'estensione:

chrome.webRequest.onBeforeRequest.addListener(
  function(details) { return {cancel: true}; },
  {urls: ["*://www.evil.com/*"]},
  ["blocking"]
);

L'esempio seguente illustra come eliminare l'intestazione User-Agent da tutte le richieste:

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

Per provare l'API chrome.webRequest, installa l'esempio webRequest dal repository chrome-extension-samples.

Tipi

BlockingResponse

Restituisce un valore per i gestori di eventi a cui è applicata l'elemento extraInfoSpec "blocco". Consente al gestore di eventi di modificare le richieste di rete.

Proprietà

  • authCredentials

    oggetto facoltativo

    Utilizzato solo in risposta all'evento onAuthRequired. Se impostata, la richiesta viene effettuata utilizzando le credenziali fornite.

    • password

      stringa

    • nome utente

      stringa

  • cancel

    booleano facoltativo

    Se true, la richiesta viene annullata. Questo impedisce l'invio della richiesta. Può essere utilizzato in risposta agli eventi onBeforeRequest, onBeforeSendHeaders, onHeadersReceived e onAuthRequired.

  • redirectUrl

    stringa facoltativo

    Utilizzato solo in risposta agli eventi onBeforeRequest e onHeadersReceived. Se impostato, si impedisce l'invio/il completamento della richiesta originale e viene invece reindirizzata all'URL specificato. I reindirizzamenti a schemi non HTTP come data: sono consentiti. I reindirizzamenti avviati da un'azione di reindirizzamento utilizzano il metodo di richiesta originale per il reindirizzamento, con un'eccezione: se il reindirizzamento viene avviato nella fase onHeadersReceived, il reindirizzamento verrà emesso utilizzando il metodo GET. I reindirizzamenti dagli URL con schemi ws:// e wss:// vengono ignorati.

  • requestHeaders

    HttpHeaders facoltativo

    Utilizzato solo in risposta all'evento onBeforeSendHeaders. Se impostato, la richiesta viene effettuata con queste intestazioni.

  • responseHeaders

    HttpHeaders facoltativo

    Utilizzato solo in risposta all'evento onHeadersReceived. Se impostato, si presume che il server abbia invece risposto con queste intestazioni di risposta. Restituisci responseHeaders solo se vuoi modificare le intestazioni al fine di limitare il numero di conflitti (solo un'estensione può modificare responseHeaders per ogni richiesta).

FormDataItem

Chrome 66 e versioni successive

Contiene i dati trasmessi all'interno dei dati del modulo. Per la forma codificata, viene memorizzato come stringa se i dati sono stringhe utf-8 e come ArrayBuffer in caso contrario. Per form-data è ArrayBuffer. Se form-data rappresenta il caricamento di un file, si tratta di una stringa con nome file, se il nome file è indicato.

Enum

ArrayBuffer

stringa

HttpHeaders

Un array di intestazioni HTTP. Ogni intestazione è rappresentata come un dizionario contenente le chiavi name e value o binaryValue.

Tipo

oggetto[]

Proprietà

  • binaryValue

    number[] facoltativo

    Valore dell'intestazione HTTP se non può essere rappresentato da UTF-8, memorizzato come valori di byte individuali (0..255).

  • nome

    stringa

    Nome dell'intestazione HTTP.

  • valore

    stringa facoltativo

    Valore dell'intestazione HTTP se può essere rappresentato con la codifica UTF-8.

IgnoredActionType

Chrome 70 e versioni successive

Enum

"request_headers"

"response_headers"

"auth_credentials"

OnAuthRequiredOptions

Chrome 44 e versioni successive

Enum

"responseHeaders"
Specifica che le intestazioni delle risposte devono essere incluse nell'evento.

"bloccare"
Specifica che la richiesta è bloccata fino a quando non viene restituita la funzione di callback.

"asyncBlock"
Specifica che la funzione di callback viene gestita in modo asincrono.

"extraHeaders"
Specifica che le intestazioni possono violare la condivisione delle risorse tra origini (CORS).

OnBeforeRedirectOptions

Chrome 44 e versioni successive

Enum

"responseHeaders"
Specifica che le intestazioni delle risposte devono essere incluse nell'evento.

"extraHeaders"
Specifica che le intestazioni possono violare la condivisione delle risorse tra origini (CORS).

OnBeforeRequestOptions

Chrome 44 e versioni successive

Enum

"bloccare"
Specifica che la richiesta è bloccata fino a quando non viene restituita la funzione di callback.

"requestBody"
Specifica che il corpo della richiesta deve essere incluso nell'evento.

"extraHeaders"
Specifica che le intestazioni possono violare la condivisione delle risorse tra origini (CORS).

OnBeforeSendHeadersOptions

Chrome 44 e versioni successive

Enum

"requestHeaders"
Specifica che l'intestazione della richiesta deve essere inclusa nell'evento.

"bloccare"
Specifica che la richiesta è bloccata fino a quando non viene restituita la funzione di callback.

"extraHeaders"
Specifica che le intestazioni possono violare la condivisione delle risorse tra origini (CORS).

OnCompletedOptions

Chrome 44 e versioni successive

Enum

"responseHeaders"
Specifica che le intestazioni delle risposte devono essere incluse nell'evento.

"extraHeaders"
Specifica che le intestazioni possono violare la condivisione delle risorse tra origini (CORS).

OnErrorOccurredOptions

Chrome 79 e versioni successive

Valore

"extraHeaders"

OnHeadersReceivedOptions

Chrome 44 e versioni successive

Enum

"bloccare"
Specifica che la richiesta è bloccata fino a quando non viene restituita la funzione di callback.

"responseHeaders"
Specifica che le intestazioni delle risposte devono essere incluse nell'evento.

"extraHeaders"
Specifica che le intestazioni possono violare la condivisione delle risorse tra origini (CORS).

OnResponseStartedOptions

Chrome 44 e versioni successive

Enum

"responseHeaders"
Specifica che le intestazioni delle risposte devono essere incluse nell'evento.

"extraHeaders"
Specifica che le intestazioni possono violare la condivisione delle risorse tra origini (CORS).

OnSendHeadersOptions

Chrome 44 e versioni successive

Enum

"requestHeaders"
Specifica che l'intestazione della richiesta deve essere inclusa nell'evento.

"extraHeaders"
Specifica che le intestazioni possono violare la condivisione delle risorse tra origini (CORS).

RequestFilter

Un oggetto che descrive i filtri da applicare agli eventi webRequest.

Proprietà

  • tabId

    numero facoltativo

  • tipi

    Facoltativo ResourceType[]

    Un elenco dei tipi di richieste. Le richieste che non possono corrispondere a nessuno di questi tipi vengono escluse.

  • urls

    stringa[]

    Un elenco di URL o pattern di URL. Le richieste che non possono corrispondere a nessuno degli URL verranno escluse.

  • windowId

    numero facoltativo

ResourceType

Chrome 44 e versioni successive

Enum

"main_frame"
Specifica la risorsa come frame principale.

"sub_frame"
Specifica la risorsa come frame secondario.

"stylesheet"
Specifica la risorsa come foglio di stile.

"script"
Specifica la risorsa come script.

"image"
Specifica la risorsa come immagine.

"font"
Specifica la risorsa come carattere.

"object"
Specifica la risorsa come un oggetto.

"xmlhttprequest"
Specifica la risorsa come XMLHttpRequest.

"ping"
Specifica la risorsa come ping.

"csp_report"
Specifica la risorsa come report sui criteri di sicurezza del contenuto (CSP).

"media"
Specifica la risorsa come oggetto multimediale.

"websocket"
Specifica la risorsa come WebSocket.

"webbundle"
Specifica la risorsa come WebBundle.

"other"
Specifica la risorsa come tipo non incluso nei tipi elencati.

UploadData

Contiene i dati caricati in una richiesta URL.

Proprietà

  • byte

    qualsiasi facoltativo

    Un ArrayBuffer con una copia dei dati.

  • file

    stringa facoltativo

    Una stringa con il percorso e il nome del file.

Proprietà

MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES

Il numero massimo di chiamate di handlerBehaviorChanged per un intervallo sostenuto di 10 minuti. handlerBehaviorChanged è una chiamata funzione costosa che non dovrebbe essere chiamata spesso.

Valore

20

Metodi

handlerBehaviorChanged()

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

Deve essere chiamato quando il comportamento dei gestori webRequest cambia per evitare una gestione errata dovuta alla memorizzazione nella cache. Questa chiamata di funzione è costosa. Non chiamarlo spesso.

Parametri

  • callback

    funzione facoltativa

    Il parametro callback ha il seguente aspetto:

    ()=>void

Ritorni

  • Promise<void>

    Chrome 116 e versioni successive

    Le promesse sono supportate in Manifest V3 e versioni successive, ma vengono forniti callback per garantire la compatibilità con le versioni precedenti. Non puoi utilizzarli entrambi nella stessa chiamata di funzione. La promessa viene risolta con lo stesso tipo trasmesso al callback.

Eventi

onActionIgnored

Chrome 70 e versioni successive
chrome.webRequest.onActionIgnored.addListener(
  callback: function,
)

Attivato quando la modifica proposta da un'estensione a una richiesta di rete viene ignorata. Questo accade in caso di conflitti con altre estensioni.

Parametri

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (details: object)=>void

    • dettagli

      oggetto

      • L'azione proposta che è stata ignorata.

      • requestId

        stringa

        L'ID della richiesta. Gli ID richiesta sono univoci all'interno di una sessione del browser. Di conseguenza, possono essere utilizzati per mettere in correlazione eventi diversi della stessa richiesta.

onAuthRequired

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

Attivato quando viene ricevuto un errore di autenticazione. Il listener ha tre opzioni: può fornire le credenziali di autenticazione, può annullare la richiesta e visualizzare la pagina di errore oppure non può eseguire alcuna azione sulla verifica. Se vengono fornite credenziali utente non valide, potrebbe essere richiamato più volte la stessa richiesta. Nota: nel parametro extraInfoSpec deve essere specificata solo una delle modalità 'blocking' o 'asyncBlocking'.

Parametri

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

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

    • dettagli

      oggetto

      • sfidante

        oggetto

        Il server che richiede l'autenticazione.

        • organizzatore

          stringa

        • porta

          numero

      • documentId

        stringa

        Chrome 106 e versioni successive

        L'UUID del documento che effettua la richiesta.

      • Chrome 106 e versioni successive

        Il ciclo di vita del documento.

      • frameId

        numero

        Il valore 0 indica che la richiesta avviene nel frame principale, mentre un valore positivo indica l'ID di un frame secondario in cui si verifica la richiesta. Se il documento di un (sub-)frame viene caricato (type è main_frame o sub_frame), frameId indica l'ID di questo frame, non l'ID del frame esterno. Gli ID frame sono univoci all'interno di una scheda.

      • Chrome 106 e versioni successive

        Il tipo di frame in cui si è verificata la richiesta.

      • iniziatore

        stringa facoltativo

        Chrome 63 e versioni successive

        L'origine in cui è stata avviata la richiesta. Questo non cambia tramite i reindirizzamenti. Se questa è un'origine opaca, verrà utilizzata la stringa "null".

      • isProxy

        boolean

        True per Proxy-Authenticate, false per WWW-Authenticate.

      • method

        stringa

        Metodo HTTP standard.

      • parentDocumentId

        stringa facoltativo

        Chrome 106 e versioni successive

        L'UUID del documento principale proprietario di questo frame. Non è impostato se non esiste un elemento padre.

      • parentFrameId

        numero

        ID del frame che aggrega il frame che ha inviato la richiesta. Imposta il valore su -1 se non esiste alcun frame principale.

      • area di autenticazione

        stringa facoltativo

        L'area di autenticazione dell'autenticazione fornita dal server, se presente.

      • requestId

        stringa

        L'ID della richiesta. Gli ID richiesta sono univoci all'interno di una sessione del browser. Di conseguenza, possono essere utilizzati per mettere in correlazione eventi diversi della stessa richiesta.

      • responseHeaders

        HttpHeaders facoltativo

        Le intestazioni della risposta HTTP ricevute insieme a questa risposta.

      • schema

        stringa

        Lo schema di autenticazione, ad esempio Basic o Digest.

      • statusCode

        numero

        Chrome 43 e versioni successive

        Codice di stato HTTP standard restituito dal server.

      • statusLine

        stringa

        Riga di stato HTTP della risposta o stringa "HTTP/0.9 200 OK" per risposte HTTP/0.9 (ovvero risposte senza riga di stato) o stringa vuota se non ci sono intestazioni.

      • tabId

        numero

        L'ID della scheda in cui si verifica la richiesta. Imposta il valore su -1 se la richiesta non è correlata a una scheda.

      • timeStamp

        numero

        Il tempo in millisecondi in cui viene attivato questo segnale dall'epoca.

      • Modalità di utilizzo della risorsa richiesta.

      • url

        stringa

    • asyncCallback

      funzione facoltativa

      Chrome 58 e versioni successive

      Il parametro asyncCallback ha il seguente aspetto:

      (response: BlockingResponse)=>void

    • returns

      BlockingResponse|non definito

      Se nel parametro "extraInfoSpec" viene specificato "blocco", il listener di eventi deve restituire un oggetto di questo tipo.

  • filter
  • extraInfoSpec

    OnAuthRequiredOptions[] facoltativo

onBeforeRedirect

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

Attivato quando sta per verificarsi un reindirizzamento avviato dal server.

Parametri

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (details: object)=>void

    • dettagli

      oggetto

      • documentId

        stringa

        Chrome 106 e versioni successive

        L'UUID del documento che effettua la richiesta.

      • Chrome 106 e versioni successive

        Il ciclo di vita del documento.

      • frameId

        numero

        Il valore 0 indica che la richiesta avviene nel frame principale, mentre un valore positivo indica l'ID di un frame secondario in cui si verifica la richiesta. Se il documento di un (sub-)frame viene caricato (type è main_frame o sub_frame), frameId indica l'ID di questo frame, non l'ID del frame esterno. Gli ID frame sono univoci all'interno di una scheda.

      • Chrome 106 e versioni successive

        Il tipo di frame in cui si è verificata la richiesta.

      • fromCache

        boolean

        Indica se la risposta è stata recuperata dalla cache del disco.

      • iniziatore

        stringa facoltativo

        Chrome 63 e versioni successive

        L'origine in cui è stata avviata la richiesta. Questo non cambia tramite i reindirizzamenti. Se questa è un'origine opaca, verrà utilizzata la stringa "null".

      • ip

        stringa facoltativo

        L'indirizzo IP del server a cui è stata effettivamente inviata la richiesta. Tieni presente che potrebbe essere un indirizzo IPv6 letterale.

      • method

        stringa

        Metodo HTTP standard.

      • parentDocumentId

        stringa facoltativo

        Chrome 106 e versioni successive

        L'UUID del documento principale proprietario di questo frame. Non è impostato se non esiste un elemento padre.

      • parentFrameId

        numero

        ID del frame che aggrega il frame che ha inviato la richiesta. Imposta il valore su -1 se non esiste alcun frame principale.

      • redirectUrl

        stringa

        Il nuovo URL.

      • requestId

        stringa

        L'ID della richiesta. Gli ID richiesta sono univoci all'interno di una sessione del browser. Di conseguenza, possono essere utilizzati per mettere in correlazione eventi diversi della stessa richiesta.

      • responseHeaders

        HttpHeaders facoltativo

        Le intestazioni della risposta HTTP ricevute con il reindirizzamento.

      • statusCode

        numero

        Codice di stato HTTP standard restituito dal server.

      • statusLine

        stringa

        Riga di stato HTTP della risposta o stringa "HTTP/0.9 200 OK" per risposte HTTP/0.9 (ovvero risposte senza riga di stato) o stringa vuota se non ci sono intestazioni.

      • tabId

        numero

        L'ID della scheda in cui si verifica la richiesta. Imposta il valore su -1 se la richiesta non è correlata a una scheda.

      • timeStamp

        numero

        Il tempo in millisecondi in cui viene attivato questo segnale dall'epoca.

      • Modalità di utilizzo della risorsa richiesta.

      • url

        stringa

  • filter
  • extraInfoSpec

onBeforeRequest

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

Attivato quando sta per verificarsi una richiesta.

Parametri

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (details: object)=>BlockingResponse|undefined

    • dettagli

      oggetto

      • documentId

        stringa facoltativo

        Chrome 106 e versioni successive

        L'UUID del documento che effettua la richiesta.

      • documentLifecycle
        Chrome 106 e versioni successive

        Il ciclo di vita del documento.

      • frameId

        numero

        Il valore 0 indica che la richiesta avviene nel frame principale, mentre un valore positivo indica l'ID di un frame secondario in cui si verifica la richiesta. Se il documento di un (sub-)frame viene caricato (type è main_frame o sub_frame), frameId indica l'ID di questo frame, non l'ID del frame esterno. Gli ID frame sono univoci all'interno di una scheda.

      • frameType
        Chrome 106 e versioni successive

        Il tipo di frame in cui si è verificata la richiesta.

      • iniziatore

        stringa facoltativo

        Chrome 63 e versioni successive

        L'origine in cui è stata avviata la richiesta. Questo non cambia tramite i reindirizzamenti. Se questa è un'origine opaca, verrà utilizzata la stringa "null".

      • method

        stringa

        Metodo HTTP standard.

      • parentDocumentId

        stringa facoltativo

        Chrome 106 e versioni successive

        L'UUID del documento principale proprietario di questo frame. Non è impostato se non esiste un elemento padre.

      • parentFrameId

        numero

        ID del frame che aggrega il frame che ha inviato la richiesta. Imposta il valore su -1 se non esiste alcun frame principale.

      • requestBody

        oggetto facoltativo

        Contiene i dati del corpo della richiesta HTTP. Fornito solo se extraInfoSpec contiene "requestBody".

        • errore

          stringa facoltativo

          Errori durante il recupero dei dati del corpo della richiesta.

        • formData

          oggetto facoltativo

          Se il metodo di richiesta è POST e il corpo è una sequenza di coppie chiave-valore codificate in UTF8, codificate come multipart/form-data o application/x-www-form-urlcoded, è presente questo dizionario e per ogni chiave contiene l'elenco di tutti i valori relativi a quella chiave. Se i dati sono di un altro tipo di supporto o se sono in un formato non corretto, il dizionario non è presente. Un valore di esempio di questo dizionario è {'key': ['value1', 'value2']}.

        • grezzo

          UploadData[] facoltativo

          Se il metodo della richiesta è PUT o POST e il corpo non è già stato analizzato in formData, gli elementi del corpo della richiesta non analizzati sono contenuti in questo array.

      • requestId

        stringa

        L'ID della richiesta. Gli ID richiesta sono univoci all'interno di una sessione del browser. Di conseguenza, possono essere utilizzati per mettere in correlazione eventi diversi della stessa richiesta.

      • tabId

        numero

        L'ID della scheda in cui si verifica la richiesta. Imposta il valore su -1 se la richiesta non è correlata a una scheda.

      • timeStamp

        numero

        Il tempo in millisecondi in cui viene attivato questo segnale dall'epoca.

      • Modalità di utilizzo della risorsa richiesta.

      • url

        stringa

    • returns

      BlockingResponse|non definito

      Se nel parametro "extraInfoSpec" viene specificato "blocco", il listener di eventi deve restituire un oggetto di questo tipo.

  • filter
  • extraInfoSpec

    OnBeforeRequestOptions[] facoltativo

onBeforeSendHeaders

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

Viene attivato prima di inviare una richiesta HTTP, una volta che le intestazioni della richiesta sono disponibili. Questo può verificarsi dopo che viene stabilita una connessione TCP al server, ma prima che vengano inviati dati HTTP.

Parametri

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (details: object)=>BlockingResponse|undefined

    • dettagli

      oggetto

      • documentId

        stringa

        Chrome 106 e versioni successive

        L'UUID del documento che effettua la richiesta.

      • Chrome 106 e versioni successive

        Il ciclo di vita del documento.

      • frameId

        numero

        Il valore 0 indica che la richiesta avviene nel frame principale, mentre un valore positivo indica l'ID di un frame secondario in cui si verifica la richiesta. Se il documento di un (sub-)frame viene caricato (type è main_frame o sub_frame), frameId indica l'ID di questo frame, non l'ID del frame esterno. Gli ID frame sono univoci all'interno di una scheda.

      • Chrome 106 e versioni successive

        Il tipo di frame in cui si è verificata la richiesta.

      • iniziatore

        stringa facoltativo

        Chrome 63 e versioni successive

        L'origine in cui è stata avviata la richiesta. Questo non cambia tramite i reindirizzamenti. Se questa è un'origine opaca, verrà utilizzata la stringa "null".

      • method

        stringa

        Metodo HTTP standard.

      • parentDocumentId

        stringa facoltativo

        Chrome 106 e versioni successive

        L'UUID del documento principale proprietario di questo frame. Non è impostato se non esiste un elemento padre.

      • parentFrameId

        numero

        ID del frame che aggrega il frame che ha inviato la richiesta. Imposta il valore su -1 se non esiste alcun frame principale.

      • requestHeaders

        HttpHeaders facoltativo

        Le intestazioni della richiesta HTTP che verranno inviate con questa richiesta.

      • requestId

        stringa

        L'ID della richiesta. Gli ID richiesta sono univoci all'interno di una sessione del browser. Di conseguenza, possono essere utilizzati per mettere in correlazione eventi diversi della stessa richiesta.

      • tabId

        numero

        L'ID della scheda in cui si verifica la richiesta. Imposta il valore su -1 se la richiesta non è correlata a una scheda.

      • timeStamp

        numero

        Il tempo in millisecondi in cui viene attivato questo segnale dall'epoca.

      • Modalità di utilizzo della risorsa richiesta.

      • url

        stringa

    • returns

      BlockingResponse|non definito

      Se nel parametro "extraInfoSpec" viene specificato "blocco", il listener di eventi deve restituire un oggetto di questo tipo.

  • filter
  • extraInfoSpec

onCompleted

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

Attivato quando una richiesta viene completata.

Parametri

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (details: object)=>void

    • dettagli

      oggetto

      • documentId

        stringa

        Chrome 106 e versioni successive

        L'UUID del documento che effettua la richiesta.

      • Chrome 106 e versioni successive

        Il ciclo di vita del documento.

      • frameId

        numero

        Il valore 0 indica che la richiesta avviene nel frame principale, mentre un valore positivo indica l'ID di un frame secondario in cui si verifica la richiesta. Se il documento di un (sub-)frame viene caricato (type è main_frame o sub_frame), frameId indica l'ID di questo frame, non l'ID del frame esterno. Gli ID frame sono univoci all'interno di una scheda.

      • Chrome 106 e versioni successive

        Il tipo di frame in cui si è verificata la richiesta.

      • fromCache

        boolean

        Indica se la risposta è stata recuperata dalla cache del disco.

      • iniziatore

        stringa facoltativo

        Chrome 63 e versioni successive

        L'origine in cui è stata avviata la richiesta. Questo non cambia tramite i reindirizzamenti. Se questa è un'origine opaca, verrà utilizzata la stringa "null".

      • ip

        stringa facoltativo

        L'indirizzo IP del server a cui è stata effettivamente inviata la richiesta. Tieni presente che potrebbe essere un indirizzo IPv6 letterale.

      • method

        stringa

        Metodo HTTP standard.

      • parentDocumentId

        stringa facoltativo

        Chrome 106 e versioni successive

        L'UUID del documento principale proprietario di questo frame. Non è impostato se non esiste un elemento padre.

      • parentFrameId

        numero

        ID del frame che aggrega il frame che ha inviato la richiesta. Imposta il valore su -1 se non esiste alcun frame principale.

      • requestId

        stringa

        L'ID della richiesta. Gli ID richiesta sono univoci all'interno di una sessione del browser. Di conseguenza, possono essere utilizzati per mettere in correlazione eventi diversi della stessa richiesta.

      • responseHeaders

        HttpHeaders facoltativo

        Le intestazioni della risposta HTTP ricevute insieme a questa risposta.

      • statusCode

        numero

        Codice di stato HTTP standard restituito dal server.

      • statusLine

        stringa

        Riga di stato HTTP della risposta o stringa "HTTP/0.9 200 OK" per risposte HTTP/0.9 (ovvero risposte senza riga di stato) o stringa vuota se non ci sono intestazioni.

      • tabId

        numero

        L'ID della scheda in cui si verifica la richiesta. Imposta il valore su -1 se la richiesta non è correlata a una scheda.

      • timeStamp

        numero

        Il tempo in millisecondi in cui viene attivato questo segnale dall'epoca.

      • Modalità di utilizzo della risorsa richiesta.

      • url

        stringa

  • filter
  • extraInfoSpec

    OnCompletedOptions[] facoltativo

onErrorOccurred

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

Attivato quando si verifica un errore.

Parametri

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (details: object)=>void

    • dettagli

      oggetto

      • documentId

        stringa

        Chrome 106 e versioni successive

        L'UUID del documento che effettua la richiesta. Questo valore non è presente se la richiesta riguarda la navigazione in un frame.

      • Chrome 106 e versioni successive

        Il ciclo di vita del documento.

      • errore

        stringa

        La descrizione dell'errore. Non è garantito che questa stringa rimanga compatibile con le versioni precedenti tra le release. Non devi analizzare i contenuti e agire di conseguenza.

      • frameId

        numero

        Il valore 0 indica che la richiesta avviene nel frame principale, mentre un valore positivo indica l'ID di un frame secondario in cui si verifica la richiesta. Se il documento di un (sub-)frame viene caricato (type è main_frame o sub_frame), frameId indica l'ID di questo frame, non l'ID del frame esterno. Gli ID frame sono univoci all'interno di una scheda.

      • Chrome 106 e versioni successive

        Il tipo di frame in cui si è verificata la richiesta.

      • fromCache

        boolean

        Indica se la risposta è stata recuperata dalla cache del disco.

      • iniziatore

        stringa facoltativo

        Chrome 63 e versioni successive

        L'origine in cui è stata avviata la richiesta. Questo non cambia tramite i reindirizzamenti. Se questa è un'origine opaca, verrà utilizzata la stringa "null".

      • ip

        stringa facoltativo

        L'indirizzo IP del server a cui è stata effettivamente inviata la richiesta. Tieni presente che potrebbe essere un indirizzo IPv6 letterale.

      • method

        stringa

        Metodo HTTP standard.

      • parentDocumentId

        stringa facoltativo

        Chrome 106 e versioni successive

        L'UUID del documento principale proprietario di questo frame. Non è impostato se non esiste un elemento padre.

      • parentFrameId

        numero

        ID del frame che aggrega il frame che ha inviato la richiesta. Imposta il valore su -1 se non esiste alcun frame principale.

      • requestId

        stringa

        L'ID della richiesta. Gli ID richiesta sono univoci all'interno di una sessione del browser. Di conseguenza, possono essere utilizzati per mettere in correlazione eventi diversi della stessa richiesta.

      • tabId

        numero

        L'ID della scheda in cui si verifica la richiesta. Imposta il valore su -1 se la richiesta non è correlata a una scheda.

      • timeStamp

        numero

        Il tempo in millisecondi in cui viene attivato questo segnale dall'epoca.

      • Modalità di utilizzo della risorsa richiesta.

      • url

        stringa

  • filter
  • extraInfoSpec

    OnErrorOccurredOptions[] facoltativo

onHeadersReceived

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

Attivato quando vengono ricevute le intestazioni della risposta HTTP di una richiesta.

Parametri

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (details: object)=>BlockingResponse|undefined

    • dettagli

      oggetto

      • documentId

        stringa

        Chrome 106 e versioni successive

        L'UUID del documento che effettua la richiesta.

      • Chrome 106 e versioni successive

        Il ciclo di vita del documento.

      • frameId

        numero

        Il valore 0 indica che la richiesta avviene nel frame principale, mentre un valore positivo indica l'ID di un frame secondario in cui si verifica la richiesta. Se il documento di un (sub-)frame viene caricato (type è main_frame o sub_frame), frameId indica l'ID di questo frame, non l'ID del frame esterno. Gli ID frame sono univoci all'interno di una scheda.

      • Chrome 106 e versioni successive

        Il tipo di frame in cui si è verificata la richiesta.

      • iniziatore

        stringa facoltativo

        Chrome 63 e versioni successive

        L'origine in cui è stata avviata la richiesta. Questo non cambia tramite i reindirizzamenti. Se questa è un'origine opaca, verrà utilizzata la stringa "null".

      • method

        stringa

        Metodo HTTP standard.

      • parentDocumentId

        stringa facoltativo

        Chrome 106 e versioni successive

        L'UUID del documento principale proprietario di questo frame. Non è impostato se non esiste un elemento padre.

      • parentFrameId

        numero

        ID del frame che aggrega il frame che ha inviato la richiesta. Imposta il valore su -1 se non esiste alcun frame principale.

      • requestId

        stringa

        L'ID della richiesta. Gli ID richiesta sono univoci all'interno di una sessione del browser. Di conseguenza, possono essere utilizzati per mettere in correlazione eventi diversi della stessa richiesta.

      • responseHeaders

        HttpHeaders facoltativo

        Le intestazioni della risposta HTTP ricevute con questa risposta.

      • statusCode

        numero

        Chrome 43 e versioni successive

        Codice di stato HTTP standard restituito dal server.

      • statusLine

        stringa

        Riga di stato HTTP della risposta o stringa "HTTP/0.9 200 OK" per risposte HTTP/0.9 (ovvero risposte senza una riga di stato).

      • tabId

        numero

        L'ID della scheda in cui si verifica la richiesta. Imposta il valore su -1 se la richiesta non è correlata a una scheda.

      • timeStamp

        numero

        Il tempo in millisecondi in cui viene attivato questo segnale dall'epoca.

      • Modalità di utilizzo della risorsa richiesta.

      • url

        stringa

    • returns

      BlockingResponse|non definito

      Se nel parametro "extraInfoSpec" viene specificato "blocco", il listener di eventi deve restituire un oggetto di questo tipo.

  • filter
  • extraInfoSpec

onResponseStarted

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

Attivato quando viene ricevuto il primo byte del corpo della risposta. Per le richieste HTTP, significa che sono disponibili la riga di stato e le intestazioni di risposta.

Parametri

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (details: object)=>void

    • dettagli

      oggetto

      • documentId

        stringa

        Chrome 106 e versioni successive

        L'UUID del documento che effettua la richiesta.

      • Chrome 106 e versioni successive

        Il ciclo di vita del documento.

      • frameId

        numero

        Il valore 0 indica che la richiesta avviene nel frame principale, mentre un valore positivo indica l'ID di un frame secondario in cui si verifica la richiesta. Se il documento di un (sub-)frame viene caricato (type è main_frame o sub_frame), frameId indica l'ID di questo frame, non l'ID del frame esterno. Gli ID frame sono univoci all'interno di una scheda.

      • Chrome 106 e versioni successive

        Il tipo di frame in cui si è verificata la richiesta.

      • fromCache

        boolean

        Indica se la risposta è stata recuperata dalla cache del disco.

      • iniziatore

        stringa facoltativo

        Chrome 63 e versioni successive

        L'origine in cui è stata avviata la richiesta. Questo non cambia tramite i reindirizzamenti. Se questa è un'origine opaca, verrà utilizzata la stringa "null".

      • ip

        stringa facoltativo

        L'indirizzo IP del server a cui è stata effettivamente inviata la richiesta. Tieni presente che potrebbe essere un indirizzo IPv6 letterale.

      • method

        stringa

        Metodo HTTP standard.

      • parentDocumentId

        stringa facoltativo

        Chrome 106 e versioni successive

        L'UUID del documento principale proprietario di questo frame. Non è impostato se non esiste un elemento padre.

      • parentFrameId

        numero

        ID del frame che aggrega il frame che ha inviato la richiesta. Imposta il valore su -1 se non esiste alcun frame principale.

      • requestId

        stringa

        L'ID della richiesta. Gli ID richiesta sono univoci all'interno di una sessione del browser. Di conseguenza, possono essere utilizzati per mettere in correlazione eventi diversi della stessa richiesta.

      • responseHeaders

        HttpHeaders facoltativo

        Le intestazioni della risposta HTTP ricevute insieme a questa risposta.

      • statusCode

        numero

        Codice di stato HTTP standard restituito dal server.

      • statusLine

        stringa

        Riga di stato HTTP della risposta o stringa "HTTP/0.9 200 OK" per risposte HTTP/0.9 (ovvero risposte senza riga di stato) o stringa vuota se non ci sono intestazioni.

      • tabId

        numero

        L'ID della scheda in cui si verifica la richiesta. Imposta il valore su -1 se la richiesta non è correlata a una scheda.

      • timeStamp

        numero

        Il tempo in millisecondi in cui viene attivato questo segnale dall'epoca.

      • Modalità di utilizzo della risorsa richiesta.

      • url

        stringa

  • filter
  • extraInfoSpec

onSendHeaders

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

Attivata poco prima che una richiesta venga inviata al server (le modifiche dei callback precedenti onBeforeSendHeaders sono visibili al momento dell'attivazione di onSendHeaders).

Parametri

  • callback

    funzione

    Il parametro callback ha il seguente aspetto:

    (details: object)=>void

    • dettagli

      oggetto

      • documentId

        stringa

        Chrome 106 e versioni successive

        L'UUID del documento che effettua la richiesta.

      • Chrome 106 e versioni successive

        Il ciclo di vita del documento.

      • frameId

        numero

        Il valore 0 indica che la richiesta avviene nel frame principale, mentre un valore positivo indica l'ID di un frame secondario in cui si verifica la richiesta. Se il documento di un (sub-)frame viene caricato (type è main_frame o sub_frame), frameId indica l'ID di questo frame, non l'ID del frame esterno. Gli ID frame sono univoci all'interno di una scheda.

      • Chrome 106 e versioni successive

        Il tipo di frame in cui si è verificata la richiesta.

      • iniziatore

        stringa facoltativo

        Chrome 63 e versioni successive

        L'origine in cui è stata avviata la richiesta. Questo non cambia tramite i reindirizzamenti. Se questa è un'origine opaca, verrà utilizzata la stringa "null".

      • method

        stringa

        Metodo HTTP standard.

      • parentDocumentId

        stringa facoltativo

        Chrome 106 e versioni successive

        L'UUID del documento principale proprietario di questo frame. Non è impostato se non esiste un elemento padre.

      • parentFrameId

        numero

        ID del frame che aggrega il frame che ha inviato la richiesta. Imposta il valore su -1 se non esiste alcun frame principale.

      • requestHeaders

        HttpHeaders facoltativo

        Le intestazioni della richiesta HTTP inviate con questa richiesta.

      • requestId

        stringa

        L'ID della richiesta. Gli ID richiesta sono univoci all'interno di una sessione del browser. Di conseguenza, possono essere utilizzati per mettere in correlazione eventi diversi della stessa richiesta.

      • tabId

        numero

        L'ID della scheda in cui si verifica la richiesta. Imposta il valore su -1 se la richiesta non è correlata a una scheda.

      • timeStamp

        numero

        Il tempo in millisecondi in cui viene attivato questo segnale dall'epoca.

      • Modalità di utilizzo della risorsa richiesta.

      • url

        stringa

  • filter
  • extraInfoSpec

    OnSendHeadersOptions[] facoltativo