Beschreibung
Mit der chrome.cookies API können Sie Cookies abfragen und ändern und sich benachrichtigen lassen, wenn sie sich ändern.
Berechtigungen
cookiesManifest
Wenn Sie die Cookies API verwenden möchten, müssen Sie die Berechtigung „cookies“ in Ihrem Manifest deklarieren, zusammen mit Hostberechtigungen für alle Hosts, auf deren Cookies Sie zugreifen möchten. Beispiel:
{
  "name": "My extension",
  ...
  "host_permissions": [
    "*://*.google.com/"
  ],
  "permissions": [
    "cookies"
  ],
  ...
}
Partitionierung
Mit partitionierten Cookies kann eine Website festlegen, dass bestimmte Cookies anhand des Ursprungs des Frames auf oberster Ebene verschlüsselt werden sollen. Wenn Website A also mithilfe eines iFrames in Website B und Website C eingebettet ist, kann ein partitioniertes Cookie in jeder Website einen anderen Wert haben.
chrome.cookies unterstützt keine Partitionierung. Das bedeutet, dass alle Methoden Cookies aus allen Partitionen lesen und in alle Partitionen schreiben. Mit der Methode cookies.set() werden Cookies in der Standardpartition gespeichert.
Weitere Informationen zu den allgemeinen Auswirkungen der Partitionierung für 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 Hilfe beim Ansehen des Quellcodes finden Sie unter Beispiele.
Typen
Cookie
Stellt Informationen zu einem HTTP-Cookie dar.
Attribute
- 
    DomainString Die Domain des Cookies, z.B. „www.google.com“ oder „beispiel.de“. 
- 
    expirationDatenumber optional Das Ablaufdatum des Cookies als Anzahl der Sekunden seit der UNIX-Epoche. Nicht für Sitzungscookies verfügbar. 
- 
    hostOnlyboolean „True“, wenn das Cookie ein Host-only-Cookie ist. Das bedeutet, dass der Host einer Anfrage genau mit der Domain des Cookies übereinstimmen muss. 
- 
    httpOnlyboolean „True“, wenn das Cookie als „HttpOnly“ markiert ist. Das bedeutet, dass das Cookie für clientseitige Skripts nicht zugänglich ist. 
- 
    nameString Der Name des Cookies. 
- 
    partitionKeyCookiePartitionKey optional Chrome 119 und höherDer Partitionierungsschlüssel zum Lesen oder Ändern von Cookies mit dem Attribut „Partitioned“. 
- 
    PfadString Der Pfad des Cookies. 
- 
    sameSiteChrome 51 und höherDer SameSite-Status des Cookies, d.h. ob das Cookie mit websiteübergreifenden Anfragen gesendet wird. 
- 
    sicherboolean „True“, wenn das Cookie als „Secure“ (sicher) gekennzeichnet ist. Das bedeutet, dass sein Bereich auf sichere Channels beschränkt ist, in der Regel HTTPS. 
- 
    Sitzungboolean „True“, wenn das Cookie ein Sitzungs-Cookie ist und kein dauerhaftes Cookie mit Ablaufdatum. 
- 
    storeIdString Die ID des Cookie-Speichers, der dieses Cookie enthält, wie in getAllCookieStores() angegeben. 
- 
    WertString Der Wert des Cookies. 
CookieDetails
Details zur Identifizierung des Cookies.
Attribute
- 
    nameString Der Name des Cookies, auf den zugegriffen werden soll. 
- 
    partitionKeyCookiePartitionKey optional Chrome 119 und höherDer Partitionierungsschlüssel zum Lesen oder Ändern von Cookies mit dem Attribut „Partitioned“. 
- 
    storeIdString optional Die ID des Cookie-Speichers, in dem nach dem Cookie gesucht werden soll. Standardmäßig wird der Cookie-Speicher des aktuellen Ausführungskontexts verwendet. 
- 
    URLString Die URL, mit der das Cookie für den Zugriff verknüpft ist. Dieses Argument kann eine vollständige URL sein. In diesem Fall werden alle Daten, die auf den URL-Pfad folgen (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
- 
    hasCrossSiteAncestorboolean 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 zugreifen kann, die von der Top-Level-Website in einem SameSite-Kontext gesetzt wurden. 
- 
    topLevelSiteString 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 einen separaten Cookie-Speicher als ein normales Fenster.
Attribute
- 
    idString Die eindeutige Kennung für den Cookie-Speicher. 
- 
    tabIdsnumber[] Kennungen aller Browser-Tabs, die diesen Cookie-Speicher gemeinsam nutzen. 
FrameDetails
Details zur Identifizierung des Frames.
Attribute
- 
    documentIdString optional Die eindeutige Kennung für das Dokument. Wenn die frameId und/oder tabId angegeben werden, werden sie validiert, um mit dem Dokument übereinzustimmen, das anhand der angegebenen Dokument-ID gefunden wurde. 
- 
    frameIdnumber optional Die eindeutige Kennung für den Frame auf dem Tab. 
- 
    tabIdnumber optional Die eindeutige Kennung für den Tab, der den Frame enthält. 
OnChangedCause
Der zugrunde liegende 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“ (Ursache) „expired“ (abgelaufen). 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, ist „cause“ (Ursache) „evicted“ (entfernt). Wenn ein Cookie aufgrund eines „set“-Aufrufs, durch den es überschrieben wurde, automatisch entfernt wurde, ist „cause“ (Ursache) „overwrite“ (Überschreiben). 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 gesetzt wurde.
Enum
"no_restriction" 
 
"lax" 
 
"strict" 
 
"unspecified" 
 
Methoden
get()
chrome.cookies.get(
details: CookieDetails,
callback?: function,
): Promise<Cookie | undefined>
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
Ausgabe
- 
            Promise<Cookie | undefined> Chrome 88 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden. 
getAll()
chrome.cookies.getAll(
details: object,
callback?: function,
): Promise<Cookie[]>
Ruft alle Cookies aus einem einzelnen Cookie-Speicher ab, die den angegebenen Informationen entsprechen. Die zurückgegebenen Cookies werden sortiert, wobei die mit dem längsten Pfad zuerst aufgeführt werden. Wenn mehrere Cookies dieselbe Pfadlänge haben, werden diejenigen mit der frühesten Erstellungszeit zuerst aufgeführt. Mit dieser Methode werden nur Cookies für Domains abgerufen, für die die Erweiterung Hostberechtigungen hat.
Parameter
- 
    DetailsObjekt Informationen zum Filtern der abgerufenen Cookies. - 
    DomainString optional Beschränkt die abgerufenen Cookies auf diejenigen, deren Domains mit dieser übereinstimmen oder Subdomains davon sind. 
- 
    nameString optional Filtert die Cookies nach Name. 
- 
    partitionKeyCookiePartitionKey optional Chrome 119 und höherDer Partitionierungsschlüssel zum Lesen oder Ändern von Cookies mit dem Attribut „Partitioned“. 
- 
    PfadString optional Beschränkt die abgerufenen Cookies auf diejenigen, deren Pfad genau mit diesem String übereinstimmt. 
- 
    sicherboolean optional Filtert die Cookies nach ihrem „Secure“-Attribut. 
- 
    Sitzungboolean optional Filtert Sitzungs- und dauerhafte Cookies heraus. 
- 
    storeIdString optional Der Cookie-Speicher, aus dem Cookies abgerufen werden sollen. Wenn nichts angegeben ist, wird der Cookie-Speicher des aktuellen Ausführungskontexts verwendet. 
- 
    URLString optional Beschränkt die abgerufenen Cookies auf diejenigen, die mit der angegebenen URL übereinstimmen. 
 
- 
    
- 
    callbackFunktion optional Der Parameter callbacksieht so aus:(cookies: Cookie[]) => void - 
    CookiesCookie[] Alle vorhandenen, nicht abgelaufenen Cookies, die mit den angegebenen Cookie-Informationen übereinstimmen. 
 
- 
    
Ausgabe
- 
            Promise<Cookie[]> Chrome 88 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden. 
getAllCookieStores()
chrome.cookies.getAllCookieStores(
callback?: function,
): Promise<CookieStore[]>
Alle vorhandenen Cookie-Speicher auflisten
Parameter
- 
    callbackFunktion optional Der Parameter callbacksieht so aus:(cookieStores: CookieStore[]) => void - 
    cookieStoresAlle vorhandenen Cookie-Speicher. 
 
- 
    
Ausgabe
- 
            Promise<CookieStore[]> Chrome 88 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden. 
getPartitionKey()
chrome.cookies.getPartitionKey(
details: FrameDetails,
callback?: function,
): Promise<object>
Der Partitionierungsschlüssel für den angegebenen Frame.
Parameter
- 
    Details
- 
    callbackFunktion optional Der Parameter callbacksieht so aus:(details: object) => void - 
    DetailsObjekt Enthält Details zum abgerufenen Partitionsschlüssel. - 
    partitionKeyDer Partitionierungsschlüssel zum Lesen oder Ändern von Cookies mit dem Attribut „Partitioned“. 
 
- 
    
 
- 
    
Ausgabe
- 
            Promise<object> Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden. 
remove()
chrome.cookies.remove(
details: CookieDetails,
callback?: function,
): Promise<object | undefined>
Löscht ein Cookie nach Name.
Parameter
- 
    Details
- 
    callbackFunktion optional Der Parameter callbacksieht so aus:(details?: object) => void - 
    Detailsobject optional Enthält Details zum entfernten Cookie. Wenn die Entfernung aus irgendeinem Grund fehlgeschlagen ist, ist dieser Wert „null“ und runtime.lastErrorwird festgelegt.- 
    nameString Der Name des entfernten Cookies. 
- 
    partitionKeyCookiePartitionKey optional Chrome 119 und höherDer Partitionierungsschlüssel zum Lesen oder Ändern von Cookies mit dem Attribut „Partitioned“. 
- 
    storeIdString Die ID des Cookie-Speichers, aus dem das Cookie entfernt wurde. 
- 
    URLString Die URL, die mit dem entfernten Cookie verknüpft ist. 
 
- 
    
 
- 
    
Ausgabe
- 
            Promise<object | undefined> Chrome 88 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden. 
set()
chrome.cookies.set(
details: object,
callback?: function,
): Promise<Cookie | undefined>
Setzt ein Cookie mit den angegebenen Cookie-Daten. Vorhandene entsprechende Cookies werden möglicherweise überschrieben.
Parameter
- 
    DetailsObjekt Details zum gesetzten Cookie. - 
    DomainString optional Die Domain des Cookies. Wird diese Option nicht angegeben, wird das Cookie zu einem Host-only-Cookie. 
- 
    expirationDatenumber optional Das Ablaufdatum des Cookies als Anzahl der Sekunden seit der UNIX-Epoche. Wenn es weggelassen wird, wird das Cookie zu einem Sitzungscookie. 
- 
    httpOnlyboolean optional Gibt an, ob das Cookie als „HttpOnly“ markiert werden soll. Die Standardeinstellung ist "false". 
- 
    nameString optional Der Name des Cookies. Wenn keine Angabe gemacht wird, ist das Feld standardmäßig leer. 
- 
    partitionKeyCookiePartitionKey optional Chrome 119 und höherDer Partitionierungsschlüssel zum Lesen oder Ändern von Cookies mit dem Attribut „Partitioned“. 
- 
    PfadString optional Der Pfad des Cookies. Der Standardwert ist der Pfadteil des URL-Parameters. 
- 
    sameSiteSameSiteStatus optional Chrome 51 und höherDer SameSite-Status des Cookies. Der Standardwert ist „unspecified“. Wenn das Attribut also weggelassen wird, wird das Cookie ohne Angabe eines SameSite-Attributs gesetzt. 
- 
    sicherboolean optional Gibt an, ob das Cookie als „Secure“ gekennzeichnet werden soll. Die Standardeinstellung ist "false". 
- 
    storeIdString 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. 
- 
    URLString Der Anfrage-URI, der mit der Festlegung des Cookies verknüpft werden soll. Dieser Wert kann sich auf die Standardwerte für Domain und Pfad des erstellten Cookies auswirken. Wenn in der Manifestdatei keine Hostberechtigungen für diese URL angegeben sind, schlägt der API-Aufruf fehl. 
- 
    WertString optional Der Wert des Cookies. Wenn keine Angabe gemacht wird, ist das Feld standardmäßig leer. 
 
- 
    
- 
    callbackFunktion optional Der Parameter callbacksieht so aus:(cookie?: Cookie) => void - 
    KeksCookie optional Enthält Details zum gesetzten Cookie. Wenn die Einstellung aus irgendeinem Grund fehlgeschlagen ist, ist dieser Wert „null“ und runtime.lastErrorwird festgelegt.
 
- 
    
Ausgabe
- 
            Promise<Cookie | undefined> Chrome 88 und höherPromises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden. 
Ereignisse
onChanged
chrome.cookies.onChanged.addListener(
callback: function,
)
Wird ausgelöst, wenn ein Cookie gesetzt oder entfernt wird. Als Sonderfall ist zu beachten, dass die Aktualisierung der Eigenschaften eines Cookies in zwei Schritten erfolgt: Das zu aktualisierende Cookie wird zuerst vollständig entfernt, wodurch eine Benachrichtigung mit dem „cause“-Wert „overwrite“ generiert wird. Anschließend wird ein neues Cookie mit den aktualisierten Werten geschrieben, wodurch eine zweite Benachrichtigung mit dem „Grund“ „explizit“ generiert wird.
Parameter
- 
    callbackFunktion Der Parameter callbacksieht so aus:(changeInfo: object) => void - 
    changeInfoObjekt - 
    GrundDer zugrunde liegende Grund für die Änderung des Cookies. 
- 
    KeksInformationen zum Cookie, das gesetzt oder entfernt wurde. 
- 
    entferntboolean Wahr, wenn ein Cookie entfernt wurde. 
 
- 
    
 
-