Description
Utilisez l'API chrome.cookies pour interroger et modifier les cookies, et pour être averti lorsqu'ils changent.
Autorisations
cookiesPour 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
- 
    domainechaîne Domaine du cookie (par exemple, "www.google.com", "example.com"). 
- 
    expirationDatenumber facultatif Date d'expiration du cookie, exprimée en nombre de secondes depuis l'époque UNIX. Non fourni pour les cookies de session. 
- 
    hostOnlyboolé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). 
- 
    httpOnlybooléen "True" si le cookie est marqué comme HttpOnly (c'est-à-dire que le cookie est inaccessible aux scripts côté client). 
- 
    nomchaîne Nom du cookie. 
- 
    partitionKeyCookiePartitionKey facultatif Chrome 119 et versions ultérieuresClé de partition pour lire ou modifier les cookies avec l'attribut "Partitioned". 
- 
    chemin d'accèschaî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). 
- 
    sessionbooléen "True" si le cookie est un cookie de session, par opposition à un cookie persistant avec une date d'expiration. 
- 
    storeIdchaîne ID du magasin de cookies contenant ce cookie, tel que fourni dans getAllCookieStores(). 
- 
    valeurchaîne Valeur du cookie. 
CookieDetails
Informations permettant d'identifier le cookie.
Propriétés
- 
    nomchaîne Nom du cookie auquel accéder. 
- 
    partitionKeyCookiePartitionKey facultatif Chrome 119 et versions ultérieuresClé de partition pour lire ou modifier les cookies avec l'attribut "Partitioned". 
- 
    storeIdchaî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é. 
- 
    urlchaî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
- 
    hasCrossSiteAncestorboolé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. 
- 
    topLevelSitechaî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
- 
    idchaîne Identifiant unique du cookie store. 
- 
    tabIdsnumber[] Identifiants de tous les onglets de navigateur qui partagent ce magasin de cookies. 
FrameDetails
Informations permettant d'identifier le frame.
Propriétés
- 
    documentIdchaî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. 
- 
    frameIdnumber facultatif Identifiant unique du frame dans l'onglet. 
- 
    tabIdnumber 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étailsobjet Informations permettant de filtrer les cookies récupérés. - 
    domainechaîne facultative Limite les cookies récupérés à ceux dont les domaines correspondent à celui-ci ou sont des sous-domaines. 
- 
    nomchaîne facultative Filtre les cookies par nom. 
- 
    partitionKeyCookiePartitionKey facultatif Chrome 119 et versions ultérieuresClé de partition pour lire ou modifier les cookies avec l'attribut "Partitioned". 
- 
    chemin d'accèschaî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". 
- 
    sessionbooléen facultatif Filtre les cookies de session par rapport aux cookies persistants. 
- 
    storeIdchaî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é. 
- 
    urlchaî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étailsobjet Informations sur le cookie défini. - 
    domainechaîne facultative Domaine du cookie. Si elle est omise, le cookie devient un cookie réservé à l'hôte. 
- 
    expirationDatenumber 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. 
- 
    httpOnlybooléen facultatif Indique si le cookie doit être marqué comme HttpOnly. Valeur par défaut : "false". 
- 
    nomchaîne facultative Nom du cookie. Si elle est omise, elle est vide par défaut. 
- 
    partitionKeyCookiePartitionKey facultatif Chrome 119 et versions ultérieuresClé de partition pour lire ou modifier les cookies avec l'attribut "Partitioned". 
- 
    chemin d'accèschaî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. 
- 
    sameSiteSameSiteStatus 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". 
- 
    storeIdchaî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. 
- 
    urlchaî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. 
- 
    valeurchaî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
- 
    callbackfonction Le paramètre callbackse présente comme suit :(changeInfo: object) => void - 
    changeInfoobjet - 
    causeRaison sous-jacente de la modification du cookie. 
- 
    biscuitInformations sur le cookie qui a été défini ou supprimé. 
- 
    supprimébooléen "True" si un cookie a été supprimé. 
 
- 
    
 
-