Descrizione
Nota: questa API è deprecata. Dai un'occhiata all'API declarativeNetRequest. Utilizza l'API chrome.declarativeWebRequest per intercettare, bloccare o modificare le richieste in corso di pubblicazione. È molto più veloce rispetto all'API chrome.webRequest perché puoi registrare regole valutate nel browser anziché nel motore JavaScript, il che riduce le latenze di round trip e consente un'efficienza maggiore.
Autorizzazioni
declarativeWebRequestDevi dichiarare la richiesta "declarativeWebRequest" autorizzazione nel manifest dell'estensione per utilizzare API, insieme alle autorizzazioni host.
{
  "name": "My extension",
  ...
  "permissions": [
    "declarativeWebRequest",
    "*://*/*"
  ],
  ...
}
Disponibilità
Manifest
Tieni presente che alcuni tipi di azioni non sensibili non richiedono le autorizzazioni dell'host:
- CancelRequest
- IgnoreRules
- RedirectToEmptyDocument
- RedirectToTransparentImage
L'azione SendMessageToExtension() richiede le autorizzazioni host per tutti gli host le cui richieste di rete
su cui vuoi attivare un messaggio.
Tutte le altre azioni richiedono le autorizzazioni dell'host per tutti gli URL.
Ad esempio, se "https://*.google.com/*" è l'unica autorizzazione host di cui dispone un'estensione, tale
estensione può impostare una regola per:
- Annulla una richiesta a https://www.google.comohttps://anything.else.com.
- Invia un messaggio quando vai a https://www.google.com, ma non ahttps://something.else.com.
L'estensione non può impostare una regola per reindirizzare https://www.google.com a https://mail.google.com.
Regole
L'API Declarative Web Request segue i concetti dell'API dichiarativa. Puoi registrarti
all'oggetto evento chrome.declarativeWebRequest.onRequest.
L'API Declarative Web Request supporta un solo tipo di criteri di corrispondenza, RequestMatcher. La
RequestMatcher corrisponde alle richieste di rete se e solo se sono soddisfatti tutti i criteri elencati. Le seguenti
RequestMatcher corrisponde a una richiesta di rete quando l'utente inserisce https://www.example.com nel
ominibox:
var matcher = new chrome.declarativeWebRequest.RequestMatcher({
  url: { hostSuffix: 'example.com', schemes: ['http'] },
  resourceType: ['main_frame']
});
Le richieste a https://www.example.com verranno rifiutate da RequestMatcher a causa dello schema.
Inoltre, tutte le richieste per un iframe incorporato verranno rifiutate a causa dell'elemento resourceType.
Per annullare tutte le richieste a "example.com", puoi definire una regola come segue:
var rule = {
  conditions: [
    new chrome.declarativeWebRequest.RequestMatcher({
      url: { hostSuffix: 'example.com' } })
  ],
  actions: [
    new chrome.declarativeWebRequest.CancelRequest()
  ]
};
Per annullare tutte le richieste a example.com e foobar.com, puoi aggiungere una seconda condizione,
poiché ogni condizione è sufficiente per attivare tutte le azioni specificate:
var rule2 = {
  conditions: [
    new chrome.declarativeWebRequest.RequestMatcher({
      url: { hostSuffix: 'example.com' } }),
    new chrome.declarativeWebRequest.RequestMatcher({
      url: { hostSuffix: 'foobar.com' } })
  ],
  actions: [
    new chrome.declarativeWebRequest.CancelRequest()
  ]
};
Registra le regole come segue:
chrome.declarativeWebRequest.onRequest.addRules([rule2]);
Valutazione di condizioni e azioni
L'API Declarative Web Request segue il modello del ciclo di vita per le richieste web del Web API di richiesta. Ciò significa che le condizioni possono essere testate solo in fasi specifiche di una richiesta web Allo stesso modo, le azioni possono essere eseguite solo in fasi specifiche. Le seguenti tabelle elencano che siano compatibili con condizioni e azioni.
| Fasi della richiesta durante le quali è possibile elaborare gli attributi della condizione. | ||||
|---|---|---|---|---|
| Attributo condizione | onBeforeRequest | onBeforeSendHeaders | onHeadersReceived | onAuthRequired | 
| url | ✓ | ✓ | ✓ | ✓ | 
| resourceType | ✓ | ✓ | ✓ | ✓ | 
| contentType | ✓ | |||
| excludeContentType | ✓ | |||
| responseHeaders | ✓ | |||
| excludeResponseHeaders | ✓ | |||
| requestHeaders | ✓ | |||
| excludeRequestHeaders | ✓ | |||
| thirdPartyForCookies | ✓ | ✓ | ✓ | ✓ | 
| Fasi delle richieste durante le quali possono essere eseguite le azioni. | ||||
| Evento | onBeforeRequest | onBeforeSendHeaders | onHeadersReceived | onAuthRequired | 
| AddRequestCookie | ✓ | |||
| AddResponseCookie | ✓ | |||
| AddResponseHeader | ✓ | |||
| CancelRequest | ✓ | ✓ | ✓ | ✓ | 
| EditRequestCookie | ✓ | |||
| EditResponseCookie | ✓ | |||
| IgnoreRules | ✓ | ✓ | ✓ | ✓ | 
| RedirectByRegEx | ✓ | ✓ | ||
| RedirectRequest | ✓ | ✓ | ||
| RedirectToEmptyDocument | ✓ | ✓ | ||
| RedirectToTransparentImage | ✓ | ✓ | ||
| RemoveRequestCookie | ✓ | |||
| RemoveRequestHeader | ✓ | |||
| RemoveResponseCookie | ✓ | |||
| RemoveResponseHeader | ✓ | |||
| SendMessageToExtension | ✓ | ✓ | ✓ | ✓ | 
| SetRequestHeader | ✓ | |||
Utilizzare le priorità per eseguire l'override delle regole
Le regole possono essere associate alle priorità come descritto nell'API Events. Questo meccanismo può essere
vengono utilizzate per esprimere le eccezioni. L'esempio seguente blocca tutte le richieste alle immagini denominate evil.jpg
tranne sul server "mioserver.com".
var rule1 = {
  priority: 100,
  conditions: [
    new chrome.declarativeWebRequest.RequestMatcher({
        url: { pathEquals: 'evil.jpg' } })
  ],
  actions: [
    new chrome.declarativeWebRequest.CancelRequest()
  ]
};
var rule2 = {
  priority: 1000,
  conditions: [
    new chrome.declarativeWebRequest.RequestMatcher({
      url: { hostSuffix: '.myserver.com' } })
  ],
  actions: [
    new chrome.declarativeWebRequest.IgnoreRules({
      lowerPriorityThan: 1000 })
  ]
};
chrome.declarativeWebRequest.onRequest.addRules([rule1, rule2]);
È importante riconoscere che l'azione IgnoreRules non è persistente in tutta la richiesta
fasi. Tutte le condizioni di tutte le regole vengono valutate in ogni fase di una richiesta web. Se
L'azione IgnoreRules viene eseguita, si applica solo ad altre azioni eseguite per la stessa
una richiesta web nella stessa fase.
Tipi
AddRequestCookie
Aggiunge un cookie alla richiesta o lo sostituisce, nel caso in cui esista già un altro cookie con lo stesso nome. Tieni presente che è preferibile utilizzare l'API Cookies perché è meno costoso dal punto di vista del calcolo.
Proprietà
- 
    costruttorenull La funzione constructorha questo aspetto:(arg: AddRequestCookie) => {...} - 
    arg
 - 
            returns
 
- 
    
- 
    biscottoCookie da aggiungere alla richiesta. Nessun campo può essere indefinito. 
AddResponseCookie
Aggiunge un cookie alla risposta o lo sostituisce, nel caso in cui esista già un altro cookie con lo stesso nome. Tieni presente che è preferibile utilizzare l'API Cookies perché è meno costoso dal punto di vista del calcolo.
Proprietà
- 
    costruttorenull La funzione constructorha questo aspetto:(arg: AddResponseCookie) => {...} - 
            returns
 
- 
            
- 
    biscottoCookie da aggiungere alla risposta. È necessario specificare il nome e il valore. 
AddResponseHeader
Aggiunge l'intestazione della risposta alla risposta a questa richiesta web. Poiché più intestazioni di risposta possono condividere lo stesso nome, devi prima rimuovere e poi aggiungere una nuova intestazione di risposta per sostituirne una.
Proprietà
- 
    costruttorenull La funzione constructorha questo aspetto:(arg: AddResponseHeader) => {...} - 
            returns
 
- 
            
- 
    nomestringa Nome dell'intestazione della risposta HTTP. 
- 
    valorestringa Valore di intestazione della risposta HTTP. 
CancelRequest
Azione di evento dichiarativo che annulla una richiesta di rete.
Proprietà
- 
    costruttorenull La funzione constructorha questo aspetto:(arg: CancelRequest) => {...} - 
    arg
 - 
            returns
 
- 
    
EditRequestCookie
Modifica uno o più cookie della richiesta. Tieni presente che è preferibile utilizzare l'API Cookies perché è meno costoso dal punto di vista del calcolo.
Proprietà
- 
    costruttorenull La funzione constructorha questo aspetto:(arg: EditRequestCookie) => {...} - 
            returns
 
- 
            
- 
    filtroFiltra i cookie che verranno modificati. Tutte le voci vuote vengono ignorate. 
- 
    modificaAttributi che devono essere sostituiti dai cookie che hanno eseguito il controllo del filtro. Gli attributi impostati su una stringa vuota vengono rimossi. 
EditResponseCookie
Modifica uno o più cookie di risposta. Tieni presente che è preferibile utilizzare l'API Cookies perché è meno costoso dal punto di vista del calcolo.
Proprietà
- 
    costruttorenull La funzione constructorha questo aspetto:(arg: EditResponseCookie) => {...} - 
            returns
 
- 
            
- 
    filtroFiltra i cookie che verranno modificati. Tutte le voci vuote vengono ignorate. 
- 
    modificaAttributi che devono essere sostituiti dai cookie che hanno eseguito il controllo del filtro. Gli attributi impostati su una stringa vuota vengono rimossi. 
FilterResponseCookie
Un filtro di un cookie nelle risposte HTTP.
Proprietà
- 
    ageLowerBoundnumero facoltativo Limite inferiore inclusivo per la durata dei cookie (specificato in secondi dopo l'ora attuale). Solo i cookie la cui data e ora di scadenza è impostata su "ora + ageLowerBound" o in un secondo momento, soddisfano questo criterio. I cookie di sessione non soddisfano il criterio di questo filtro. La durata dei cookie viene calcolata da "max-age" o "scade" degli attributi dei cookie. Se sono specificati entrambi, "max-age" per calcolare la durata dei cookie. 
- 
    ageUpperBoundnumero facoltativo Limite superiore inclusivo per la durata dei cookie (specificato in secondi dopo l'ora attuale). Solo i cookie la cui data e ora di scadenza è compresa nell'intervallo [now, now + ageUpperBound] soddisfano questo criterio. I cookie di sessione e i cookie con data e ora di scadenza nel passato non soddisfano il criterio di questo filtro. La durata dei cookie viene calcolata da "max-age" o "scade" degli attributi dei cookie. Se sono specificati entrambi, "max-age" per calcolare la durata dei cookie. 
- 
    dominiostringa facoltativo Valore dell'attributo cookie Dominio. 
- 
    scadenzastringa facoltativo Valore dell'attributo Scade cookie. 
- 
    httpOnlystringa facoltativo Esistenza dell'attributo cookie HttpOnly. 
- 
    maxAgenumero facoltativo Valore dell'attributo cookie Max-Age 
- 
    nomestringa facoltativo Nome di un cookie. 
- 
    percorsostringa facoltativo Valore dell'attributo dei cookie del percorso. 
- 
    sicurostringa facoltativo Esistenza dell'attributo cookie sicuro. 
- 
    sessionCookiebooleano facoltativo Filtra i cookie di sessione. Per i cookie di sessione non è specificata la durata in nessuna di "max-age" o "scade" attributi. 
- 
    valorestringa facoltativo Il valore di un cookie, può essere riempito tra virgolette. 
HeaderFilter
Filtra le intestazioni delle richieste in base a vari criteri. Più criteri vengono valutati come una congiunzione.
Proprietà
- 
    nameContainsstring | string[] facoltativo Corrisponde se il nome dell'intestazione contiene tutte le stringhe specificate. 
- 
    nameEqualsstringa facoltativo Corrisponde se il nome dell'intestazione è uguale alla stringa specificata. 
- 
    namePrefixstringa facoltativo Corrisponde se il nome dell'intestazione inizia con la stringa specificata. 
- 
    nameSuffixstringa facoltativo Corrisponde se il nome dell'intestazione termina con la stringa specificata. 
- 
    valueContainsstring | string[] facoltativo Trova la corrispondenza se il valore dell'intestazione contiene tutte le stringhe specificate. 
- 
    valueEqualsstringa facoltativo Corrisponde se il valore dell'intestazione è uguale alla stringa specificata. 
- 
    valuePrefixstringa facoltativo Corrisponde se il valore dell'intestazione inizia con la stringa specificata. 
- 
    valueSuffixstringa facoltativo Corrisponde se il valore dell'intestazione termina con la stringa specificata. 
IgnoreRules
Maschera tutte le regole che soddisfano i criteri specificati.
Proprietà
- 
    costruttorenull La funzione constructorha questo aspetto:(arg: IgnoreRules) => {...} - 
    arg
 - 
            returns
 
- 
    
- 
    hasTagstringa facoltativo Se impostato, le regole con il tag specificato vengono ignorate. L'azione da ignorare non è permanente, influisce solo sulle regole e sulle relative azioni nella stessa fase di richiesta di rete. Tieni presente che le regole vengono eseguite in ordine decrescente in base alle priorità. Questa azione influisce sulle regole con priorità inferiore rispetto alla regola corrente. Le regole con la stessa priorità possono o meno essere ignorate. 
- 
    lowerPriorityThannumero facoltativo Se impostate, le regole con una priorità inferiore a quella specificata vengono ignorate. Questo confine non è persistente, influisce solo sulle regole e sulle relative azioni nella stessa fase di richiesta di rete. 
RedirectByRegEx
Reindirizza una richiesta applicando un'espressione regolare all'URL. Le espressioni regolari utilizzano la sintassi RE2.
Proprietà
- 
    costruttorenull La funzione constructorha questo aspetto:(arg: RedirectByRegEx) => {...} - 
    arg
 - 
            returns
 
- 
    
- 
    dastringa Un pattern di corrispondenza che può contenere gruppi di acquisizione. Ai gruppi di cattura viene fatto riferimento nella sintassi Perl ($1, $2, ...) anziché nella sintassi RE2 (\1, \2, ...) al fine di essere più vicini alle espressioni regolari JavaScript. 
- 
    astringa Pattern destinazione. 
RedirectRequest
Azione di evento dichiarativa che reindirizza una richiesta di rete.
Proprietà
- 
    costruttorenull La funzione constructorha questo aspetto:(arg: RedirectRequest) => {...} - 
    arg
 - 
            returns
 
- 
    
- 
    redirectUrlstringa Destinazione a cui viene reindirizzata la richiesta. 
RedirectToEmptyDocument
Azione di evento dichiarativa che reindirizza una richiesta di rete a un documento vuoto.
Proprietà
- 
    costruttorenull La funzione constructorha questo aspetto:(arg: RedirectToEmptyDocument) => {...} - 
            returns
 
- 
            
RedirectToTransparentImage
Azione di evento dichiarativa che reindirizza una richiesta di rete a un'immagine trasparente.
Proprietà
- 
    costruttorenull La funzione constructorha questo aspetto:(arg: RedirectToTransparentImage) => {...} - 
            returns
 
- 
            
RemoveRequestCookie
Rimuove uno o più cookie della richiesta. Tieni presente che è preferibile utilizzare l'API Cookies perché è meno costoso dal punto di vista del calcolo.
Proprietà
- 
    costruttorenull La funzione constructorha questo aspetto:(arg: RemoveRequestCookie) => {...} - 
            returns
 
- 
            
- 
    filtroFiltra i cookie che verranno rimossi. Tutte le voci vuote vengono ignorate. 
RemoveRequestHeader
Rimuove l'intestazione della richiesta del nome specificato. Non utilizzare SetRequestHeader e RimuoviRequestHeader con lo stesso nome di intestazione nella stessa richiesta. Ogni nome di intestazione della richiesta si verifica una sola volta in ogni richiesta.
Proprietà
- 
    costruttorenull La funzione constructorha questo aspetto:(arg: RemoveRequestHeader) => {...} - 
            returns
 
- 
            
- 
    nomestringa Nome dell'intestazione della richiesta HTTP (senza distinzione tra maiuscole e minuscole). 
RemoveResponseCookie
Rimuove uno o più cookie di risposta. Tieni presente che è preferibile utilizzare l'API Cookies perché è meno costoso dal punto di vista del calcolo.
Proprietà
- 
    costruttorenull La funzione constructorha questo aspetto:(arg: RemoveResponseCookie) => {...} - 
            returns
 
- 
            
- 
    filtroFiltra i cookie che verranno rimossi. Tutte le voci vuote vengono ignorate. 
RemoveResponseHeader
Rimuove tutte le intestazioni delle risposte dei nomi e dei valori specificati.
Proprietà
- 
    costruttorenull La funzione constructorha questo aspetto:(arg: RemoveResponseHeader) => {...} - 
            returns
 
- 
            
- 
    nomestringa Nome dell'intestazione della richiesta HTTP (senza distinzione tra maiuscole e minuscole). 
- 
    valorestringa facoltativo Valore di intestazione della richiesta HTTP (senza distinzione tra maiuscole e minuscole). 
RequestCookie
Un filtro o una specifica di un cookie nelle richieste HTTP.
Proprietà
- 
    nomestringa facoltativo Nome di un cookie. 
- 
    valorestringa facoltativo Il valore di un cookie, può essere riempito tra virgolette. 
RequestMatcher
Corrisponde agli eventi di rete in base a vari criteri.
Proprietà
- 
    costruttorenull La funzione constructorha questo aspetto:(arg: RequestMatcher) => {...} - 
    arg
 - 
            returns
 
- 
    
- 
    contentTypestring[] facoltativo Corrisponde a se il tipo multimediale MIME di una risposta (dall'intestazione Content-Type HTTP) è contenuto nell'elenco. 
- 
    excludeContentTypestring[] facoltativo Corrisponde a se il tipo multimediale MIME di una risposta (dall'intestazione Content-Type HTTP) non è contenuto nell'elenco. 
- 
    excludeRequestHeadersHeaderFilter[] facoltativo Corrisponde a se nessuna delle intestazioni della richiesta corrisponde a uno degli HeaderFilters. 
- 
    excludeResponseHeadersHeaderFilter[] facoltativo Trova la corrispondenza se nessuna delle intestazioni della risposta corrisponde a uno degli HeaderFilter. 
- 
    firstPartyForCookiesUrlUrlFilter facoltativo ObsoletaIgnorata dalla release 82. Corrisponde a se le condizioni di UrlFilter sono soddisfatte per il "proprietario" URL della richiesta. I dati "proprietari" L'URL di una richiesta, se presente, può essere diverso dall'URL di destinazione della richiesta e descrive ciò che è considerato "proprietario" ai fini dei controlli di terze parti per i cookie. 
- 
    requestHeadersHeaderFilter[] facoltativo Corrisponde a se alcune delle intestazioni della richiesta corrispondono a uno degli HeaderFilter. 
- 
    resourceTypeResourceType[] facoltativo Corrisponde se il tipo di richiesta di una richiesta è contenuto nell'elenco. Le richieste che non possono corrispondere a nessun tipo verranno escluse. 
- 
    responseHeadersHeaderFilter[] facoltativo Corrisponde a se alcune delle intestazioni della risposta corrispondono a uno degli HeaderFilters. 
- 
    fasiFase[] facoltativa Contiene un elenco di stringhe che descrivono le fasi. I valori consentiti sono "onBeforeRequests", "onBeforeSendHeaders", "onHeadersReceived", "onAuthRequired". Se questo attributo è presente, limita le fasi applicabili a quelle elencate. Tieni presente che l'intera condizione è applicabile solo nelle fasi compatibili con tutti gli attributi. 
- 
    thirdPartyForCookiesbooleano facoltativo ObsoletaIgnorata dalla release 87. Se impostato su true, corrisponde alle richieste soggette alle norme sui cookie di terze parti. Se impostato su false, corrisponde a tutte le altre richieste. 
- 
    urlUrlFilter facoltativo Corrisponde a se le condizioni di UrlFilter sono soddisfatte per l'URL della richiesta. 
ResponseCookie
La specifica di un cookie nelle risposte HTTP.
Proprietà
- 
    dominiostringa facoltativo Valore dell'attributo cookie Dominio. 
- 
    scadenzastringa facoltativo Valore dell'attributo Scade cookie. 
- 
    httpOnlystringa facoltativo Esistenza dell'attributo cookie HttpOnly. 
- 
    maxAgenumero facoltativo Valore dell'attributo cookie Max-Age 
- 
    nomestringa facoltativo Nome di un cookie. 
- 
    percorsostringa facoltativo Valore dell'attributo dei cookie del percorso. 
- 
    sicurostringa facoltativo Esistenza dell'attributo cookie sicuro. 
- 
    valorestringa facoltativo Il valore di un cookie, può essere riempito tra virgolette. 
SendMessageToExtension
Attiva l'evento declarativeWebRequest.onMessage.
Proprietà
- 
    costruttorenull La funzione constructorha questo aspetto:(arg: SendMessageToExtension) => {...} - 
            returns
 
- 
            
- 
    messaggiostringa Il valore che verrà passato nell'attributo messagedel dizionario passato al gestore di eventi.
SetRequestHeader
Imposta l'intestazione della richiesta del nome specificato sul valore specificato. Se non esisteva prima un'intestazione con il nome specificato, ne viene creata una nuova. Il confronto dei nomi delle intestazioni è sempre senza distinzione tra maiuscole e minuscole. Ogni nome di intestazione della richiesta si verifica una sola volta in ogni richiesta.
Proprietà
- 
    costruttorenull La funzione constructorha questo aspetto:(arg: SetRequestHeader) => {...} - 
    arg
 - 
            returns
 
- 
    
- 
    nomestringa Nome dell'intestazione della richiesta HTTP. 
- 
    valorestringa Valore di intestazione della richiesta HTTP. 
Stage
Enum
"onBeforeRequest" 
 
"onBeforeSendHeaders" 
 
"onHeadersReceived" 
 
"onAuthRequired" 
 
Eventi
onMessage
chrome.declarativeWebRequest.onMessage.addListener(
callback: function,
)
Attivato quando un messaggio viene inviato tramite declarativeWebRequest.SendMessageToExtension da un'azione dell'API di richiesta web dichiarativa.
Parametri
- 
    callbackfunzione Il parametro callbackha il seguente aspetto:(details: object) => void - 
    dettaglioggetto - 
    documentIdstringa facoltativo L'UUID del documento che ha effettuato la richiesta. 
- 
    documentLifecycleIl ciclo di vita del documento. 
- 
    frameIdnumero Il valore 0 indica che la richiesta avviene nel frame principale. un valore positivo indica l'ID di un frame secondario in cui viene eseguita la richiesta. Se il documento di un (sub-)frame viene caricato ( typeèmain_frameosub_frame),frameIdindica l'ID di questo frame, non l'ID del frame esterno. Gli ID frame sono univoci all'interno di una scheda.
- 
    frameTypeIl tipo di frame in cui è avvenuta la navigazione. 
- 
    messaggiostringa Il messaggio inviato dallo script di chiamata. 
- 
    methodstringa Metodo HTTP standard. 
- 
    parentDocumentIdstringa facoltativo Un UUID del documento padre a cui appartiene questo frame. Questa opzione non è impostata se non è presente alcun padre. 
- 
    parentFrameIdnumero ID del frame che aggrega il frame che ha inviato la richiesta. Imposta il valore su -1 se non esiste alcun frame principale. 
- 
    requestIdstringa L'ID della richiesta. Gli ID richiesta sono univoci all'interno di una sessione del browser. Di conseguenza, potrebbero essere utilizzati per collegare eventi diversi della stessa richiesta. 
- 
    faseLa fase della richiesta di rete durante la quale è stato attivato l'evento. 
- 
    tabIdnumero L'ID della scheda in cui avviene la richiesta. Imposta su -1 se la richiesta non è correlata a una scheda. 
- 
    timeStampnumero Il tempo in cui viene attivato questo segnale, in millisecondi dall'epoca. 
- 
    Modalità di utilizzo della risorsa richiesta. 
- 
    urlstringa 
 
- 
    
 
- 
    
onRequest
        Fornisce l'API Declarative Event composta da addRules, removeRules e getRules.
      
Condizioni
Azioni