aboutsummaryrefslogtreecommitdiff
path: root/files/fr/mozilla/add-ons/webextensions/api/cookies/index.html
blob: 41e2ec1268dec2e835bb0ca28e147162ac29ad83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
---
title: cookies
slug: Mozilla/Add-ons/WebExtensions/API/cookies
tags:
  - API
  - Add-ons
  - Cookies
  - Extensions
  - Interface
  - Non-standard
  - Reference
  - WebExtensions
translation_of: Mozilla/Add-ons/WebExtensions/API/cookies
---
<div>{{AddonSidebar}}</div>

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

<p>Pour utiliser cette API, vous devez inclure l'<a href="/fr/Add-ons/WebExtensions/manifest.json/permissions#API_permissions">API permission</a> "cookies" dans votre fichier  <a href="/fr/Add-ons/WebExtensions/manifest.json">manifest.json</a>, ainsi que les <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions#Host_permissions">permissions d'hôte</a>  pour les sites dont vous devez accéder aux cookies. Voir les <a href="/fr/Add-ons/WebExtensions/API/cookies#Permissions">permissions cookies</a>.</p>

<h2 id="Permissions">Permissions</h2>

<p>Pour utiliser cette API, un module complémentaire doit spécifier la  <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions#API_permissions">permission d'API</a> "cookies" dans son manifest, ainsi que les <a href="/fr/Add-ons/WebExtensions/manifest.json/permissions#Host_permissions">permissions host</a> 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 :</p>

<dl>
 <dt><code>http://*.example.com/</code></dt>
 <dd>
 <p>Un module complémentaire avec cette autorisation d'hôte peut :</p>

 <ul>
  <li>Lire un cookie non sécurisé pour <code>www.example.com</code>, avec n'importe quel chemin.</li>
  <li>Écrire un cookie ou non sécurisé pour <code>www.example.com</code>, avec n'importe quel chemin.</li>
 </ul>

 <p>Il ne peut <em>pas</em> :</p>

 <ul>
  <li>Lire un cookie  sécurisé pour <code>www.example.com</code>.</li>
 </ul>
 </dd>
 <dt><code>http://www.example.com/</code></dt>
 <dd>
 <p>Un module complémentaire avec cette permission d'hôte peut :</p>

 <ul>
  <li>Lire un cookie non sécurisé pour <code>www.example.com</code>, avec n'importe quel chemin.</li>
  <li>Lire un cookie non sécurisé pour <code>.example.com</code>, avec n'importe quel chemin.</li>
  <li>Écrire un cookie sécurisé ou non sécurisé pour  <code>www.example.com</code> avec n'importe quel chemin.</li>
  <li>Écrire un cookie sécurisé ou non sécurisé pour  <code>.example.com</code> avec n'importe quel chemin.</li>
 </ul>

 <p>Il ne peut <em>pas</em> :</p>

 <ul>
  <li>Lire ou écrire un cookie pour <code>foo.example.com</code>.</li>
  <li>Lire ou écrire un cookie pour <code>foo.www.example.com</code>.</li>
 </ul>
 </dd>
 <dt><code>*://*.example.com/</code></dt>
 <dd>
 <p>Un module complémentaire avec çà permission d'hôtes n add-on with this host permission may:</p>

 <ul>
  <li>Read or write a secure or non-secure cookie for <code>www.example.com</code> with any path.</li>
 </ul>
 </dd>
</dl>

<h2 id="Isolement_de_la_première_partie">Isolement de la première partie</h2>

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

<ol>
 <li>Vous visitez <a href="http://bbc.com">bbc.com</a>. Il contient une annonce de <a href="http://tracker.com">tracker.com</a> qui définit un cookie associé au domaine "<a href="http://tracker.com">tracker.com</a>".</li>
 <li>Vous visitez <a href="http://cnn.com">cnn.com</a>. Il contient également une annonce de  <a href="http://tracker.com">tracker.com</a> qui définit un cookie associé au domaine "<a href="http://tracker.com">tracker.com</a>".</li>
 <li>Finalement, les deux cookies peuvent être envoyés à <a href="http://tracker.com">tracker.com</a>. qui peut alors comprendre que le même utilisateur a visité les deux sites.</li>
</ol>

<p>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 <a href="http://bbc.com">bbc.com</a> avec son cookie de <a href="http://cnn.com">cnn.com</a>, de sorte que le tracker ne peut pas suivre un seul utilisateur sur les deux sites.</p>

<p>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 <code><a href="/en-US/Add-ons/WebExtensions/API/privacy/websites#Properties">firstPartyIsolate</a></code> de l'API de <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/privacy">privacy</a></code> Notez que l'isolation de première partie est activée par défaut dans le <a href="https://www.torproject.org/">Tor Browser</a>.</p>

<p>Dans l'API <code>cookies</code>, le domaine de première partie est représenté à l'aide de l'attribut <code>firstPartyDomain</code>. 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 "<a href="http://bbc.com">bbc.com</a>" pour un cookie et "<a href="http://cnn.com">cnn.com</a>" 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.<br>
 <br>
 Le {{WebExtAPIRef("cookies.get()")}}, {{WebExtAPIRef("cookies.getAll()")}}, {{WebExtAPIRef("cookies.set()")}} et {{WebExtAPIRef("cookies.remove()")}} Les API acceptent toutes une option <code>firstPartyDomain</code>.</p>

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

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

<p>Lorsque l'isolation de la première partie est désactivée, le paramètre <code>firstPartyDomain</code> 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  <code>null</code> comme <code>firstPartyDomain</code> pour <code>getAll()</code> retournera tous les cookies.</p>

<h2 id="Types">Types</h2>

<dl>
 <dt>{{WebExtAPIRef("cookies.Cookie")}}</dt>
 <dd>Représente les informations sur un cookie HTTP.</dd>
 <dt>{{WebExtAPIRef("cookies.CookieStore")}}</dt>
 <dd>Représente un cookie store dans le navigateur.</dd>
 <dt>{{WebExtAPIRef("cookies.OnChangedCause")}}</dt>
 <dd>Représente la raison pour laquelle un cookie a été modifié.***</dd>
 <dt>{{WebExtAPIRef("cookies.SameSiteStatus")}}</dt>
 <dd>Représente le même statut du cookie sur le site.</dd>
</dl>

<h2 id="Méthodes">Méthodes</h2>

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

<h2 id="Gestionnaire_dévénements">Gestionnaire d'événements</h2>

<dl>
 <dt>{{WebExtAPIRef("cookies.onChanged")}}</dt>
 <dd>Détails quand un cookie est défini ou supprimé.</dd>
</dl>

<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2>

<p>{{Compat("webextensions.api.cookies")}}</p>

<p>{{WebExtExamples("h2")}}</p>

<div class="note"><strong>Remerciements :</strong>

<p>Cette API est basée sur l'API Chromium <a href="https://developer.chrome.com/extensions/cookies"><code>chrome.cookies</code></a>. Cette documentation est dérivée de <a href="https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/cookies.json"><code>cookies.json</code></a> dans le code Chromium.</p>
</div>

<div class="hidden">
<pre>// Copyright 2015 The Chromium Authors. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
//    * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//    * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
//    * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
</pre>
</div>