Descrizione
Utilizza l'API chrome.cookies
per eseguire query e modificare i cookie, nonché per ricevere una notifica quando cambiano.
Autorizzazioni
cookies
Manifest
Per utilizzare l'API dei cookie, devi dichiarare i "cookie" l'autorizzazione nel tuo del file manifest, oltre alle autorizzazioni host per tutti gli host di cui vuoi ricevere i cookie per accedere. Ad esempio:
{
"name": "My extension",
...
"host_permissions": [
"*://*.google.com/"
],
"permissions": [
"cookies"
],
...
}
Partizionamento
I cookie partizionati consentono a un sito di contrassegnare che determinati cookie devono essere codificati in base al l'origine del frame di primo livello. Ciò significa che se il sito A è incorporato utilizzando un iframe nel sito B e il sito C, un cookie partizionato può avere un valore diverso in ciascuno.
chrome.cookies
non supporta il partizionamento, il che significa che tutti i metodi leggeranno e scriveranno i cookie da tutte le partizioni. Il metodo cookies.set()
memorizza i cookie nella
partizione predefinita.
Per maggiori dettagli sull'impatto generale del partizionamento per le estensioni, consulta Archiviazione e cookie.
Esempi
Puoi trovare un semplice esempio di utilizzo dell'API cookies nella directory examples/api/cookies. Per altri esempi e per assistenza nella visualizzazione il codice sorgente, consulta Esempi.
Tipi
Cookie
Rappresenta le informazioni su un cookie HTTP.
Proprietà
-
dominio
stringa
Il dominio del cookie (ad es. "www.google.com", "example.com").
-
expirationDate
number facoltativo
La data di scadenza del cookie come numero di secondi dall'epoca UNIX. Non fornito per i cookie di sessione.
-
hostOnly
booleano
True se il cookie è solo dell'host (ovvero l'host della richiesta deve corrispondere esattamente al dominio del cookie).
-
httpOnly
booleano
True se il cookie è contrassegnato come HttpOnly (ovvero, il cookie non è accessibile agli script lato client).
-
nome
stringa
Il nome del cookie.
-
partitionKey
CookiePartitionKey facoltativo
Chrome 119 e versioni successiveLa chiave di partizione per leggere o modificare i cookie con l'attributo Partizionato.
-
percorso
stringa
Il percorso del cookie.
-
sameSiteChrome 51 e versioni successive
Lo stato same-site del cookie (ovvero se il cookie viene inviato con richieste cross-site).
-
sicuro
booleano
True se il cookie è contrassegnato come sicuro (ovvero il suo ambito è limitato ai canali sicuri, in genere HTTPS).
-
sessione
booleano
Vero se il cookie è un cookie della sessione, a differenza di un cookie persistente con una data di scadenza.
-
storeId
stringa
L'ID dell'archivio cookie contenente questo cookie, come fornito in getAllCookieStores().
-
valore
stringa
Il valore del cookie.
CookieDetails
Dettagli per identificare il cookie.
Proprietà
-
nome
stringa
Il nome del cookie a cui accedere.
-
partitionKey
CookiePartitionKey facoltativo
Chrome 119 e versioni successiveLa chiave di partizione per leggere o modificare i cookie con l'attributo Partizionato.
-
storeId
stringa facoltativo
L'ID del cookie store in cui cercare il cookie. Per impostazione predefinita, verrà utilizzato l'archivio dei cookie del contesto di esecuzione corrente.
-
url
stringa
L'URL a cui è associato il cookie di accesso. Questo parametro può essere un URL completo, nel qual caso tutti i dati che seguono il percorso dell'URL (ad es. la stringa di query) vengono semplicemente ignorati. Se le autorizzazioni dell'host per questo URL non sono specificate nel file manifest, la chiamata API non andrà a buon fine.
CookiePartitionKey
Rappresenta la chiave di partizione di un cookie partizionato.
Proprietà
-
hasCrossSiteAncestor
booleano facoltativo
Chrome 130 e versioni successiveIndica se il cookie è stato impostato in un contesto cross-cross-site. Ciò impedisce a un sito di primo livello incorporato in un contesto cross-site di accedere ai cookie impostati dal sito di primo livello in un contesto dello stesso sito.
-
topLevelSite
stringa facoltativo
Il sito di primo livello in cui è disponibile il cookie partizionato.
CookieStore
Rappresenta un archivio cookie nel browser. Una finestra di modalità di navigazione in incognito, ad esempio, utilizza un archivio di cookie separato da una finestra di navigazione non in incognito.
Proprietà
-
id
stringa
L'identificatore univoco dell'archivio cookie.
-
tabIds
numero[]
Identificatori di tutte le schede del browser che condividono questo archivio cookie.
OnChangedCause
Il motivo alla base della modifica del cookie. Se un cookie è stato inserito o rimosso tramite una chiamata esplicita a "chrome.cookies.remove", "cause" sarà "explicit". Se un cookie è stato rimosso automaticamente a causa della scadenza, "cause" sarà "expired". Se un cookie è stato rimosso perché è stato sovrascritto con una data di scadenza già scaduta, il valore "cause" sarà impostato su "expired_overwrite". Se un cookie è stato rimosso automaticamente a causa della raccolta dei rifiuti, "cause" sarà "evicted". Se un cookie è stato rimosso automaticamente a causa di un "insieme" lo ha sovrascritto, "causa" sarà "sovrascrittura". Pianifica la tua risposta di conseguenza.
Enum
"expired"
SameSiteStatus
Lo stato "SameSite" di un cookie (https://tools.ietf.org/html/draft-west-first-party-cookies). "no_restriction" corrisponde a un cookie impostato su "SameSite=None", "lax" a "SameSite=Lax" e "strict" a "SameSite=Strict". 'non specificato' corrisponde a un insieme di cookie senza l'attributo SameSite.
Enum
"lax"
"strict"
"unspecified"
Metodi
get()
chrome.cookies.get(
details: CookieDetails,
callback?: function,
)
Recupera le informazioni su un singolo cookie. Se per l'URL specificato esiste più di un cookie con lo stesso nome, verrà restituito quello con il percorso più lungo. Per i cookie con la stessa lunghezza di percorso, verrà restituito il cookie con la prima ora di creazione.
Parametri
Resi
-
Promesso<Cookie | non definito>
Chrome 88 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
getAll()
chrome.cookies.getAll(
details: object,
callback?: function,
)
Recupera tutti i cookie da un singolo cookie store che corrispondono alle informazioni fornite. I cookie restituiti verranno ordinati, partendo da quelli con il percorso più lungo. Se più cookie hanno la stessa lunghezza del percorso, verranno visualizzati per primi quelli con l'ora di creazione più antica. Questo metodo recupera i cookie solo per i domini per i quali l'estensione dispone delle autorizzazioni di host.
Parametri
-
dettagli
oggetto
Informazioni per filtrare i cookie recuperati.
-
dominio
stringa facoltativa
Limita i cookie recuperati a quelli i cui domini corrispondono o sono sottodomini di questo.
-
nome
stringa facoltativo
Filtra i cookie per nome.
-
partitionKey
CookiePartitionKey facoltativo
Chrome 119 e versioni successiveLa chiave di partizione per leggere o modificare i cookie con l'attributo Partizionato.
-
percorso
stringa facoltativo
Limita i cookie recuperati a quelli il cui percorso corrisponde esattamente a questa stringa.
-
sicuro
booleano facoltativo
Filtra i cookie in base alla relativa proprietà sicura.
-
sessione
booleano facoltativo
Esclude i cookie di sessione e quelli permanenti.
-
storeId
stringa facoltativa
L'archivio dei cookie da cui recuperare i cookie. Se omesso, verrà utilizzato il cookie store del contesto di esecuzione corrente.
-
url
stringa facoltativo
Limita i cookie recuperati a quelli che corrispondono all'URL specificato.
-
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(cookies: Cookie[]) => void
-
cookie
Cookie[]
Tutti i cookie esistenti non scaduti che corrispondono alle informazioni sui cookie specificate.
-
Resi
-
Promise<Cookie[]>
Chrome 88 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
getAllCookieStores()
chrome.cookies.getAllCookieStores(
callback?: function,
)
Elenca tutti gli archivi di cookie esistenti.
Parametri
-
callback
funzione facoltativa
Il parametro
callback
ha il seguente aspetto:(cookieStores: CookieStore[]) => void
-
cookieStores
Tutti gli archivi di cookie esistenti.
-
Resi
-
Promise<CookieStore[]>
Chrome 88 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
remove()
chrome.cookies.remove(
details: CookieDetails,
callback?: function,
)
Elimina un cookie per nome.
Parametri
-
dettagli
-
callback
function facoltativa
Il parametro
callback
ha il seguente aspetto:(details?: object) => void
-
dettagli
oggetto facoltativo
Contiene i dettagli sul cookie che è stato rimosso. Se la rimozione non è riuscita per qualsiasi motivo, il valore sarà "null" e verrà impostato
runtime.lastError
.-
nome
stringa
Il nome del cookie rimosso.
-
partitionKey
CookiePartitionKey facoltativo
Chrome 119 e versioni successiveLa chiave di partizione per leggere o modificare i cookie con l'attributo Partizionato.
-
storeId
stringa
L'ID dell'archivio cookie da cui è stato rimosso il cookie.
-
url
stringa
L'URL associato al cookie che è stato rimosso.
-
-
Resi
-
Prometti<object | non definito>
Chrome 88 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
set()
chrome.cookies.set(
details: object,
callback?: function,
)
Imposta un cookie con i dati dei cookie specificati. possono sovrascrivere i cookie equivalenti, se presenti.
Parametri
-
dettagli
oggetto
Dettagli sul cookie impostato.
-
dominio
stringa facoltativa
Il dominio del cookie. Se omesso, il cookie diventa un cookie solo dell'host.
-
expirationDate
number facoltativo
La data di scadenza del cookie come numero di secondi dall'epoca UNIX. Se omesso, il cookie diventa un cookie di sessione.
-
httpOnly
booleano facoltativo
Indica se il cookie deve essere contrassegnato come HttpOnly. Il valore predefinito è false.
-
nome
stringa facoltativo
Il nome del cookie. Vuota per impostazione predefinita se omessa.
-
partitionKey
CookiePartitionKey facoltativo
Chrome 119 e versioni successiveLa chiave di partizione per leggere o modificare i cookie con l'attributo Partizionato.
-
percorso
stringa facoltativo
Il percorso del cookie. Il valore predefinito è la parte del percorso del parametro URL.
-
sameSite
SameSiteStatus facoltativo
Chrome 51 e versioni successiveLo stato dello stesso sito del cookie. Il valore predefinito è "unspecified", ovvero, se omesso, il cookie viene impostato senza specificare un attributo SameSite.
-
sicuro
booleano facoltativo
Se il cookie deve essere contrassegnato come sicuro. Il valore predefinito è false.
-
storeId
stringa facoltativa
L'ID del datastore in cui impostare il cookie. Per impostazione predefinita, il cookie viene impostato nell'archivio cookie del contesto di esecuzione corrente.
-
url
stringa
L'URI della richiesta da associare all'impostazione del cookie. Questo valore può influire sui valori predefiniti di dominio e percorso del cookie creato. Se le autorizzazioni host per questo URL non sono specificate nel file manifest, la chiamata all'API non andrà a buon fine.
-
valore
stringa facoltativa
Il valore del cookie. Vuoto per impostazione predefinita se omesso.
-
-
callback
function facoltativa
Il parametro
callback
ha il seguente aspetto:(cookie?: Cookie) => void
-
biscotto
Cookie facoltativo
Contiene i dettagli sul cookie che è stato impostato. Se l'impostazione non è andata a buon fine per qualsiasi motivo, il valore sarà "null" e verrà impostato
runtime.lastError
.
-
Resi
-
Promesso<Cookie | non definito>
Chrome 88 e versioni successiveLe promesse sono supportate solo per Manifest V3 e versioni successive, mentre le altre piattaforme devono utilizzare i callback.
Eventi
onChanged
chrome.cookies.onChanged.addListener(
callback: function,
)
Viene attivato quando un cookie viene impostato o rimosso. Come caso speciale, tieni presente che l'aggiornamento delle proprietà di un cookie viene implementato come procedura in due fasi: il cookie da aggiornare viene prima rimosso completamente, generando una notifica con "cause" di "overwrite". In seguito, viene scritto un nuovo cookie con i valori aggiornati, generando una seconda notifica con "cause" "esplicita".
Parametri
-
callback
funzione
Il parametro
callback
ha il seguente aspetto:(changeInfo: object) => void
-
changeInfo
oggetto
-
causa
Il motivo alla base della modifica del cookie.
-
biscotto
Informazioni sul cookie che è stato impostato o rimosso.
-
rimosso
booleano
True se un cookie è stato rimosso.
-
-