Permet aux extensions d'obtenir et de définir des cookies, et d'être averti quand ils changent.

Pour utiliser cette API, vous devez inclure l'API permission "cookies" dans votre fichier  manifest.json, ainsi que les permissions d'hôte  pour les sites dont vous devez accéder aux cookies. Voir les permissions cookies.

Permissions

Pour utiliser cette API, un module complémentaire doit spécifier la  permission d'API "cookies" dans son manifest, ainsi que les permissions host pour tous les sites pour lesquels il souhaite accéder aux cookies. L'add-on peut lire ou écrire des cookies qui pourraient être lus ou écrits  par une URL correspondant aux permissions de l'hôte. Par exemple :

http://*.example.com/

Un module complémentaire avec cette autorisation d'hôte peut :

  • Lire un cookie non sécurisé pour www.example.com, avec n'importe quel chemin.
  • Écrire un cookie ou non sécurisé pour www.example.com, avec n'importe quel chemin.

Il ne peut pas :

  • Lire un cookie  sécurisé pour www.example.com.
http://www.example.com/

Un module complémentaire avec cette permission d'hôte peut :

  • Lire un cookie non sécurisé pour www.example.com, avec n'importe quel chemin.
  • Lire un cookie non sécurisé pour .example.com, avec n'importe quel chemin.
  • Écrire un cookie sécurisé ou non sécurisé pour  www.example.com avec n'importe quel chemin.
  • Écrire un cookie sécurisé ou non sécurisé pour  .example.com avec n'importe quel chemin.

Il ne peut pas :

  • Lire ou écrire un cookie pour foo.example.com.
  • Lire ou écrire un cookie pour foo.www.example.com.
*://*.example.com/

Un module complémentaire avec çà permission d'hôtes n add-on with this host permission may:

  • Read or write a secure or non-secure cookie for www.example.com with any path.

Isolement de la première partie

Les cookies tiers sont des cookies qui sont définis par un site Web autre que celui sur lequel vous êtes actuellement. Par exemple :

  1. Vous visitez bbc.com. Il contient une annonce de tracker.com qui définit un cookie associé au domaine "tracker.com".
  2. Vous visitez cnn.com. Il contient également une annonce de  tracker.com qui définit un cookie associé au domaine "tracker.com".
  3. Finalement, les deux cookies peuvent être envoyés à tracker.com. qui peut alors comprendre que le même utilisateur a visité les deux sites.

Lorsque l'isolement de la première partie est activé, les cookies sont en outre qualifiés par le domaine de la page d'origine visitée par l'utilisateur (essentiellement, le domaine montré à l'utilisateur dans la barre d'URL, également appelé "première partie du domaine"). Cela signifie qu'un tracker ne peut pas corréler son cookie de bbc.com avec son cookie de cnn.com, de sorte que le tracker ne peut pas suivre un seul utilisateur sur les deux sites.

L'isolement de la première partie peut être activé directement par l'utilisateur en ajustant la configuration du navigateur et peut être défini par des extensions à l'aide du paramètre firstPartyIsolate de l'API de privacy Notez que l'isolation de première partie est activée par défaut dans le Tor Browser.

Dans l'API cookies, le domaine de première partie est représenté à l'aide de l'attribut firstPartyDomain. Tous les cookies configurés pendant l'isolement de la première partie ont cet attribut défini sur le domaine de la page d'origine. Dans l'exemple ci-dessus, ce serait "bbc.com" pour un cookie et "cnn.com" pour l'autre. Tous les cookies définis par les sites Web alors que l'isolation de première partie est désactivée auront cette propriété définie sur une chaîne vide.

Le cookies.get(), cookies.getAll(), cookies.set() et cookies.remove() Les API acceptent toutes une option firstPartyDomain.

Lorsque l'isolation de première partie est activée, vous devez fournir cette option ou les appels de l'API échoueront. Pour get(), set(), et remove()vous devez passer une valeur de chaîne de caractères.

Pour getAll(),  vous pouvez aussi passer null ici, et ceci obtiendra tous les cookies,
qu'ils aient ou non une valeur non vide pour firstPartyDomain.

Lorsque l'isolation de la première partie est désactivée, le paramètre firstPartyDomain est optionnel et par défaut est une chaîne vide. Une chaîne non vide peut être utilisée pour récupérer ou modifier les cookies d'isolation de première partie. De même, passer  null comme firstPartyDomain pour getAll() retournera tous les cookies.

Types

cookies.Cookie
Représente les informations sur un cookie HTTP.
cookies.CookieStore
Représente un cookie store dans le navigateur.
cookies.OnChangedCause
Représente la raison pour laquelle un cookie a été modifié.***
cookies.SameSiteStatus
Représente le même statut du cookie sur le site.

Méthodes

cookies.get()
Récupère les informations sur un cookie unique.
cookies.getAll()
Récupère tous les cookies correspondant à un ensemble de filtres données.
cookies.set()
Définit un cookie avec les données d'un cookie donné ; peut remplacer les cookies équivalents s'ils existent.
cookies.remove()
Supprime un cookie par son nom.
cookies.getAllCookieStores()
Liste tous les cookies stores existants.

Gestionnaire d'événements

cookies.onChanged
Détails quand un cookie est défini ou supprimé.

Compatibilité du navigateur

Update compatibility data on GitHub
OrdinateurMobile
ChromeEdgeFirefoxOperaFirefox pour Android
CookieChrome Support complet OuiEdge Support complet 14Firefox Support complet 45Opera Support complet OuiFirefox Android Support complet 48
CookieStoreChrome Support complet OuiEdge Support complet 14Firefox Support complet 45Opera Support complet OuiFirefox Android Support complet 48
OnChangedCauseChrome Support complet OuiEdge Aucun support NonFirefox Support complet 45Opera Support complet OuiFirefox Android Support complet 48
getChrome Support complet OuiEdge Support complet 14Firefox Support complet 45
Notes
Support complet 45
Notes
Notes Provides access to cookies from private browsing mode and container tabs since version 52.
Opera Support complet OuiFirefox Android Support complet 48
getAllChrome Support complet OuiEdge Support complet 14
Notes
Support complet 14
Notes
Notes If no URL is provided, cookies are retrieved only for URLs in currently opened tabs. In Chrome, this gets all cookies on a user's machine.
Firefox Support complet 45
Notes
Support complet 45
Notes
Notes Before version 52, the 'tabIds' list was empty and only cookies from the default cookie store were returned. From version 52 onwards, this has been fixed and the result includes cookies from private browsing mode and container tabs.
Opera Support complet OuiFirefox Android Support complet 48
getAllCookieStoresChrome Support complet OuiEdge Support complet 14
Notes
Support complet 14
Notes
Notes Always returns the same default cookie store with ID 0. All cookies belong to this store.
Firefox Support complet 45
Notes
Support complet 45
Notes
Notes Before version 52, only the default cookie store was visible. From version 52 onwards, the cookie stores for private browsing mode and container tabs are also readable.
Opera Support complet OuiFirefox Android Support complet 48
onChangedChrome Support complet OuiEdge Aucun support NonFirefox Support complet 45Opera Support complet OuiFirefox Android Support complet 48
removeChrome Support complet OuiEdge Support complet 14Firefox Support complet 45
Notes
Support complet 45
Notes
Notes Before version 56, this function did not remove cookies from private browsing mode. From version 56 onwards this is fixed.
Opera Support complet OuiFirefox Android Support complet 48
Notes
Support complet 48
Notes
Notes Before version 56, this function did not remove cookies from private browsing mode. From version 56 onwards this is fixed.
setChrome Support complet OuiEdge Support complet 14Firefox Support complet 45
Notes
Support complet 45
Notes
Notes Before version 56, this function did not modify cookies in private browsing mode. From version 56 onwards this is fixed.
Opera Support complet OuiFirefox Android Support complet 48
Notes
Support complet 48
Notes
Notes Before version 56, this function did not modify cookies in private browsing mode. From version 56 onwards this is fixed.

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Voir les notes d'implémentation.
Voir les notes d'implémentation.

Example extensions

Remerciements :

Cette API est basée sur l'API Chromium chrome.cookies. Cette documentation est dérivée de cookies.json dans le code Chromium.

Étiquettes et contributeurs liés au document

Contributeurs à cette page : hellosct1, pierregillet
Dernière mise à jour par : hellosct1,