Description
Utilisez l'API chrome.cookies
pour interroger et modifier les cookies, et pour être averti lorsqu'ils changent.
Autorisations
cookies
Pour utiliser l'API Cookies, déclarez l'autorisation "cookies"
dans votre fichier manifeste, ainsi que les autorisations d'hôte pour tous les hôtes dont vous souhaitez accéder aux cookies. Exemple :
{
"name": "My extension",
...
"host_permissions": [
"*://*.google.com/"
],
"permissions": [
"cookies"
],
...
}
Partitionnement
Les cookies partitionnés permettent à un site d'indiquer que certains cookies doivent être associés à l'origine du frame de premier niveau. Cela signifie que, par exemple, si le site A est intégré à l'aide d'un iFrame dans les sites B et C, les versions intégrées d'un cookie partitionné provenant de A peuvent avoir des valeurs différentes sur B et C.
Par défaut, toutes les méthodes d'API fonctionnent sur des cookies non partitionnés. La propriété partitionKey
peut être utilisée pour remplacer ce comportement.
Pour en savoir plus sur l'impact général du partitionnement pour les extensions, consultez Stockage et cookies.
Exemples
Vous trouverez un exemple simple d'utilisation de l'API Cookies dans le répertoire examples/api/cookies. Pour obtenir d'autres exemples et de l'aide pour afficher le code source, consultez Exemples.
Types
Cookie
Représente des informations sur un cookie HTTP.
Propriétés
-
domaine
chaîne
Domaine du cookie (par exemple, "www.google.com", "example.com").
-
expirationDate
number facultatif
Date d'expiration du cookie, exprimée en nombre de secondes depuis l'époque UNIX. Non fourni pour les cookies de session.
-
hostOnly
booléen
"True" si le cookie est un cookie réservé à l'hôte (c'est-à-dire que l'hôte d'une requête doit correspondre exactement au domaine du cookie).
-
httpOnly
booléen
"True" si le cookie est marqué comme HttpOnly (c'est-à-dire que le cookie est inaccessible aux scripts côté client).
-
nom
chaîne
Nom du cookie.
-
partitionKey
CookiePartitionKey facultatif
Chrome 119 et versions ultérieuresClé de partition pour lire ou modifier les cookies avec l'attribut "Partitioned".
-
chemin d'accès
chaîne
Chemin d'accès au cookie.
-
sameSiteChrome 51 et versions ultérieures
État SameSite du cookie (c'est-à-dire si le cookie est envoyé avec des requêtes intersites).
-
sécurisé
booléen
"True" si le cookie est marqué comme sécurisé (c'est-à-dire que sa portée est limitée aux canaux sécurisés, généralement HTTPS).
-
session
booléen
"True" si le cookie est un cookie de session, par opposition à un cookie persistant avec une date d'expiration.
-
storeId
chaîne
ID du magasin de cookies contenant ce cookie, tel que fourni dans getAllCookieStores().
-
valeur
chaîne
Valeur du cookie.
CookieDetails
Informations permettant d'identifier le cookie.
Propriétés
-
nom
chaîne
Nom du cookie auquel accéder.
-
partitionKey
CookiePartitionKey facultatif
Chrome 119 et versions ultérieuresClé de partition pour lire ou modifier les cookies avec l'attribut "Partitioned".
-
storeId
chaîne facultative
ID du magasin de cookies dans lequel rechercher le cookie. Par défaut, le cookie store du contexte d'exécution actuel sera utilisé.
-
url
chaîne
URL à laquelle le cookie à accéder est associé. Cet argument peut être une URL complète. Dans ce cas, toutes les données suivant le chemin d'URL (par exemple, la chaîne de requête) sont simplement ignorées. Si les autorisations d'hôte pour cette URL ne sont pas spécifiées dans le fichier manifeste, l'appel d'API échouera.
CookiePartitionKey
Représente la clé de partition d'un cookie partitionné.
Propriétés
-
hasCrossSiteAncestor
booléen facultatif
Chrome 130 et versions ultérieuresIndique si le cookie a été défini dans un contexte multisite. Cela empêche un site de premier niveau intégré dans un contexte multisite d'accéder aux cookies définis par le site de premier niveau dans un contexte SameSite.
-
topLevelSite
chaîne facultative
Site de premier niveau dans lequel le cookie partitionné est disponible.
CookieStore
Représente un magasin de cookies dans le navigateur. Par exemple, une fenêtre en mode navigation privée utilise un magasin de cookies distinct d'une fenêtre non privée.
Propriétés
-
id
chaîne
Identifiant unique du cookie store.
-
tabIds
number[]
Identifiants de tous les onglets de navigateur qui partagent ce magasin de cookies.
FrameDetails
Informations permettant d'identifier le frame.
Propriétés
-
documentId
chaîne facultative
Identifiant unique du document. Si les frameId et/ou tabId sont fournis, ils seront validés pour correspondre au document trouvé par l'ID de document fourni.
-
frameId
number facultatif
Identifiant unique du frame dans l'onglet.
-
tabId
number facultatif
Identifiant unique de l'onglet contenant le frame.
OnChangedCause
Raison sous-jacente de la modification du cookie. Si un cookie a été inséré ou supprimé via un appel explicite à "chrome.cookies.remove", "cause" sera défini sur "explicit". Si un cookie a été automatiquement supprimé en raison de son expiration, la "cause" sera "expired" (expiré). Si un cookie a été supprimé parce qu'il a été remplacé par un cookie dont la date d'expiration est déjà passée, la "cause" sera définie sur "expired_overwrite". Si un cookie a été supprimé automatiquement en raison du garbage collection, la "cause" sera "evicted". Si un cookie a été supprimé automatiquement en raison d'un appel "set" qui l'a écrasé, la "cause" sera "overwrite". Planifiez votre réponse en conséquence.
Énumération
"evicted"
"expired"
"explicit"
"expired_overwrite"
"overwrite"
SameSiteStatus
État "SameSite" d'un cookie (https://tools.ietf.org/html/draft-west-first-party-cookies). 'no_restriction' correspond à un cookie défini sur 'SameSite=None', 'lax' à 'SameSite=Lax' et 'strict' à 'SameSite=Strict'. "Non spécifié" correspond à un cookie défini sans l'attribut SameSite.
Énumération
"no_restriction"
"lax"
"strict"
"unspecified"
Méthodes
get()
chrome.cookies.get(
details: CookieDetails,
): Promise<Cookie | undefined>
Récupère des informations sur un seul cookie. Si plusieurs cookies portant le même nom existent pour l'URL donnée, celui dont le chemin d'accès est le plus long sera renvoyé. Pour les cookies ayant la même longueur de chemin d'accès, celui ayant la date de création la plus ancienne sera renvoyé.
Paramètres
-
détails
Renvoie
-
Promise<Cookie | undefined>
Chrome 88 et versions ultérieures
getAll()
chrome.cookies.getAll(
details: object,
): Promise<Cookie[]>
Récupère tous les cookies d'un même magasin de cookies qui correspondent aux informations données. Les cookies renvoyés seront triés, ceux avec le chemin le plus long étant affichés en premier. Si plusieurs cookies ont la même longueur de chemin, ceux dont la date de création est la plus ancienne seront affichés en premier. Cette méthode ne récupère les cookies que pour les domaines pour lesquels l'extension dispose d'autorisations d'hôte.
Paramètres
-
détails
objet
Informations permettant de filtrer les cookies récupérés.
-
domaine
chaîne facultative
Limite les cookies récupérés à ceux dont les domaines correspondent à celui-ci ou sont des sous-domaines.
-
nom
chaîne facultative
Filtre les cookies par nom.
-
partitionKey
CookiePartitionKey facultatif
Chrome 119 et versions ultérieuresClé de partition pour lire ou modifier les cookies avec l'attribut "Partitioned".
-
chemin d'accès
chaîne facultative
Limite les cookies récupérés à ceux dont le chemin correspond exactement à cette chaîne.
-
sécurisé
booléen facultatif
Filtre les cookies en fonction de leur propriété "Secure".
-
session
booléen facultatif
Filtre les cookies de session par rapport aux cookies persistants.
-
storeId
chaîne facultative
Magasin de cookies à partir duquel récupérer les cookies. Si elle est omise, le cookie store du contexte d'exécution actuel sera utilisé.
-
url
chaîne facultative
Limite les cookies récupérés à ceux qui correspondent à l'URL indiquée.
-
Renvoie
-
Promise<Cookie[]>
Chrome 88 et versions ultérieures
getAllCookieStores()
chrome.cookies.getAllCookieStores(): Promise<CookieStore[]>
Répertorie tous les magasins de cookies existants.
Renvoie
-
Promise<CookieStore[]>
Chrome 88 et versions ultérieures
getPartitionKey()
chrome.cookies.getPartitionKey(
details: FrameDetails,
): Promise<object>
Clé de partition pour le frame indiqué.
Paramètres
-
détails
Renvoie
-
Promise<object>
remove()
chrome.cookies.remove(
details: CookieDetails,
): Promise<object | undefined>
Supprime un cookie par son nom.
Paramètres
-
détails
Renvoie
-
Promise<object | undefined>
Chrome 88 et versions ultérieures
set()
chrome.cookies.set(
details: object,
): Promise<Cookie | undefined>
Définit un cookie avec les données de cookie fournies. Peut écraser les cookies équivalents s'ils existent.
Paramètres
-
détails
objet
Informations sur le cookie défini.
-
domaine
chaîne facultative
Domaine du cookie. Si elle est omise, le cookie devient un cookie réservé à l'hôte.
-
expirationDate
number facultatif
Date d'expiration du cookie, exprimée en nombre de secondes depuis l'époque UNIX. Si elle est omise, le cookie devient un cookie de session.
-
httpOnly
booléen facultatif
Indique si le cookie doit être marqué comme HttpOnly. Valeur par défaut : "false".
-
nom
chaîne facultative
Nom du cookie. Si elle est omise, elle est vide par défaut.
-
partitionKey
CookiePartitionKey facultatif
Chrome 119 et versions ultérieuresClé de partition pour lire ou modifier les cookies avec l'attribut "Partitioned".
-
chemin d'accès
chaîne facultative
Chemin d'accès au cookie. La valeur par défaut correspond à la partie chemin d'accès du paramètre d'URL.
-
sameSite
SameSiteStatus facultatif
Chrome 51 et versions ultérieuresÉtat SameSite du cookie. La valeur par défaut est "unspecified" (non spécifié). Autrement dit, si l'attribut est omis, le cookie est défini sans spécifier d'attribut SameSite.
-
sécurisé
booléen facultatif
Indique si le cookie doit être marqué comme sécurisé. Valeur par défaut : "false".
-
storeId
chaîne facultative
ID du magasin de cookies dans lequel définir le cookie. Par défaut, le cookie est défini dans le magasin de cookies du contexte d'exécution actuel.
-
url
chaîne
URI de la requête à associer à la définition du cookie. Cette valeur peut affecter les valeurs par défaut du domaine et du chemin d'accès du cookie créé. Si les autorisations d'hôte pour cette URL ne sont pas spécifiées dans le fichier manifeste, l'appel d'API échouera.
-
valeur
chaîne facultative
Valeur du cookie. Si elle est omise, elle est vide par défaut.
-
Renvoie
-
Promise<Cookie | undefined>
Chrome 88 et versions ultérieures
Événements
onChanged
chrome.cookies.onChanged.addListener(
callback: function,
)
Déclenché lorsqu'un cookie est défini ou supprimé. Dans un cas particulier, notez que la mise à jour des propriétés d'un cookie est implémentée en deux étapes : le cookie à mettre à jour est d'abord entièrement supprimé, ce qui génère une notification avec la cause "overwrite" (écrasement). Ensuite, un nouveau cookie est écrit avec les valeurs mises à jour, ce qui génère une deuxième notification avec la "cause" "explicit".
Paramètres
-
callback
fonction
Le paramètre
callback
se présente comme suit :(changeInfo: object) => void
-
changeInfo
objet
-
cause
Raison sous-jacente de la modification du cookie.
-
biscuit
Informations sur le cookie qui a été défini ou supprimé.
-
supprimé
booléen
"True" si un cookie a été supprimé.
-
-