Deskripsi
Gunakan chrome.cookies API untuk membuat kueri dan mengubah cookie, serta mendapatkan notifikasi saat cookie berubah.
Izin
cookiesManifes
Untuk menggunakan API cookie, Anda harus mendeklarasikan izin "cookie" dalam manifes, beserta izin host untuk host yang cookie-nya ingin Anda akses. Contoh:
{
  "name": "My extension",
  ...
  "host_permissions": [
    "*://*.google.com/"
  ],
  "permissions": [
    "cookies"
  ],
  ...
}
Membuat partisi
Cookie yang dipartisi memungkinkan situs menandai bahwa cookie tertentu harus diberi kunci terhadap origin frame tingkat teratas. Artinya, jika situs A disematkan menggunakan iframe di situs B dan situs C, cookie yang dipartisi dapat memiliki nilai yang berbeda di setiap situs.
chrome.cookies tidak mendukung partisi, yang berarti semua metode membaca dan menulis cookie dari semua partisi. Metode cookies.set() menyimpan cookie di
partisi default.
Untuk mengetahui detail dampak umum partisi untuk ekstensi, lihat Penyimpanan dan Cookie.
Contoh
Anda dapat menemukan contoh sederhana penggunaan API cookie di direktori examples/api/cookies. Untuk contoh lain dan bantuan dalam melihat kode sumber, lihat Contoh.
Jenis
Cookie
Menampilkan informasi tentang cookie HTTP.
Properti
- 
    domainstring Domain cookie (misalnya, "www.google.com", "example.com"). 
- 
    expirationDatenomor opsional Tanggal habis masa berlaku cookie sebagai jumlah detik sejak epoch UNIX. Tidak disediakan untuk cookie sesi. 
- 
    hostOnlyboolean Benar jika cookie adalah cookie khusus host (yaitu host permintaan harus sama persis dengan domain cookie). 
- 
    httpOnlyboolean Benar (True) jika cookie ditandai sebagai HttpOnly (yaitu cookie tidak dapat diakses oleh skrip sisi klien). 
- 
    namastring Nama cookie. 
- 
    partitionKeyCookiePartitionKey opsional Chrome 119+Kunci partisi untuk membaca atau mengubah cookie dengan atribut Partisi. 
- 
    jalurstring Jalur cookie. 
- 
    sameSiteChrome 51+Status same-site cookie (yaitu, apakah cookie dikirim dengan permintaan lintas situs). 
- 
    amanboolean Benar jika cookie ditandai sebagai Aman (yaitu cakupannya terbatas pada saluran aman, biasanya HTTPS). 
- 
    sesiboolean Benar jika cookie adalah cookie sesi, bukan cookie persisten dengan tanggal habis masa berlaku. 
- 
    storeIdstring ID penyimpanan cookie yang berisi cookie ini, sebagaimana diberikan di getAllCookieStores(). 
- 
    nilaistring Nilai cookie. 
CookieDetails
Detail untuk mengidentifikasi cookie.
Properti
- 
    namastring Nama cookie yang akan diakses. 
- 
    partitionKeyCookiePartitionKey opsional Chrome 119+Kunci partisi untuk membaca atau mengubah cookie dengan atribut Partisi. 
- 
    storeIdstring opsional ID penyimpanan cookie tempat mencari cookie. Secara default, penyimpanan cookie konteks eksekusi saat ini akan digunakan. 
- 
    urlstring URL yang terkait dengan cookie yang akan diakses. Argumen ini dapat berupa URL lengkap, sehingga data apa pun yang mengikuti jalur URL (misalnya, string kueri) akan diabaikan. Jika izin host untuk URL ini tidak ditentukan dalam file manifes, panggilan API akan gagal. 
CookiePartitionKey
Menampilkan kunci partisi cookie yang dipartisi.
Properti
- 
    hasCrossSiteAncestorboolean opsional Chrome 130+Menunjukkan apakah cookie disetel dalam konteks lintas situs. Tindakan ini mencegah situs tingkat teratas yang disematkan dalam konteks lintas situs mengakses cookie yang ditetapkan oleh situs tingkat teratas dalam konteks situs yang sama. 
- 
    topLevelSitestring opsional Situs tingkat atas tempat cookie yang dipartisi tersedia. 
CookieStore
Mewakili penyimpanan cookie di browser. Misalnya, jendela mode samaran menggunakan penyimpanan cookie yang terpisah dari jendela non-samaran.
Properti
- 
    idstring ID unik untuk penyimpanan cookie. 
- 
    tabIdsnumber[] ID semua tab browser yang berbagi penyimpanan cookie ini. 
FrameDetails
Detail untuk mengidentifikasi frame.
Properti
- 
    documentIdstring opsional ID unik untuk dokumen. Jika frameId dan/atau tabId diberikan, keduanya akan divalidasi agar cocok dengan dokumen yang ditemukan berdasarkan ID dokumen yang diberikan. 
- 
    frameIdnomor opsional ID unik untuk frame dalam tab. 
- 
    tabIdnomor opsional ID unik untuk tab yang berisi frame. 
OnChangedCause
Alasan mendasar di balik perubahan cookie. Jika cookie disisipkan, atau dihapus melalui panggilan eksplisit ke "chrome.cookies.remove", "cause" akan menjadi "explicit". Jika cookie otomatis dihapus karena masa berlakunya berakhir, "penyebab" akan menjadi "expired". Jika cookie dihapus karena ditimpa dengan tanggal habis masa berlaku yang sudah berakhir, "penyebab" akan disetel ke "expired_overwrite". Jika cookie dihapus secara otomatis karena pengumpulan sampah, "penyebab" akan menjadi "dikeluarkan". Jika cookie otomatis dihapus karena panggilan "set" yang menimpanya, "cause" akan menjadi "overwrite". Rencanakan respons Anda dengan tepat.
Enum
"dikeluarkan" 
 
"expired" 
 
"eksplisit" 
 
"expired_overwrite" 
 
"overwrite" 
 
SameSiteStatus
Status 'SameSite' cookie (https://tools.ietf.org/html/draft-west-first-party-cookies). 'no_restriction' sesuai dengan cookie yang ditetapkan dengan 'SameSite=None', 'lax' sesuai dengan 'SameSite=Lax', dan 'strict' sesuai dengan 'SameSite=Strict'. 'unspecified' sesuai dengan cookie yang ditetapkan tanpa atribut SameSite.
Enum
"no_restriction" 
 
"lax" 
 
"strict" 
 
"unspecified" 
 
Metode
get()
chrome.cookies.get(
details: CookieDetails,
callback?: function,
): Promise<Cookie | undefined>
Mengambil informasi tentang satu cookie. Jika ada lebih dari satu cookie dengan nama yang sama untuk URL tertentu, cookie dengan jalur terpanjang akan ditampilkan. Untuk cookie dengan panjang jalur yang sama, cookie dengan waktu pembuatan paling awal akan ditampilkan.
Parameter
Hasil
- 
            Promise<Cookie | undefined> Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
getAll()
chrome.cookies.getAll(
details: object,
callback?: function,
): Promise<Cookie[]>
Mengambil semua cookie dari satu penyimpanan cookie yang cocok dengan informasi yang diberikan. Cookie yang ditampilkan akan diurutkan, dengan cookie yang memiliki jalur terpanjang terlebih dahulu. Jika beberapa cookie memiliki panjang jalur yang sama, cookie dengan waktu pembuatan paling awal akan ditampilkan terlebih dahulu. Metode ini hanya mengambil cookie untuk domain yang memiliki izin host ekstensi.
Parameter
- 
    detailobjek Informasi untuk memfilter cookie yang diambil. - 
    domainstring opsional Membatasi cookie yang diambil hanya untuk cookie yang domainnya cocok atau merupakan subdomain dari domain ini. 
- 
    namastring opsional Memfilter cookie menurut nama. 
- 
    partitionKeyCookiePartitionKey opsional Chrome 119+Kunci partisi untuk membaca atau mengubah cookie dengan atribut Partisi. 
- 
    jalurstring opsional Membatasi cookie yang diambil ke cookie yang jalur persisnya cocok dengan string ini. 
- 
    amanboolean opsional Memfilter cookie berdasarkan properti Secure-nya. 
- 
    sesiboolean opsional Memfilter cookie sesi vs. cookie persisten. 
- 
    storeIdstring opsional Penyimpanan cookie untuk mengambil cookie. Jika dihilangkan, penyimpanan cookie konteks eksekusi saat ini akan digunakan. 
- 
    urlstring opsional Membatasi cookie yang diambil ke cookie yang cocok dengan URL yang diberikan. 
 
- 
    
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(cookies: Cookie[]) => void - 
    cookieCookie[] Semua cookie yang ada dan belum habis masa berlakunya yang cocok dengan info cookie yang diberikan. 
 
- 
    
Hasil
- 
            Promise<Cookie[]> Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
getAllCookieStores()
chrome.cookies.getAllCookieStores(
callback?: function,
): Promise<CookieStore[]>
Mencantumkan semua penyimpanan cookie yang ada.
Parameter
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(cookieStores: CookieStore[]) => void - 
    cookieStoresSemua penyimpanan cookie yang ada. 
 
- 
    
Hasil
- 
            Promise<CookieStore[]> Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
getPartitionKey()
chrome.cookies.getPartitionKey(
details: FrameDetails,
callback?: function,
): Promise<object>
Kunci partisi untuk frame yang ditunjukkan.
Parameter
- 
    detail
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(details: object) => void - 
    detailobjek Berisi detail tentang kunci partisi yang telah diambil. - 
    partitionKeyKunci partisi untuk membaca atau mengubah cookie dengan atribut Partisi. 
 
- 
    
 
- 
    
Hasil
- 
            Promise<object> Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
remove()
chrome.cookies.remove(
details: CookieDetails,
callback?: function,
): Promise<object | undefined>
Menghapus cookie menurut nama.
Parameter
- 
    detail
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(details?: object) => void - 
    detailobjek opsional Berisi detail tentang cookie yang telah dihapus. Jika penghapusan gagal karena alasan apa pun, nilai ini akan menjadi "null", dan runtime.lastErrorakan disetel.- 
    namastring Nama cookie yang telah dihapus. 
- 
    partitionKeyCookiePartitionKey opsional Chrome 119+Kunci partisi untuk membaca atau mengubah cookie dengan atribut Partisi. 
- 
    storeIdstring ID penyimpanan cookie tempat cookie dihapus. 
- 
    urlstring URL yang terkait dengan cookie yang telah dihapus. 
 
- 
    
 
- 
    
Hasil
- 
            Promise<object | undefined> Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
set()
chrome.cookies.set(
details: object,
callback?: function,
): Promise<Cookie | undefined>
Menetapkan cookie dengan data cookie yang diberikan; dapat menggantikan cookie yang setara jika ada.
Parameter
- 
    detailobjek Detail tentang cookie yang ditetapkan. - 
    domainstring opsional Domain cookie. Jika tidak ada, cookie akan menjadi cookie khusus host. 
- 
    expirationDatenomor opsional Tanggal habis masa berlaku cookie sebagai jumlah detik sejak epoch UNIX. Jika tidak ada, cookie akan menjadi cookie sesi. 
- 
    httpOnlyboolean opsional Apakah cookie harus ditandai sebagai HttpOnly. Nilai defaultnya adalah false (salah). 
- 
    namastring opsional Nama cookie. Kosong secara default jika tidak ada. 
- 
    partitionKeyCookiePartitionKey opsional Chrome 119+Kunci partisi untuk membaca atau mengubah cookie dengan atribut Partisi. 
- 
    jalurstring opsional Jalur cookie. Secara default, nilainya adalah bagian jalur parameter URL. 
- 
    sameSiteSameSiteStatus opsional Chrome 51+Status same-site cookie. Defaultnya adalah "unspecified", yaitu, jika dihilangkan, cookie akan ditetapkan tanpa menentukan atribut SameSite. 
- 
    amanboolean opsional Apakah cookie harus ditandai sebagai Aman. Nilai defaultnya adalah false (salah). 
- 
    storeIdstring opsional ID penyimpanan cookie tempat cookie akan disetel. Secara default, cookie disetel di penyimpanan cookie konteks eksekusi saat ini. 
- 
    urlstring request-URI untuk dikaitkan dengan setelan cookie. Nilai ini dapat memengaruhi nilai jalur dan domain default cookie yang dibuat. Jika izin host untuk URL ini tidak ditentukan dalam file manifes, panggilan API akan gagal. 
- 
    nilaistring opsional Nilai cookie. Kosong secara default jika tidak ada. 
 
- 
    
- 
    callbackfungsi opsional Parameter callbackterlihat seperti:(cookie?: Cookie) => void - 
    kueCookie opsional Berisi detail tentang cookie yang telah ditetapkan. Jika setelan gagal karena alasan apa pun, nilai ini akan menjadi "null", dan runtime.lastErrorakan disetel.
 
- 
    
Hasil
- 
            Promise<Cookie | undefined> Chrome 88+Promise hanya didukung untuk Manifest V3 dan yang lebih baru, platform lain harus menggunakan callback. 
Acara
onChanged
chrome.cookies.onChanged.addListener(
callback: function,
)
Diaktifkan saat cookie ditetapkan atau dihapus. Sebagai kasus khusus, perhatikan bahwa memperbarui properti cookie diimplementasikan sebagai proses dua langkah: cookie yang akan diperbarui dihapus terlebih dahulu sepenuhnya, sehingga menghasilkan notifikasi dengan "penyebab" "overwrite" . Setelah itu, cookie baru ditulis dengan nilai yang diperbarui, sehingga menghasilkan notifikasi kedua dengan "penyebab" "eksplisit".
Parameter
- 
    callbackfungsi Parameter callbackterlihat seperti:(changeInfo: object) => void - 
    changeInfoobjek - 
    causeAlasan mendasar di balik perubahan cookie. 
- 
    kueInformasi tentang cookie yang ditetapkan atau dihapus. 
- 
    dihapusboolean Benar jika cookie dihapus. 
 
- 
    
 
-