ब्यौरा
कुकी में बदलाव करने और उनसे जुड़ी क्वेरी करने के लिए, chrome.cookies API का इस्तेमाल करें. साथ ही, कुकी में बदलाव होने पर सूचना पाएं.
अनुमतियां
cookiesमेनिफ़ेस्ट
Cookies API का इस्तेमाल करने के लिए, आपको अपने मेनिफ़ेस्ट में "cookies" अनुमति का एलान करना होगा. साथ ही, आपको उन होस्ट के लिए होस्ट करने की अनुमतियां देनी होंगी जिनकी कुकी आपको ऐक्सेस करनी हैं. उदाहरण के लिए:
{
  "name": "My extension",
  ...
  "host_permissions": [
    "*://*.google.com/"
  ],
  "permissions": [
    "cookies"
  ],
  ...
}
पार्टिशन करना
अलग-अलग सेक्शन में बांटी गई कुकी की मदद से, कोई साइट यह मार्क कर सकती है कि कुछ कुकी को टॉप लेवल फ़्रेम के ऑरिजिन के हिसाब से कुंजीबद्ध किया जाना चाहिए. इसका मतलब है कि अगर साइट A को साइट B और साइट C में iframe का इस्तेमाल करके एम्बेड किया जाता है, तो पार्टीशन की गई कुकी की वैल्यू हर साइट में अलग-अलग हो सकती है.
chrome.cookies में पार्टीशनिंग की सुविधा काम नहीं करती. इसका मतलब है कि सभी तरीके, सभी पार्टीशन से कुकी पढ़ते और लिखते हैं. cookies.set() तरीके से, कुकी को डिफ़ॉल्ट पार्टीशन में सेव किया जाता है.
एक्सटेंशन के लिए स्टोरेज के बंटवारे के सामान्य असर के बारे में जानने के लिए, स्टोरेज और कुकी देखें.
उदाहरण
examples/api/cookies डायरेक्ट्री में, Cookies API के इस्तेमाल का एक आसान उदाहरण देखा जा सकता है. अन्य उदाहरणों और सोर्स कोड देखने में मदद पाने के लिए, सैंपल देखें.
टाइप
Cookie
यह एचटीटीपी कुकी के बारे में जानकारी दिखाता है.
प्रॉपर्टी
- 
    डोमेनस्ट्रिंग कुकी का डोमेन (जैसे, "www.google.com", "example.com"). 
- 
    expirationDatenumber ज़रूरी नहीं कुकी के खत्म होने की तारीख. यह तारीख, यूनिक्स युग की शुरुआत से लेकर अब तक के कुल सेकंड की संख्या के तौर पर दिखाई जाती है. यह सेशन कुकी के लिए उपलब्ध नहीं है. 
- 
    hostOnlyबूलियन अगर कुकी सिर्फ़ होस्ट के लिए है, तो यह वैल्यू सही होती है. इसका मतलब है कि अनुरोध करने वाले होस्ट का डोमेन, कुकी के डोमेन से पूरी तरह मेल खाना चाहिए. 
- 
    httpOnlyबूलियन अगर कुकी को HttpOnly के तौर पर मार्क किया गया है, तो यह वैल्यू सही होती है. इसका मतलब है कि कुकी को क्लाइंट-साइड स्क्रिप्ट ऐक्सेस नहीं कर सकती हैं. 
- 
    नामस्ट्रिंग कुकी का नाम. 
- 
    partitionKeyCookiePartitionKey ज़रूरी नहीं है Chrome 119+Partitioned एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की. 
- 
    पाथस्ट्रिंग कुकी का पाथ. 
- 
    sameSiteChrome 51 या इसके बाद के वर्शनकुकी का SameSite स्टेटस. इसका मतलब है कि कुकी को किसी दूसरी साइट से किए गए अनुरोधों के साथ भेजा जाता है या नहीं. 
- 
    सुरक्षितबूलियन अगर कुकी को Secure के तौर पर मार्क किया गया है, तो यह वैल्यू True होती है. इसका मतलब है कि इसका दायरा सुरक्षित चैनलों (आम तौर पर, एचटीटीपीएस) तक सीमित है. 
- 
    सेशनबूलियन अगर कुकी, सेशन कुकी है, तो यह वैल्यू सही होती है. सेशन कुकी, खत्म होने की तारीख वाली परसिस्टेंट कुकी से अलग होती है. 
- 
    storeIdस्ट्रिंग इस कुकी को सेव करने वाले कुकी स्टोर का आईडी. यह आईडी, getAllCookieStores() में दिया गया है. 
- 
    मानस्ट्रिंग कुकी की वैल्यू. 
CookieDetails
कुकी की पहचान करने के लिए जानकारी.
प्रॉपर्टी
- 
    नामस्ट्रिंग ऐक्सेस की जाने वाली कुकी का नाम. 
- 
    partitionKeyCookiePartitionKey ज़रूरी नहीं है Chrome 119+Partitioned एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की. 
- 
    storeIdstring ज़रूरी नहीं है कुकी स्टोर का आईडी, जिसमें कुकी को ढूंढना है. डिफ़ॉल्ट रूप से, मौजूदा एक्ज़ीक्यूशन कॉन्टेक्स्ट के कुकी स्टोर का इस्तेमाल किया जाएगा. 
- 
    urlस्ट्रिंग वह यूआरएल जिससे ऐक्सेस की जाने वाली कुकी जुड़ी है. यह आर्ग्युमेंट पूरा यूआरएल हो सकता है. ऐसे में, यूआरएल पाथ के बाद मौजूद किसी भी डेटा (जैसे, क्वेरी स्ट्रिंग) को अनदेखा कर दिया जाता है. अगर मेनिफ़ेस्ट फ़ाइल में इस यूआरएल के लिए होस्ट अनुमतियां नहीं दी गई हैं, तो एपीआई कॉल नहीं किया जा सकेगा. 
CookiePartitionKey
यह पार्टिशन्ड कुकी की पार्टिशन कुंजी को दिखाता है.
प्रॉपर्टी
- 
    hasCrossSiteAncestorबूलियन ज़रूरी नहीं है Chrome 130 या इसके बाद के वर्शनइससे पता चलता है कि कुकी को एक से ज़्यादा साइट के कॉन्टेक्स्ट में सेट किया गया था या नहीं. इससे, किसी दूसरी साइट के कॉन्टेक्स्ट में एम्बेड की गई टॉप-लेवल साइट को, एक ही साइट के कॉन्टेक्स्ट में टॉप-लेवल साइट की सेट की गई कुकी को ऐक्सेस करने से रोका जाता है. 
- 
    topLevelSitestring ज़रूरी नहीं है वह टॉप-लेवल साइट जिस पर पार्टिशन्ड कुकी उपलब्ध है. 
CookieStore
यह ब्राउज़र में कुकी स्टोर को दिखाता है. उदाहरण के लिए, गुप्त मोड वाली विंडो, बिना गुप्त मोड वाली विंडो से अलग कुकी स्टोर का इस्तेमाल करती है.
प्रॉपर्टी
- 
    आईडीस्ट्रिंग कुकी स्टोर के लिए यूनीक आइडेंटिफ़ायर. 
- 
    tabIdsnumber[] उन सभी ब्राउज़र टैब के आइडेंटिफ़ायर जो इस कुकी स्टोर को शेयर करते हैं. 
FrameDetails
फ़्रेम की पहचान करने के लिए जानकारी.
प्रॉपर्टी
- 
    documentIdstring ज़रूरी नहीं है दस्तावेज़ के लिए यूनीक आइडेंटिफ़ायर. अगर frameId और/या tabId दिए गए हैं, तो उनकी पुष्टि की जाएगी. इससे यह पता चलेगा कि वे दिए गए दस्तावेज़ आईडी से मिले दस्तावेज़ से मेल खाते हैं या नहीं. 
- 
    frameIdnumber ज़रूरी नहीं टैब में मौजूद फ़्रेम के लिए यूनीक आइडेंटिफ़ायर. 
- 
    tabIdnumber ज़रूरी नहीं फ़्रेम को शामिल करने वाले टैब के लिए यूनीक आइडेंटिफ़ायर. 
OnChangedCause
कुकी में बदलाव होने की वजह. अगर किसी कुकी को "chrome.cookies.remove" को साफ़ तौर पर कॉल करके डाला या हटाया गया था, तो "cause" की वैल्यू "explicit" होगी. अगर कुकी की समयसीमा खत्म होने की वजह से उसे अपने-आप हटा दिया गया था, तो "वजह" के तौर पर "समयसीमा खत्म हो गई" दिखेगा. अगर किसी कुकी को इसलिए हटाया गया है, क्योंकि उसे पहले से खत्म हो चुकी तारीख से ओवरराइट किया गया था, तो "वजह" को "expired_overwrite" पर सेट किया जाएगा. अगर गार्बेज कलेक्शन की वजह से कोई कुकी अपने-आप हटा दी गई थी, तो "वजह" के तौर पर "हटाया गया" दिखेगा. अगर किसी कुकी को "सेट" कॉल की वजह से अपने-आप हटा दिया गया था, तो "वजह" के तौर पर "ओवरराइट करें" दिखेगा. इसके हिसाब से जवाब देने की योजना बनाएं.
Enum
"evicted" 
 
"expired" 
 
"explicit" 
 
"expired_overwrite" 
 
"overwrite" 
 
SameSiteStatus
कुकी की 'SameSite' स्थिति (https://tools.ietf.org/html/draft-west-first-party-cookies). 'no_restriction' का मतलब है कि कुकी को 'SameSite=None' के साथ सेट किया गया है. 'lax' का मतलब है कि कुकी को 'SameSite=Lax' के साथ सेट किया गया है. वहीं, 'strict' का मतलब है कि कुकी को 'SameSite=Strict' के साथ सेट किया गया है. 'unspecified' का मतलब है कि कुकी को SameSite एट्रिब्यूट के बिना सेट किया गया है.
Enum
"no_restriction" 
 
"lax" 
 
"strict" 
 
"unspecified" 
 
तरीके
get()
chrome.cookies.get(
details: CookieDetails,
callback?: function,
): Promise<Cookie | undefined>
यह कुकी, किसी एक कुकी के बारे में जानकारी इकट्ठा करती है. अगर दिए गए यूआरएल के लिए, एक ही नाम की एक से ज़्यादा कुकी मौजूद हैं, तो सबसे लंबे पाथ वाली कुकी को दिखाया जाएगा. अगर एक ही पाथ लेंथ वाली कुकी मौजूद हैं, तो सबसे पहले बनाई गई कुकी को दिखाया जाएगा.
पैरामीटर
रिटर्न
- 
            Promise<Cookie | undefined> Chrome 88 या इसके बाद का वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा. 
getAll()
chrome.cookies.getAll(
details: object,
callback?: function,
): Promise<Cookie[]>
यह कुकी, किसी एक कुकी स्टोर से उन सभी कुकी को वापस लाती है जो दी गई जानकारी से मेल खाती हैं. कुकी को क्रम से लगाया जाएगा. इसमें सबसे लंबे पाथ वाली कुकी सबसे पहले दिखेंगी. अगर कई कुकी के पाथ की लंबाई एक जैसी है, तो सबसे पहले वे कुकी दिखेंगी जिन्हें सबसे पहले बनाया गया था. यह तरीका सिर्फ़ उन डोमेन के लिए कुकी वापस पाता है जिनके लिए एक्सटेंशन के पास होस्ट अनुमतियां हैं.
पैरामीटर
- 
    विवरणऑब्जेक्ट यह जानकारी, वापस लाई जा रही कुकी को फ़िल्टर करने के लिए होती है. - 
    डोमेनstring ज़रूरी नहीं है यह कुकी, सिर्फ़ उन कुकी को वापस पाने की अनुमति देती है जिनके डोमेन, इस कुकी के डोमेन से मेल खाते हैं या इसके सबडोमेन हैं. 
- 
    नामstring ज़रूरी नहीं है यह कुकी, नाम के हिसाब से कुकी को फ़िल्टर करती है. 
- 
    partitionKeyCookiePartitionKey ज़रूरी नहीं है Chrome 119+Partitioned एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की. 
- 
    पाथstring ज़रूरी नहीं है यह कुकी, सिर्फ़ उन कुकी को वापस पाने की अनुमति देती है जिनका पाथ इस स्ट्रिंग से पूरी तरह मेल खाता है. 
- 
    सुरक्षितबूलियन ज़रूरी नहीं है यह कुकी, कुकी को उनकी Secure प्रॉपर्टी के हिसाब से फ़िल्टर करती है. 
- 
    सेशनबूलियन ज़रूरी नहीं है यह कुकी, सेशन कुकी और परसिस्टेंट कुकी को फ़िल्टर करती है. 
- 
    storeIdstring ज़रूरी नहीं है वह कुकी स्टोर जिससे कुकी वापस लानी हैं. अगर इसे शामिल नहीं किया जाता है, तो मौजूदा एक्ज़ीक्यूशन कॉन्टेक्स्ट के कुकी स्टोर का इस्तेमाल किया जाएगा. 
- 
    urlstring ज़रूरी नहीं है यह कुकी, सिर्फ़ उन कुकी को वापस लाती है जो दिए गए यूआरएल से मेल खाती हैं. 
 
- 
    
- 
    कॉलबैकफ़ंक्शन ज़रूरी नहीं callbackपैरामीटर ऐसा दिखता है:(cookies: Cookie[]) => void - 
    कुकी का इस्तेमाल करता हैCookie[] ऐसी सभी मौजूदा कुकी जो अब भी मान्य हैं और दी गई कुकी की जानकारी से मेल खाती हैं. 
 
- 
    
रिटर्न
- 
            Promise<Cookie[]> Chrome 88 या इसके बाद का वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा. 
getAllCookieStores()
chrome.cookies.getAllCookieStores(
callback?: function,
): Promise<CookieStore[]>
यह कुकी, सभी मौजूदा कुकी स्टोर की सूची बनाती है.
पैरामीटर
- 
    कॉलबैकफ़ंक्शन ज़रूरी नहीं callbackपैरामीटर ऐसा दिखता है:(cookieStores: CookieStore[]) => void - 
    cookieStoresसभी मौजूदा कुकी स्टोर. 
 
- 
    
रिटर्न
- 
            Promise<CookieStore[]> Chrome 88 या इसके बाद का वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा. 
getPartitionKey()
chrome.cookies.getPartitionKey(
details: FrameDetails,
callback?: function,
): Promise<object>
दिए गए फ़्रेम के लिए पार्टीशन कुंजी.
पैरामीटर
- 
    विवरण
- 
    कॉलबैकफ़ंक्शन ज़रूरी नहीं callbackपैरामीटर ऐसा दिखता है:(details: object) => void - 
    विवरणऑब्जेक्ट इस कुकी में, वापस लाई गई पार्टीशन कुंजी के बारे में जानकारी होती है. - 
    partitionKeyPartitioned एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की. 
 
- 
    
 
- 
    
रिटर्न
- 
            Promise<object> प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा. 
remove()
chrome.cookies.remove(
details: CookieDetails,
callback?: function,
): Promise<object | undefined>
यह कुकी को नाम के हिसाब से मिटाता है.
पैरामीटर
- 
    विवरण
- 
    कॉलबैकफ़ंक्शन ज़रूरी नहीं callbackपैरामीटर ऐसा दिखता है:(details?: object) => void - 
    विवरणobject ज़रूरी नहीं है इस कुकी में, हटाई गई कुकी के बारे में जानकारी होती है. अगर किसी वजह से वीडियो नहीं हटाया जा सका, तो यह "null" होगा. साथ ही, runtime.lastErrorसेट हो जाएगा.- 
    नामस्ट्रिंग हटा दी गई कुकी का नाम. 
- 
    partitionKeyCookiePartitionKey ज़रूरी नहीं है Chrome 119+Partitioned एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की. 
- 
    storeIdस्ट्रिंग उस कुकी स्टोर का आईडी जिससे कुकी हटाई गई थी. 
- 
    urlस्ट्रिंग हटा दी गई कुकी से जुड़ा यूआरएल. 
 
- 
    
 
- 
    
रिटर्न
- 
            Promise<object | undefined> Chrome 88 या इसके बाद का वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा. 
set()
chrome.cookies.set(
details: object,
callback?: function,
): Promise<Cookie | undefined>
यह कुकी, दिए गए कुकी डेटा के साथ एक कुकी सेट करती है. अगर ऐसी कुकी पहले से मौजूद हैं, तो यह उन्हें ओवरराइट कर सकती है.
पैरामीटर
- 
    विवरणऑब्जेक्ट सेट की जा रही कुकी के बारे में जानकारी. - 
    डोमेनstring ज़रूरी नहीं है कुकी का डोमेन. अगर इसे शामिल नहीं किया जाता है, तो कुकी सिर्फ़ होस्ट के लिए उपलब्ध हो जाती है. 
- 
    expirationDatenumber ज़रूरी नहीं कुकी के खत्म होने की तारीख. यह तारीख, यूनिक्स युग की शुरुआत से लेकर अब तक के कुल सेकंड की संख्या के तौर पर दिखाई जाती है. अगर इसे छोड़ दिया जाता है, तो कुकी, सेशन कुकी बन जाती है. 
- 
    httpOnlyबूलियन ज़रूरी नहीं है कुकी को HttpOnly के तौर पर मार्क किया जाना चाहिए या नहीं. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होती है. 
- 
    नामstring ज़रूरी नहीं है कुकी का नाम. अगर इसे शामिल नहीं किया जाता है, तो डिफ़ॉल्ट रूप से यह खाली होता है. 
- 
    partitionKeyCookiePartitionKey ज़रूरी नहीं है Chrome 119+Partitioned एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की. 
- 
    पाथstring ज़रूरी नहीं है कुकी का पाथ. डिफ़ॉल्ट रूप से, यह यूआरएल पैरामीटर के पाथ वाले हिस्से पर सेट होता है. 
- 
    sameSiteSameSiteStatus optional Chrome 51 या इसके बाद के वर्शनकुकी का सेम-साइट स्टेटस. डिफ़ॉल्ट रूप से इसकी वैल्यू "unspecified" होती है. इसका मतलब है कि अगर इसे शामिल नहीं किया जाता है, तो कुकी को SameSite एट्रिब्यूट की वैल्यू तय किए बिना सेट किया जाता है. 
- 
    सुरक्षितबूलियन ज़रूरी नहीं है कुकी को Secure के तौर पर मार्क किया जाना चाहिए या नहीं. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होती है. 
- 
    storeIdstring ज़रूरी नहीं है कुकी स्टोर का आईडी, जिसमें कुकी सेट करनी है. डिफ़ॉल्ट रूप से, कुकी को मौजूदा एक्ज़ीक्यूशन कॉन्टेक्स्ट के कुकी स्टोर में सेट किया जाता है. 
- 
    urlस्ट्रिंग कुकी की सेटिंग से जुड़ा request-URI. इस वैल्यू से, बनाई गई कुकी के डिफ़ॉल्ट डोमेन और पाथ वैल्यू पर असर पड़ सकता है. अगर मेनिफ़ेस्ट फ़ाइल में इस यूआरएल के लिए होस्ट अनुमतियां नहीं दी गई हैं, तो एपीआई कॉल नहीं किया जा सकेगा. 
- 
    मानstring ज़रूरी नहीं है कुकी की वैल्यू. अगर इसे शामिल नहीं किया जाता है, तो डिफ़ॉल्ट रूप से यह खाली होता है. 
 
- 
    
- 
    कॉलबैकफ़ंक्शन ज़रूरी नहीं callbackपैरामीटर ऐसा दिखता है:(cookie?: Cookie) => void - 
    कुकीकुकी ज़रूरी नहीं है इस कुकी में सेट की गई कुकी के बारे में जानकारी होती है. अगर किसी वजह से सेटिंग नहीं हो पाती है, तो यह "null" पर सेट हो जाएगा. साथ ही, runtime.lastErrorसेट हो जाएगा.
 
- 
    
रिटर्न
- 
            Promise<Cookie | undefined> Chrome 88 या इसके बाद का वर्शनप्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा. 
इवेंट
onChanged
chrome.cookies.onChanged.addListener(
callback: function,
)
यह इवेंट तब ट्रिगर होता है, जब कोई कुकी सेट या हटाई जाती है. खास मामले के तौर पर ध्यान दें कि कुकी की प्रॉपर्टी अपडेट करने की प्रोसेस दो चरणों में पूरी होती है: अपडेट की जाने वाली कुकी को पहले पूरी तरह से हटा दिया जाता है. इससे "overwrite" के "वजह" वाली सूचना जनरेट होती है. इसके बाद, अपडेट की गई वैल्यू के साथ एक नई कुकी लिखी जाती है. इससे "वजह" "साफ़ तौर पर" के साथ दूसरी सूचना जनरेट होती है.
पैरामीटर
- 
    कॉलबैकफ़ंक्शन callbackपैरामीटर ऐसा दिखता है:(changeInfo: object) => void - 
    changeInfoऑब्जेक्ट - 
    कारणकुकी में बदलाव होने की वजह. 
- 
    कुकीसेट की गई या हटाई गई कुकी के बारे में जानकारी. 
- 
    निकाला गयाबूलियन अगर कुकी हटा दी गई है, तो यह वैल्यू True पर सेट होती है. 
 
- 
    
 
-