ब्यौरा
कुकी के बारे में क्वेरी करने और उनमें बदलाव करने के लिए, chrome.cookies API का इस्तेमाल करें. साथ ही, कुकी में बदलाव होने पर सूचना पाने के लिए भी इसका इस्तेमाल करें.
अनुमतियां
cookiesकुकी एपीआई का इस्तेमाल करने के लिए, अपने मेनिफ़ेस्ट में "cookies" अनुमति का एलान करें. साथ ही, उन होस्ट के लिए होस्ट की अनुमतियां दें जिनकी कुकी को आपको ऐक्सेस करना है. उदाहरण के लिए:
{
"name": "My extension",
...
"host_permissions": [
"*://*.google.com/"
],
"permissions": [
"cookies"
],
...
}
पार्टिशन करना
पार्टिशन्ड कुकी की मदद से, कोई साइट यह मार्क कर सकती है कि कुछ कुकी को टॉप-लेवल फ़्रेम के ऑरिजिन के हिसाब से की-वैल्यू पेयर में रखा जाना चाहिए. इसका मतलब है कि अगर साइट A को iframe का इस्तेमाल करके, साइट B और साइट C में एम्बेड किया गया है, तो साइट A की पार्टिशन्ड कुकी के एम्बेड किए गए वर्शन की वैल्यू, साइट B और साइट C पर अलग-अलग हो सकती है.
डिफ़ॉल्ट रूप से, सभी एपीआई तरीके, बिना पार्टिशन वाली कुकी पर काम करते हैं. इस व्यवहार को बदलने के लिए, partitionKey प्रॉपर्टी का इस्तेमाल किया जा सकता है.
एक्सटेंशन के लिए, पार्टिशनिंग के सामान्य असर के बारे में जानने के लिए, स्टोरेज और कुकी देखें.
उदाहरण
कुकी एपीआई का इस्तेमाल करने का एक आसान उदाहरण, examples/api/cookies डायरेक्ट्री में देखा जा सकता है. अन्य उदाहरणों और सोर्स कोड को देखने में मदद पाने के लिए, सैंपल देखें.
टाइप
Cookie
एचटीटीपी कुकी के बारे में जानकारी दिखाता है.
प्रॉपर्टी
-
डोमेन
स्ट्रिंग
कुकी का डोमेन (उदाहरण के लिए, "www.google.com", "example.com").
-
expirationDate
number ज़रूरी नहीं
कुकी की समयसीमा खत्म होने की तारीख, UNIX epoch के बाद से सेकंड की संख्या के तौर पर. सेशन कुकी के लिए उपलब्ध नहीं है.
-
hostOnly
बूलियन
अगर कुकी सिर्फ़ होस्ट कुकी है, तो True (यानी कि अनुरोध का होस्ट, कुकी के डोमेन से पूरी तरह मेल खाना चाहिए).
-
httpOnly
बूलियन
अगर कुकी को HttpOnly के तौर पर मार्क किया गया है, तो True (यानी कि कुकी को क्लाइंट-साइड स्क्रिप्ट से ऐक्सेस नहीं किया जा सकता).
-
नाम
स्ट्रिंग
कुकी का नाम.
-
partitionKey
CookiePartitionKey ज़रूरी नहीं है
Chrome 119 और इसके बाद के वर्शन Chrome 148 के बाद से browser.*पार्टिशन्ड एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टिशन कुंजी.
-
पाथ
स्ट्रिंग
कुकी का पाथ.
-
sameSiteChrome 51 और इसके बाद के वर्शन Chrome 148 के बाद से browser.*
कुकी का सेम-साइट स्टेटस (यानी कि क्या कुकी को किसी दूसरी साइट से किए गए अनुरोधों के साथ भेजा जाता है).
-
सुरक्षित
बूलियन
अगर कुकी को 'सुरक्षित' के तौर पर मार्क किया गया है, तो True (यानी कि इसका दायरा सुरक्षित चैनलों तक सीमित है, आम तौर पर एचटीटीपीएस).
-
सेशन
बूलियन
अगर कुकी, सेशन कुकी है, तो 'सही है' पर सेट करें. यह परसिस्टेंट कुकी से अलग होती है, क्योंकि इसकी समयसीमा खत्म होने की तारीख होती है.
-
storeId
स्ट्रिंग
इस कुकी को सेव करने वाले कुकी स्टोर का आईडी, जैसा कि getAllCookieStores() में दिया गया है.
-
मान
स्ट्रिंग
कुकी की वैल्यू.
CookieDetails
कुकी की पहचान करने के लिए जानकारी.
प्रॉपर्टी
-
नाम
स्ट्रिंग
ऐक्सेस की जाने वाली कुकी का नाम.
-
partitionKey
CookiePartitionKey ज़रूरी नहीं है
Chrome 119 और इसके बाद के वर्शन Chrome 148 के बाद से browser.*पार्टिशन्ड एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टिशन कुंजी.
-
storeId
string ज़रूरी नहीं
कुकी स्टोर का आईडी, जिसमें कुकी को खोजना है. डिफ़ॉल्ट रूप से, मौजूदा एक्ज़ीक्यूशन कॉन्टेक्स्ट के कुकी स्टोर का इस्तेमाल किया जाएगा.
-
url
स्ट्रिंग
वह यूआरएल जिससे ऐक्सेस की जाने वाली कुकी जुड़ी है. यह आर्ग्युमेंट पूरा यूआरएल हो सकता है.ऐसे में, यूआरएल पाथ के बाद मौजूद किसी भी डेटा को अनदेखा कर दिया जाता है. जैसे, क्वेरी स्ट्रिंग. अगर मेनिफ़ेस्ट फ़ाइल में इस यूआरएल के लिए होस्ट की अनुमतियां नहीं दी गई हैं, तो एपीआई कॉल नहीं किया जा सकेगा.
CookiePartitionKey
यह पार्टिशन्ड कुकी के पार्टिशन की कुंजी को दिखाता है.
प्रॉपर्टी
-
hasCrossSiteAncestor
बूलियन ज़रूरी नहीं
Chrome 130+ browser.* Chrome 148 सेइससे पता चलता है कि कुकी को क्रॉस-साइट कॉन्टेक्स्ट में सेट किया गया था या नहीं. इससे, क्रॉस-साइट कॉन्टेक्स्ट में एम्बेड की गई टॉप-लेवल साइट को, सेम-साइट कॉन्टेक्स्ट में टॉप-लेवल साइट की सेट की गई कुकी ऐक्सेस करने से रोका जाता है.
-
topLevelSite
string ज़रूरी नहीं
वह टॉप-लेवल साइट जिसमें पार्टिशन्ड कुकी उपलब्ध है.
CookieStore
यह ब्राउज़र में कुकी स्टोर को दिखाता है. उदाहरण के लिए, गुप्त मोड वाली विंडो, सामान्य विंडो से अलग कुकी स्टोर का इस्तेमाल करती है.
प्रॉपर्टी
-
आईडी
स्ट्रिंग
कुकी स्टोर के लिए यूनीक आइडेंटिफ़ायर.
-
tabIds
number[]
इस कुकी स्टोर को शेयर करने वाले सभी ब्राउज़र टैब के आइडेंटिफ़ायर.
FrameDetails
फ़्रेम की पहचान करने के लिए जानकारी.
प्रॉपर्टी
-
documentId
string ज़रूरी नहीं
दस्तावेज़ के लिए यूनीक आइडेंटिफ़ायर. अगर frameId और/या tabId दिए गए हैं, तो उनकी पुष्टि की जाएगी. इससे यह पक्का किया जाएगा कि वे दिए गए दस्तावेज़ आईडी से मिले दस्तावेज़ से मैच करते हों.
-
frameId
number ज़रूरी नहीं
टैब में मौजूद फ़्रेम के लिए यूनीक आइडेंटिफ़ायर.
-
tabId
number ज़रूरी नहीं
फ़्रेम वाले टैब के लिए यूनीक आइडेंटिफ़ायर.
OnChangedCause
कुकी में हुए बदलाव की मुख्य वजह. अगर "chrome.cookies.remove" को साफ़ तौर पर कॉल करके कुकी डाली गई या हटाई गई, तो "वजह" "साफ़ तौर पर" होगी. अगर समयसीमा खत्म होने की वजह से कुकी अपने-आप हट गई है, तो "वजह" के तौर पर "समयसीमा खत्म हो गई" दिखेगा. अगर किसी कुकी को पहले से ही खत्म हो चुकी तारीख के साथ ओवरराइट करने की वजह से हटाया गया है, तो "cause" को "expired_overwrite" पर सेट किया जाएगा. अगर गार्बेज कलेक्शन की वजह से कुकी अपने-आप हट गई है, तो "cause" की वैल्यू "evicted" होगी. अगर किसी कुकी को ओवरराइट करने वाले "सेट" कॉल की वजह से, उसे अपने-आप हटा दिया गया था, तो "वजह" के तौर पर "ओवरराइट" दिखेगा. इसके हिसाब से जवाब देने की योजना बनाएं.
Enum
"evicted"
"समयसीमा खत्म हो गई है"
"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()
browser.cookies.get(
details: CookieDetails,
): Promise<Cookie | undefined>
किसी एक कुकी के बारे में जानकारी हासिल करता है. अगर दिए गए यूआरएल के लिए एक ही नाम की एक से ज़्यादा कुकी मौजूद हैं, तो सबसे लंबे पाथ वाली कुकी को दिखाया जाएगा. एक जैसी पाथ लेंथ वाली कुकी के लिए, सबसे पहले बनाई गई कुकी को दिखाया जाएगा.
पैरामीटर
-
विवरण
रिटर्न
-
Promise<Cookie | undefined>
Chrome 88+ browser.* Chrome 148 से
getAll()
browser.cookies.getAll(
details: object,
): Promise<Cookie[]>
दी गई जानकारी से मैच होने वाली सभी कुकी को एक ही कुकी स्टोर से वापस लाता है. नतीजे में मिलने वाली कुकी को क्रम से लगाया जाएगा. इसमें सबसे लंबे पाथ वाली कुकी सबसे पहले दिखेंगी. अगर एक से ज़्यादा कुकी के पाथ की लंबाई एक जैसी है, तो सबसे पहले बनाई गई कुकी को पहले दिखाया जाएगा. यह तरीका सिर्फ़ उन डोमेन के लिए कुकी हासिल करता है जिनके लिए एक्सटेंशन के पास होस्ट की अनुमतियां होती हैं.
पैरामीटर
-
विवरण
ऑब्जेक्ट
ऐसी जानकारी जिससे कुकी को फ़िल्टर किया जा सके.
-
डोमेन
string ज़रूरी नहीं
यह फ़िल्टर, वापस लाई गई कुकी को उन कुकी तक सीमित करता है जिनके डोमेन, इस डोमेन से मेल खाते हैं या इसके सबडोमेन हैं.
-
नाम
string ज़रूरी नहीं
कुकी को नाम के हिसाब से फ़िल्टर करता है.
-
partitionKey
CookiePartitionKey ज़रूरी नहीं है
Chrome 119 और इसके बाद के वर्शन Chrome 148 के बाद से browser.*पार्टिशन्ड एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टिशन कुंजी.
-
पाथ
string ज़रूरी नहीं
यह नीति, वापस लाई गई कुकी को उन कुकी तक सीमित करती है जिनका पाथ इस स्ट्रिंग से पूरी तरह मैच करता है.
-
सुरक्षित
बूलियन ज़रूरी नहीं
कुकी को उनकी सुरक्षित प्रॉपर्टी के हिसाब से फ़िल्टर करता है.
-
सेशन
बूलियन ज़रूरी नहीं
सेशन कुकी और परसिस्टेंट कुकी को फ़िल्टर करता है.
-
storeId
string ज़रूरी नहीं
कुकी स्टोर, जिससे कुकी वापस पाई जा सकती हैं. अगर इसे शामिल नहीं किया जाता है, तो मौजूदा एक्ज़ीक्यूशन कॉन्टेक्स्ट के कुकी स्टोर का इस्तेमाल किया जाएगा.
-
url
string ज़रूरी नहीं
यह उन कुकी को सीमित करता है जो दिए गए यूआरएल से मैच करती हैं.
-
रिटर्न
-
Promise<Cookie[]>
Chrome 88+ browser.* Chrome 148 से
getAllCookieStores()
browser.cookies.getAllCookieStores(): Promise<CookieStore[]>
सभी मौजूदा कुकी स्टोर की सूची दिखाता है.
रिटर्न
-
Promise<CookieStore[]>
Chrome 88+ browser.* Chrome 148 से
getPartitionKey()
browser.cookies.getPartitionKey(
details: FrameDetails,
): Promise<object>
बताए गए फ़्रेम के लिए, पार्टिशन की कुंजी.
पैरामीटर
-
विवरण
रिटर्न
-
Promise<object>
remove()
browser.cookies.remove(
details: CookieDetails,
): Promise<object | undefined>
यह अनुमति मिलने पर, किसी कुकी को उसके नाम से मिटाया जा सकता है.
पैरामीटर
-
विवरण
रिटर्न
-
Promise<object | undefined>
Chrome 88+ browser.* Chrome 148 से
set()
browser.cookies.set(
details: object,
): Promise<Cookie | undefined>
यह अनुमति मिलने पर, दिए गए कुकी डेटा के साथ किसी कुकी को सेट किया जा सकता है. अगर पहले से कोई कुकी मौजूद है, तो उसे ओवरराइट किया जा सकता है.
पैरामीटर
-
विवरण
ऑब्जेक्ट
सेट की जा रही कुकी के बारे में जानकारी.
-
डोमेन
string ज़रूरी नहीं
कुकी का डोमेन. अगर इसे शामिल नहीं किया जाता है, तो कुकी सिर्फ़ होस्ट कुकी बन जाती है.
-
expirationDate
number ज़रूरी नहीं
कुकी की समयसीमा खत्म होने की तारीख, UNIX epoch के बाद से सेकंड की संख्या के तौर पर. अगर इसे शामिल नहीं किया जाता है, तो कुकी एक सेशन कुकी बन जाती है.
-
httpOnly
बूलियन ज़रूरी नहीं
कुकी को HttpOnly के तौर पर मार्क किया जाना चाहिए या नहीं. डिफ़ॉल्ट तौर पर, यह 'गलत' पर सेट होती है.
-
नाम
string ज़रूरी नहीं
कुकी का नाम. अगर इसे शामिल नहीं किया जाता है, तो यह डिफ़ॉल्ट रूप से खाली रहता है.
-
partitionKey
CookiePartitionKey ज़रूरी नहीं है
Chrome 119 और इसके बाद के वर्शन Chrome 148 के बाद से browser.*पार्टिशन्ड एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टिशन कुंजी.
-
पाथ
string ज़रूरी नहीं
कुकी का पाथ. यह डिफ़ॉल्ट रूप से, यूआरएल पैरामीटर के पाथ वाले हिस्से पर सेट होता है.
-
sameSite
SameSiteStatus ज़रूरी नहीं
Chrome 51 और इसके बाद के वर्शन Chrome 148 के बाद से browser.*कुकी का सेम-साइट स्टेटस. यह डिफ़ॉल्ट रूप से "unspecified" पर सेट होता है. इसका मतलब है कि अगर इसे शामिल नहीं किया जाता है, तो कुकी को SameSite एट्रिब्यूट की वैल्यू बताए बिना सेट किया जाता है.
-
सुरक्षित
बूलियन ज़रूरी नहीं
कुकी को सुरक्षित के तौर पर मार्क किया जाना चाहिए या नहीं. डिफ़ॉल्ट तौर पर, यह 'गलत' पर सेट होती है.
-
storeId
string ज़रूरी नहीं
कुकी स्टोर का आईडी, जिसमें कुकी सेट करनी है. डिफ़ॉल्ट रूप से, कुकी को मौजूदा एक्ज़ीक्यूशन कॉन्टेक्स्ट के कुकी स्टोर में सेट किया जाता है.
-
url
स्ट्रिंग
कुकी की सेटिंग से जोड़ने के लिए अनुरोध-यूआरआई. इस वैल्यू से, बनाई गई कुकी के डिफ़ॉल्ट डोमेन और पाथ की वैल्यू पर असर पड़ सकता है. अगर मेनिफ़ेस्ट फ़ाइल में इस यूआरएल के लिए होस्ट की अनुमतियां नहीं दी गई हैं, तो एपीआई कॉल नहीं किया जा सकेगा.
-
मान
string ज़रूरी नहीं
कुकी की वैल्यू. अगर इसे शामिल नहीं किया जाता है, तो यह डिफ़ॉल्ट रूप से खाली रहता है.
-
रिटर्न
-
Promise<Cookie | undefined>
Chrome 88+ browser.* Chrome 148 से
इवेंट
onChanged
browser.cookies.onChanged.addListener(
callback: function,
)
यह इवेंट तब ट्रिगर होता है, जब कोई कुकी सेट की जाती है या हटाई जाती है. खास तौर पर, ध्यान दें कि कुकी की प्रॉपर्टी को अपडेट करने की प्रोसेस दो चरणों में पूरी होती है: अपडेट की जाने वाली कुकी को पहले पूरी तरह से हटा दिया जाता है. इससे "cause" के तौर पर "overwrite" वाली सूचना जनरेट होती है. इसके बाद, अपडेट की गई वैल्यू के साथ एक नई कुकी बनाई जाती है. इससे "cause" "explicit" के साथ दूसरी सूचना जनरेट होती है.
पैरामीटर
-
कॉलबैक
फ़ंक्शन
callbackपैरामीटर कुछ ऐसा दिखता है:(changeInfo: object) => void
-
changeInfo
ऑब्जेक्ट
-
कारण
कुकी में हुए बदलाव की मुख्य वजह.
-
कुकी
सेट या हटाई गई कुकी के बारे में जानकारी.
-
निकाला गया
बूलियन
अगर कोई कुकी हटाई गई है, तो वैल्यू 'सही' के तौर पर सेट होगी.
-
-