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
|
---
title: cookies
slug: Mozilla/Add-ons/WebExtensions/API/cookies
translation_of: Mozilla/Add-ons/WebExtensions/API/cookies
---
<div>{{AddonSidebar}}</div>
<p>Habilita extensões a obter e atribuir cookies, e ser notificado quando eles mudam.</p>
<p>Para usar esta API, você precisa incluir a <a href="/en-US/Add-ons/WebExtensions/manifest.json/permissions#API_permissions">API permission</a> "cookies" em seu arquivo <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json">manifest.json</a>, bem como a <a href="/en-US/Add-ons/WebExtensions/manifest.json/permissions#Host_permissions">host permissions</a> para os sites cujos cookies você precisa acessar. Veja <a href="/en-US/Add-ons/WebExtensions/API/cookies#Permissions">cookie Permissions</a>.</p>
<h2 id="Permissões">Permissões</h2>
<p>Para usar esta API, uma extensão especificar a "cookies" <a href="/en-US/Add-ons/WebExtensions/manifest.json/permissions#API_permissions">API permission</a> em seu arquivo manifest, junto com a <a href="/en-US/Add-ons/WebExtensions/manifest.json/permissions#Host_permissions">host permissions</a> para qualquer site que deseja acessar os cookies. O add-on pode ler ou escrever qualquer cookie no qual poderia ser lido ou escrito pela URL correspondente nas permissões de host, por exemplo:</p>
<dl>
<dt><code>http://*.example.com/</code></dt>
<dd>
<p>Uma extensão com esta permissão de host pode:</p>
<ul>
<li>Ler um cookie inseguro para <code>www.example.com</code>, com qualquer caminho.</li>
<li>Escrever um cookie seguro ou inseguro para <code>www.example.com</code>, com qualquer caminho.</li>
</ul>
<p><em>não </em>pode:</p>
<ul>
<li>Ler um cookie seguro de <code>www.example.com</code>.</li>
</ul>
</dd>
<dt><code>http://www.example.com/</code></dt>
<dd>
<p>Uma extensão com esta permissão de host pode:</p>
<ul>
<li>Ler um cookie não seguro para <code>www.example.com</code>, com qualquer caminho.</li>
<li>Ler um cookie não seguro para <code>.example.com</code>, com qualquer caminho.</li>
<li>Escrever um cookie seguro ou não seguro para <code>www.example.com</code> com qualquer caminho.</li>
<li>Escrever um cookie seguro ou não seguro para <code>.example.com</code> com qualquer caminho.</li>
</ul>
<p><em>não </em>pode:</p>
<ul>
<li>Ler ou escrever um cookie para <code>foo.example.com</code>.</li>
<li>Ler ou escrever um cookie para <code>foo.www.example.com</code>.</li>
</ul>
</dd>
<dt><code>*://*.example.com/</code></dt>
<dd>
<p>Uma extensão com esta permissão de host pode:</p>
<ul>
<li>Ler ou escrever um cookie seguro ou inseguro para <code>www.example.com</code> com qualquer caminho.</li>
</ul>
</dd>
</dl>
<h2 id="Isolamento_de_primera_parte">Isolamento de primera parte</h2>
<p>Cookies de terceiros são aquleles enviados por sites em que você está num dado momento, por exemplo:</p>
<ol>
<li>Você acessa <a href="http://bbc.com">bbc.com</a>. Ele contém uma publicidade do <a href="http://tracker.com">tracker.com</a> que atribui um cookie associado com o domínio "<a href="http://tracker.com">tracker.com</a>".</li>
<li>Você acessa <a href="http://cnn.com">cnn.com</a>. Ele também contém uma publicidade do <a href="http://tracker.com">tracker.com</a> que atribui um cookie associado ao domínio "<a href="http://tracker.com">tracker.com</a>".</li>
<li>Eventualmente ambos os cookies podem ser enviados para <a href="http://tracker.com">tracker.com</a>. Quem então pode descobrir que o mesmo usuário visitou ambos os sites.</li>
</ol>
<p>Quando um isolamento de primeira parte está ativo, cookies são ainda qualificados pelo domínio da página original visitada pelo usuário (essencialmente, o domínio exibe o usuário na barra da URL, também conhecido como "domínio de primeira parte). Isto significa que não é possivel para um rastreador correlacionar o cookie da <a href="http://bbc.com">bbc.com</a> com o cookie da <a href="http://cnn.com">cnn.com</a>, então o rastreador não pode monitorar um simples usuários através de ambos os sites.</p>
<p>Isolamento de primera parte pode ser habilitado diretamente pelo usuário ajustando a configuração do navegador , e pode ser atribuia do extensões usando a configuração <code><a href="/en-US/Add-ons/WebExtensions/API/privacy/websites#Properties">firstPartyIsolate</a></code> atribuida a API <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/privacy">privacy</a></code>. Observe que este isolamento de primeira parte está habilitado por padrão no navegador <a href="https://www.torproject.org/">Tor</a>.</p>
<p>Na API <code>cookies</code>, o domínio de primeira parte é representado usando o atributo <code>firstPartyDomain</code>. Todos os cookies atribuidos enquanto o isolamento de primeira parte está habilitado terá este atributo atribuito para o domínio da página original. No exemplo acima, deveria ser "<a href="http://bbc.com">bbc.com</a>" para um cookie e "<a href="http://cnn.com">cnn.com</a>" para outro. Todos os cookies atribuidos pelos websites enquanto o isolamento de primeira parte estiver desabilitado terão sua propriedade atribuida a uma string vazia.<br>
<br>
As APIs {{WebExtAPIRef("cookies.get()")}}, {{WebExtAPIRef("cookies.getAll()")}}, {{WebExtAPIRef("cookies.set()")}} and {{WebExtAPIRef("cookies.remove()")}} aceitam a opção <code>firstPartyDomain</code>.<br>
<br>
Quando o isolamento de primeira parte está habilitado, você deve informar esta opção ou a chamada da API irá falhar e retornar uma promise rejeitada. For <code>get()</code>, <code>set()</code>, and <code>remove()</code> you must pass a string value. Para um <code>getAll()</code>, você pode passar <code>null</code>, e irá obter todos os cookies que possuem ou não um valor não vazio para o <code>firstPartyDomain</code>.<br>
<br>
Quando o isolamento de primeira parte está desabilitado, o parâmetro <code>firstPartyDomain</code> é opcional por padrão é uma string vazia. Uma string não vazia pode ser utilizada para recuperar ou podificar cookies de isolamento de primeira parte. Da mesma forma, passando <code>null</code> como <code>firstPartyDomain</code> para o <code>getAll()</code> retornará todos os cookies.</p>
<h2 id="Tipos">Tipos</h2>
<dl>
<dt>{{WebExtAPIRef("cookies.Cookie")}}</dt>
<dd>Representa a informação sobre um cookie HTTP.</dd>
<dt>{{WebExtAPIRef("cookies.CookieStore")}}</dt>
<dd>Representa um cookie armazenado no navegador.</dd>
<dt>{{WebExtAPIRef("cookies.OnChangedCause")}}</dt>
<dd>Representa o motivo da mudança de um cookie.</dd>
</dl>
<h2 id="Métodos">Métodos</h2>
<dl>
<dt>{{WebExtAPIRef("cookies.get()")}}</dt>
<dd>Recupera informações sobre um único cookie.</dd>
<dt>{{WebExtAPIRef("cookies.getAll()")}}</dt>
<dd>Recupera todos os cookies com o padrão de um conjunto de filtros fornecido.</dd>
<dt>{{WebExtAPIRef("cookies.set()")}}</dt>
<dd>Atribui um cookie com um dado fornecido; pode sobrescrever cookies equivalentes caso existam.</dd>
<dt>{{WebExtAPIRef("cookies.remove()")}}</dt>
<dd>Remove um cookie pelo nome.</dd>
<dt>{{WebExtAPIRef("cookies.getAllCookieStores()")}}</dt>
<dd>Lista todos os cookies armazenados.</dd>
</dl>
<h2 id="Manipulador_de_eventos">Manipulador de eventos</h2>
<dl>
<dt>{{WebExtAPIRef("cookies.onChanged")}}</dt>
<dd>Disparado quando um cookie é criado ou removido.</dd>
</dl>
<dl>
<dd>
<ul>
</ul>
</dd>
</dl>
<h2 id="Compatibilidade_de_navegadores">Compatibilidade de navegadores</h2>
<p>{{Compat("webextensions.api.cookies")}}</p>
<p>{{WebExtExamples("h2")}}</p>
<div class="note"><strong>Agradecimentos</strong>
<p>Esta API é baseada na API <a href="https://developer.chrome.com/extensions/cookies"><code>chrome.cookies</code></a> do Chromium. Esta documentação é derivada do <a href="https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/cookies.json"><code>cookies.json</code></a> no código do 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>
|