Beschreibung
Mit der chrome.cookies
API können Sie Cookies abfragen und ändern sowie benachrichtigt werden, wenn sie sich ändern.
Berechtigungen
cookies
Wenn Sie die Cookies API verwenden möchten, müssen Sie die Berechtigung "cookies"
in Ihrem Manifest zusammen mit den Hostberechtigungen für alle Hosts deklarieren, auf deren Cookies Sie zugreifen möchten. Beispiel:
{
"name": "My extension",
...
"host_permissions": [
"*://*.google.com/"
],
"permissions": [
"cookies"
],
...
}
Partitionierung
Mit partitionierten Cookies kann eine Website angeben, dass bestimmte Cookies mit dem Ursprung des Frames der obersten Ebene abgeglichen werden sollen. Wenn beispielsweise Website A über einen Iframe in Website B und Website C eingebettet ist, können die eingebetteten Versionen eines partitionierten Cookies von A auf B und C unterschiedliche Werte haben.
Standardmäßig werden alle API-Methoden auf nicht partitionierten Cookies ausgeführt. Mit der Property partitionKey
können Sie dieses Verhalten überschreiben.
Weitere Informationen zu den allgemeinen Auswirkungen der Partitionierung auf Erweiterungen finden Sie unter Speicher und Cookies.
Beispiele
Ein einfaches Beispiel für die Verwendung der Cookies API finden Sie im Verzeichnis examples/api/cookies. Weitere Beispiele und Informationen zum Aufrufen des Quellcodes finden Sie unter Beispiele.
Typen
Cookie
Stellt Informationen zu einem HTTP-Cookie dar.
Attribute
-
Domain
String
Die Domain des Cookies (z.B. „www.google.com“ oder „beispiel.de“).
-
expirationDate
number optional
Das Ablaufdatum des Cookies als Anzahl der Sekunden seit der UNIX-Epoche. Nicht für Sitzungscookies verfügbar.
-
hostOnly
boolean
„Wahr“, wenn es sich um ein Host-Cookie handelt (d.h. der Host einer Anfrage muss genau mit der Domain des Cookies übereinstimmen).
-
httpOnly
boolean
„Wahr“, wenn das Cookie als „HttpOnly“ gekennzeichnet ist (d.h., das Cookie ist für clientseitige Scripts nicht zugänglich).
-
name
String
Der Name des Cookies.
-
partitionKey
CookiePartitionKey optional
Chrome 119 und höherDer Partitionsschlüssel zum Lesen oder Ändern von Cookies mit dem Attribut „Partitioniert“.
-
Pfad
String
Der Pfad des Cookies.
-
sameSiteChrome 51 und höher
Der SameSite-Status des Cookies (d.h., ob das Cookie mit websiteübergreifenden Anfragen gesendet wird).
-
sicher
boolean
„Wahr“, wenn das Cookie als „Sicher“ gekennzeichnet ist (d.h. sein Umfang ist auf sichere Kanäle beschränkt, in der Regel HTTPS).
-
Sitzung
boolean
„Wahr“, wenn es sich um ein Sitzungs-Cookie handelt, im Gegensatz zu einem dauerhaften Cookie mit Ablaufdatum.
-
storeId
String
Die ID des Cookie-Speichers, der dieses Cookie enthält, wie in getAllCookieStores() angegeben.
-
Wert
String
Der Wert des Cookies.
CookieDetails
Details zur Identifizierung des Cookies.
Attribute
-
name
String
Der Name des Cookies, auf das zugegriffen werden soll.
-
partitionKey
CookiePartitionKey optional
Chrome 119 und höherDer Partitionsschlüssel zum Lesen oder Ändern von Cookies mit dem Attribut „Partitioniert“.
-
storeId
String optional
Die ID des Cookie-Speichers, in dem nach dem Cookie gesucht werden soll. Standardmäßig wird das Cookie-Verzeichnis des aktuellen Ausführungskontexts verwendet.
-
URL
String
Die URL, mit der das Cookie verknüpft ist, auf das zugegriffen werden soll. Dieses Argument kann eine vollständige URL sein. In diesem Fall werden alle Daten nach dem URL-Pfad (z. B. der Abfragestring) einfach ignoriert. Wenn in der Manifestdatei keine Hostberechtigungen für diese URL angegeben sind, schlägt der API-Aufruf fehl.
CookiePartitionKey
Stellt den Partitionierungsschlüssel eines partitionierten Cookies dar.
Attribute
-
hasCrossSiteAncestor
boolescher Wert optional
Chrome 130 und höherGibt an, ob das Cookie in einem websiteübergreifenden Kontext gesetzt wurde. So wird verhindert, dass eine Top-Level-Website, die in einem websiteübergreifenden Kontext eingebettet ist, auf Cookies zugreift, die von der Top-Level-Website in einem SameSite-Kontext gesetzt wurden.
-
topLevelSite
String optional
Die Top-Level-Website, auf der das partitionierte Cookie verfügbar ist.
CookieStore
Stellt einen Cookie-Speicher im Browser dar. Ein Inkognitofenster verwendet beispielsweise ein separates Cookie-Verzeichnis wie ein normales Fenster.
Attribute
-
id
String
Die eindeutige Kennung für den Cookie-Speicher.
-
tabIds
number[]
IDs aller Browser-Tabs, die dieses Cookie-Anzeigefenster gemeinsam nutzen.
FrameDetails
Details zur Identifizierung des Frames.
Attribute
-
documentId
String optional
Die eindeutige Kennung des Dokuments. Wenn die frameId und/oder tabId angegeben sind, wird geprüft, ob sie mit dem Dokument übereinstimmen, das anhand der angegebenen Dokument-ID gefunden wurde.
-
frameId
number optional
Die eindeutige Kennung für den Frame auf dem Tab.
-
tabId
number optional
Die eindeutige Kennung für den Tab, der den Frame enthält.
OnChangedCause
Der Grund für die Änderung des Cookies. Wenn ein Cookie über einen expliziten Aufruf von „chrome.cookies.remove“ eingefügt oder entfernt wurde, ist „cause“ „explicit“. Wenn ein Cookie aufgrund des Ablaufs automatisch entfernt wurde, ist „cause“ „expired“. Wenn ein Cookie entfernt wurde, weil es mit einem bereits abgelaufenen Ablaufdatum überschrieben wurde, wird „cause“ auf „expired_overwrite“ gesetzt. Wenn ein Cookie aufgrund der Garbage Collection automatisch entfernt wurde, wird „cause“ als „evicted“ angegeben. Wenn ein Cookie aufgrund eines „set“-Aufrufs, durch den es überschrieben wurde, automatisch entfernt wurde, ist „cause“ „overwrite“. Planen Sie Ihre Antwort entsprechend.
Enum
„evicted“
„expired“
„explicit“
"expired_overwrite"
„overwrite“
SameSiteStatus
Der „SameSite“-Status eines Cookies (https://tools.ietf.org/html/draft-west-first-party-cookies). „no_restriction“ entspricht einem Cookie, das mit „SameSite=None“ festgelegt wurde, „lax“ entspricht „SameSite=Lax“ und „strict“ entspricht „SameSite=Strict“. „unspecified“ entspricht einem Cookie, das ohne das SameSite-Attribut festgelegt wurde.
Enum
"no_restriction"
„lax“
„strict“
„unspecified“
Methoden
get()
chrome.cookies.get(
details: CookieDetails,
callback?: function,
)
Ruft Informationen zu einem einzelnen Cookie ab. Wenn für die angegebene URL mehrere Cookies mit demselben Namen vorhanden sind, wird das Cookie mit dem längsten Pfad zurückgegeben. Bei Cookies mit derselben Pfadlänge wird das Cookie mit der frühesten Erstellungszeit zurückgegeben.
Parameter
Gibt Folgendes zurück:
-
Promise<Cookie | undefined>
Chrome 88 und höherVersprechen werden in Manifest V3 und höher unterstützt, aber Callbacks werden aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide für denselben Funktionsaufruf verwenden. Das Versprechen wird mit demselben Typ aufgelöst, der an den Rückruf übergeben wird.
getAll()
chrome.cookies.getAll(
details: object,
callback?: function,
)
Ruft alle Cookies aus einem einzelnen Cookie-Speicher ab, die mit den angegebenen Informationen übereinstimmen. Die zurückgegebenen Cookies werden sortiert, wobei die mit dem längsten Pfad zuerst angezeigt werden. Wenn mehrere Cookies dieselbe Pfadlänge haben, werden die mit der frühesten Erstellungszeit zuerst berücksichtigt. Mit dieser Methode werden nur Cookies für Domains abgerufen, für die die Erweiterung Hostberechtigungen hat.
Parameter
-
Details
Objekt
Informationen zum Filtern der abgerufenen Cookies.
-
Domain
String optional
Die abgerufenen Cookies werden auf diejenigen beschränkt, deren Domains mit dieser übereinstimmen oder Subdomains davon sind.
-
name
String optional
Filtert die Cookies nach Name.
-
partitionKey
CookiePartitionKey optional
Chrome 119 und höherDer Partitionsschlüssel zum Lesen oder Ändern von Cookies mit dem Attribut „Partitioniert“.
-
Pfad
String optional
Die abgerufenen Cookies werden auf diejenigen beschränkt, deren Pfad genau mit diesem String übereinstimmt.
-
sicher
boolescher Wert optional
Filtert die Cookies nach dem Attribut „Secure“.
-
Sitzung
boolescher Wert optional
Sitzungs- und persistente Cookies werden herausgefiltert.
-
storeId
String optional
Der Cookie-Speicher, aus dem Cookies abgerufen werden sollen. Wenn Sie diesen Parameter weglassen, wird der Cookie-Speicher des aktuellen Ausführungskontexts verwendet.
-
URL
String optional
Die abgerufenen Cookies werden auf diejenigen beschränkt, die mit der angegebenen URL übereinstimmen.
-
-
callback
function optional
Der Parameter
callback
sieht so aus:(cookies: Cookie[]) => void
-
Cookies
Cookie[]
Alle vorhandenen, nicht abgelaufenen Cookies, die mit den angegebenen Cookie-Informationen übereinstimmen.
-
Gibt Folgendes zurück:
-
Promise<Cookie[]>
Chrome 88 und höherVersprechen werden in Manifest V3 und höher unterstützt, aber Callbacks werden aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide für denselben Funktionsaufruf verwenden. Das Versprechen wird mit demselben Typ aufgelöst, der an den Rückruf übergeben wird.
getAllCookieStores()
chrome.cookies.getAllCookieStores(
callback?: function,
)
Listet alle vorhandenen Cookie-Speicher auf.
Parameter
-
callback
function optional
Der Parameter
callback
sieht so aus:(cookieStores: CookieStore[]) => void
-
cookieStores
Alle vorhandenen Cookie-Speicher.
-
Gibt Folgendes zurück:
-
Promise<CookieStore[]>
Chrome 88 und höherVersprechen werden in Manifest V3 und höher unterstützt, aber Callbacks werden aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide für denselben Funktionsaufruf verwenden. Das Versprechen wird mit demselben Typ aufgelöst, der an den Rückruf übergeben wird.
getPartitionKey()
chrome.cookies.getPartitionKey(
details: FrameDetails,
callback?: function,
)
Der Partitionsschlüssel für den angegebenen Frame.
Parameter
-
Details
-
callback
function optional
Der Parameter
callback
sieht so aus:(details: object) => void
-
Details
Objekt
Enthält Details zum abgerufenen Partitionsschlüssel.
-
partitionKey
Der Partitionsschlüssel zum Lesen oder Ändern von Cookies mit dem Attribut „Partitioniert“.
-
-
Gibt Folgendes zurück:
-
Promise<object>
Versprechen werden in Manifest V3 und höher unterstützt, aber Callbacks werden aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide für denselben Funktionsaufruf verwenden. Das Versprechen wird mit demselben Typ aufgelöst, der an den Rückruf übergeben wird.
remove()
chrome.cookies.remove(
details: CookieDetails,
callback?: function,
)
Löscht ein Cookie nach Name.
Parameter
-
Details
-
callback
function optional
Der Parameter
callback
sieht so aus:(details?: object) => void
-
Details
object optional
Enthält Details zum entfernten Cookie. Wenn das Entfernen aus irgendeinem Grund fehlgeschlagen ist, wird „null“ zurückgegeben und
runtime.lastError
wird festgelegt.-
name
String
Der Name des entfernten Cookies.
-
partitionKey
CookiePartitionKey optional
Chrome 119 und höherDer Partitionsschlüssel zum Lesen oder Ändern von Cookies mit dem Attribut „Partitioniert“.
-
storeId
String
Die ID des Cookie-Speichers, aus dem das Cookie entfernt wurde.
-
URL
String
Die URL, die mit dem entfernten Cookie verknüpft ist.
-
-
Gibt Folgendes zurück:
-
Promise<object | undefined>
Chrome 88 und höherVersprechen werden in Manifest V3 und höher unterstützt, aber Callbacks werden aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide für denselben Funktionsaufruf verwenden. Das Versprechen wird mit demselben Typ aufgelöst, der an den Rückruf übergeben wird.
set()
chrome.cookies.set(
details: object,
callback?: function,
)
Setzt ein Cookie mit den angegebenen Cookie-Daten. Entspricht dem Überschreiben entsprechender Cookies, falls vorhanden.
Parameter
-
Details
Objekt
Details zum festgelegten Cookie.
-
Domain
String optional
Die Domain des Cookies. Wird das Attribut weggelassen, wird das Cookie zu einem Host-Cookie.
-
expirationDate
number optional
Das Ablaufdatum des Cookies als Anzahl der Sekunden seit der UNIX-Epoche. Wenn Sie das Attribut weglassen, wird das Cookie zu einem Sitzungscookie.
-
httpOnly
boolescher Wert optional
Gibt an, ob das Cookie als „HttpOnly“ markiert werden soll. Die Standardeinstellung ist "false".
-
name
String optional
Der Name des Cookies. Ist dieses Feld leer, ist der Standardwert „0“.
-
partitionKey
CookiePartitionKey optional
Chrome 119 und höherDer Partitionsschlüssel zum Lesen oder Ändern von Cookies mit dem Attribut „Partitioniert“.
-
Pfad
String optional
Der Pfad des Cookies. Standardmäßig ist dies der Pfadteil des URL-Parameters.
-
sameSite
SameSiteStatus optional
Chrome 51 und höherDer SameSite-Status des Cookies. Standardmäßig ist „unspecified“ festgelegt. Wenn das Attribut weggelassen wird, wird das Cookie ohne Angabe eines SameSite-Attributs festgelegt.
-
sicher
boolescher Wert optional
Gibt an, ob das Cookie als „Sicher“ gekennzeichnet werden soll. Die Standardeinstellung ist "false".
-
storeId
String optional
Die ID des Cookie-Speichers, in dem das Cookie festgelegt werden soll. Standardmäßig wird das Cookie im Cookie-Speicher des aktuellen Ausführungskontexts festgelegt.
-
URL
String
Der Anfrage-URI, der mit der Einstellung des Cookies verknüpft werden soll. Dieser Wert kann sich auf die Standarddomain- und Pfadwerte des erstellten Cookies auswirken. Wenn in der Manifestdatei keine Hostberechtigungen für diese URL angegeben sind, schlägt der API-Aufruf fehl.
-
Wert
String optional
Der Wert des Cookies. Ist dieses Feld leer, ist der Standardwert „0“.
-
-
callback
function optional
Der Parameter
callback
sieht so aus:(cookie?: Cookie) => void
-
Keks
Cookie optional
Enthält Details zum festgelegten Cookie. Wenn die Einstellung aus irgendeinem Grund fehlgeschlagen ist, wird „null“ verwendet und
runtime.lastError
wird festgelegt.
-
Gibt Folgendes zurück:
-
Promise<Cookie | undefined>
Chrome 88 und höherVersprechen werden in Manifest V3 und höher unterstützt, aber Callbacks werden aus Gründen der Abwärtskompatibilität bereitgestellt. Sie können nicht beide für denselben Funktionsaufruf verwenden. Das Versprechen wird mit demselben Typ aufgelöst, der an den Rückruf übergeben wird.
Ereignisse
onChanged
chrome.cookies.onChanged.addListener(
callback: function,
)
Wird ausgelöst, wenn ein Cookie gesetzt oder entfernt wird. Hinweis: Das Aktualisieren der Eigenschaften eines Cookies erfolgt in zwei Schritten: Das zu aktualisierende Cookie wird zuerst vollständig entfernt. Dabei wird eine Benachrichtigung mit der Ursache „überschreiben“ generiert. Anschließend wird ein neues Cookie mit den aktualisierten Werten geschrieben, wodurch eine zweite Benachrichtigung mit „cause“ „explicit“ generiert wird.
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:(changeInfo: object) => void
-
changeInfo
Objekt
-
cause
Der Grund für die Änderung des Cookies.
-
Keks
Informationen zum Cookie, das festgelegt oder entfernt wurde.
-
entfernt
boolean
„Wahr“, wenn ein Cookie entfernt wurde.
-
-