chrome.cookies

ब्यौरा

कुकी में बदलाव करने और उनसे जुड़ी क्वेरी करने के लिए, 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 के इस्तेमाल का एक आसान उदाहरण देखा जा सकता है. अन्य उदाहरणों और सोर्स कोड देखने में मदद पाने के लिए, सैंपल देखें.

टाइप

यह एचटीटीपी कुकी के बारे में जानकारी दिखाता है.

प्रॉपर्टी

  • स्ट्रिंग

    कुकी का डोमेन (जैसे, "www.google.com", "example.com").

  • number ज़रूरी नहीं

    कुकी के खत्म होने की तारीख. यह तारीख, यूनिक्स युग की शुरुआत से लेकर अब तक के कुल सेकंड की संख्या के तौर पर दिखाई जाती है. यह सेशन कुकी के लिए उपलब्ध नहीं है.

  • बूलियन

    अगर कुकी सिर्फ़ होस्ट के लिए है, तो यह वैल्यू सही होती है. इसका मतलब है कि अनुरोध करने वाले होस्ट का डोमेन, कुकी के डोमेन से पूरी तरह मेल खाना चाहिए.

  • बूलियन

    अगर कुकी को HttpOnly के तौर पर मार्क किया गया है, तो यह वैल्यू सही होती है. इसका मतलब है कि कुकी को क्लाइंट-साइड स्क्रिप्ट ऐक्सेस नहीं कर सकती हैं.

  • स्ट्रिंग

    कुकी का नाम.

  • CookiePartitionKey ज़रूरी नहीं है

    Chrome 119+

    Partitioned एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की.

  • स्ट्रिंग

    कुकी का पाथ.

  • Chrome 51 या इसके बाद के वर्शन

    कुकी का SameSite स्टेटस. इसका मतलब है कि कुकी को किसी दूसरी साइट से किए गए अनुरोधों के साथ भेजा जाता है या नहीं.

  • बूलियन

    अगर कुकी को Secure के तौर पर मार्क किया गया है, तो यह वैल्यू True होती है. इसका मतलब है कि इसका दायरा सुरक्षित चैनलों (आम तौर पर, एचटीटीपीएस) तक सीमित है.

  • बूलियन

    अगर कुकी, सेशन कुकी है, तो यह वैल्यू सही होती है. सेशन कुकी, खत्म होने की तारीख वाली परसिस्टेंट कुकी से अलग होती है.

  • स्ट्रिंग

    इस कुकी को सेव करने वाले कुकी स्टोर का आईडी. यह आईडी, getAllCookieStores() में दिया गया है.

  • स्ट्रिंग

    कुकी की वैल्यू.

CookieDetails

Chrome 88 या इसके बाद का वर्शन

कुकी की पहचान करने के लिए जानकारी.

प्रॉपर्टी

  • नाम

    स्ट्रिंग

    ऐक्सेस की जाने वाली कुकी का नाम.

  • partitionKey

    CookiePartitionKey ज़रूरी नहीं है

    Chrome 119+

    Partitioned एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की.

  • storeId

    string ज़रूरी नहीं है

    कुकी स्टोर का आईडी, जिसमें कुकी को ढूंढना है. डिफ़ॉल्ट रूप से, मौजूदा एक्ज़ीक्यूशन कॉन्टेक्स्ट के कुकी स्टोर का इस्तेमाल किया जाएगा.

  • url

    स्ट्रिंग

    वह यूआरएल जिससे ऐक्सेस की जाने वाली कुकी जुड़ी है. यह आर्ग्युमेंट पूरा यूआरएल हो सकता है. ऐसे में, यूआरएल पाथ के बाद मौजूद किसी भी डेटा (जैसे, क्वेरी स्ट्रिंग) को अनदेखा कर दिया जाता है. अगर मेनिफ़ेस्ट फ़ाइल में इस यूआरएल के लिए होस्ट अनुमतियां नहीं दी गई हैं, तो एपीआई कॉल नहीं किया जा सकेगा.

CookiePartitionKey

Chrome 119+

यह पार्टिशन्ड कुकी की पार्टिशन कुंजी को दिखाता है.

प्रॉपर्टी

  • hasCrossSiteAncestor

    बूलियन ज़रूरी नहीं है

    Chrome 130 या इसके बाद के वर्शन

    इससे पता चलता है कि कुकी को एक से ज़्यादा साइट के कॉन्टेक्स्ट में सेट किया गया था या नहीं. इससे, किसी दूसरी साइट के कॉन्टेक्स्ट में एम्बेड की गई टॉप-लेवल साइट को, एक ही साइट के कॉन्टेक्स्ट में टॉप-लेवल साइट की सेट की गई कुकी को ऐक्सेस करने से रोका जाता है.

  • topLevelSite

    string ज़रूरी नहीं है

    वह टॉप-लेवल साइट जिस पर पार्टिशन्ड कुकी उपलब्ध है.

CookieStore

यह ब्राउज़र में कुकी स्टोर को दिखाता है. उदाहरण के लिए, गुप्त मोड वाली विंडो, बिना गुप्त मोड वाली विंडो से अलग कुकी स्टोर का इस्तेमाल करती है.

प्रॉपर्टी

  • आईडी

    स्ट्रिंग

    कुकी स्टोर के लिए यूनीक आइडेंटिफ़ायर.

  • tabIds

    number[]

    उन सभी ब्राउज़र टैब के आइडेंटिफ़ायर जो इस कुकी स्टोर को शेयर करते हैं.

FrameDetails

Chrome 132 या इसके बाद के वर्शन

फ़्रेम की पहचान करने के लिए जानकारी.

प्रॉपर्टी

  • documentId

    string ज़रूरी नहीं है

    दस्तावेज़ के लिए यूनीक आइडेंटिफ़ायर. अगर frameId और/या tabId दिए गए हैं, तो उनकी पुष्टि की जाएगी. इससे यह पता चलेगा कि वे दिए गए दस्तावेज़ आईडी से मिले दस्तावेज़ से मेल खाते हैं या नहीं.

  • frameId

    number ज़रूरी नहीं

    टैब में मौजूद फ़्रेम के लिए यूनीक आइडेंटिफ़ायर.

  • tabId

    number ज़रूरी नहीं

    फ़्रेम को शामिल करने वाले टैब के लिए यूनीक आइडेंटिफ़ायर.

OnChangedCause

Chrome 44 या इसके बाद का वर्शन

कुकी में बदलाव होने की वजह. अगर किसी कुकी को "chrome.cookies.remove" को साफ़ तौर पर कॉल करके डाला या हटाया गया था, तो "cause" की वैल्यू "explicit" होगी. अगर कुकी की समयसीमा खत्म होने की वजह से उसे अपने-आप हटा दिया गया था, तो "वजह" के तौर पर "समयसीमा खत्म हो गई" दिखेगा. अगर किसी कुकी को इसलिए हटाया गया है, क्योंकि उसे पहले से खत्म हो चुकी तारीख से ओवरराइट किया गया था, तो "वजह" को "expired_overwrite" पर सेट किया जाएगा. अगर गार्बेज कलेक्शन की वजह से कोई कुकी अपने-आप हटा दी गई थी, तो "वजह" के तौर पर "हटाया गया" दिखेगा. अगर किसी कुकी को "सेट" कॉल की वजह से अपने-आप हटा दिया गया था, तो "वजह" के तौर पर "ओवरराइट करें" दिखेगा. इसके हिसाब से जवाब देने की योजना बनाएं.

Enum

"evicted"

"expired"

"explicit"

"expired_overwrite"

"overwrite"

SameSiteStatus

Chrome 51 या इसके बाद के वर्शन

कुकी की '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>

यह कुकी, किसी एक कुकी के बारे में जानकारी इकट्ठा करती है. अगर दिए गए यूआरएल के लिए, एक ही नाम की एक से ज़्यादा कुकी मौजूद हैं, तो सबसे लंबे पाथ वाली कुकी को दिखाया जाएगा. अगर एक ही पाथ लेंथ वाली कुकी मौजूद हैं, तो सबसे पहले बनाई गई कुकी को दिखाया जाएगा.

पैरामीटर

  • विवरण
  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर ऐसा दिखता है:

    (cookie?: Cookie) => void

    • कुकी ज़रूरी नहीं है

      इसमें कुकी के बारे में जानकारी होती है. अगर ऐसी कोई कुकी नहीं मिली, तो इस पैरामीटर की वैल्यू शून्य होती है.

रिटर्न

  • Promise<Cookie | undefined>

    Chrome 88 या इसके बाद का वर्शन

    प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.

getAll()

प्रॉमिस
chrome.cookies.getAll(
  details: object,
  callback?: function,
)
: Promise<Cookie[]>

यह कुकी, किसी एक कुकी स्टोर से उन सभी कुकी को वापस लाती है जो दी गई जानकारी से मेल खाती हैं. कुकी को क्रम से लगाया जाएगा. इसमें सबसे लंबे पाथ वाली कुकी सबसे पहले दिखेंगी. अगर कई कुकी के पाथ की लंबाई एक जैसी है, तो सबसे पहले वे कुकी दिखेंगी जिन्हें सबसे पहले बनाया गया था. यह तरीका सिर्फ़ उन डोमेन के लिए कुकी वापस पाता है जिनके लिए एक्सटेंशन के पास होस्ट अनुमतियां हैं.

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    यह जानकारी, वापस लाई जा रही कुकी को फ़िल्टर करने के लिए होती है.

    • डोमेन

      string ज़रूरी नहीं है

      यह कुकी, सिर्फ़ उन कुकी को वापस पाने की अनुमति देती है जिनके डोमेन, इस कुकी के डोमेन से मेल खाते हैं या इसके सबडोमेन हैं.

    • नाम

      string ज़रूरी नहीं है

      यह कुकी, नाम के हिसाब से कुकी को फ़िल्टर करती है.

    • partitionKey

      CookiePartitionKey ज़रूरी नहीं है

      Chrome 119+

      Partitioned एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की.

    • पाथ

      string ज़रूरी नहीं है

      यह कुकी, सिर्फ़ उन कुकी को वापस पाने की अनुमति देती है जिनका पाथ इस स्ट्रिंग से पूरी तरह मेल खाता है.

    • सुरक्षित

      बूलियन ज़रूरी नहीं है

      यह कुकी, कुकी को उनकी Secure प्रॉपर्टी के हिसाब से फ़िल्टर करती है.

    • सेशन

      बूलियन ज़रूरी नहीं है

      यह कुकी, सेशन कुकी और परसिस्टेंट कुकी को फ़िल्टर करती है.

    • storeId

      string ज़रूरी नहीं है

      वह कुकी स्टोर जिससे कुकी वापस लानी हैं. अगर इसे शामिल नहीं किया जाता है, तो मौजूदा एक्ज़ीक्यूशन कॉन्टेक्स्ट के कुकी स्टोर का इस्तेमाल किया जाएगा.

    • url

      string ज़रूरी नहीं है

      यह कुकी, सिर्फ़ उन कुकी को वापस लाती है जो दिए गए यूआरएल से मेल खाती हैं.

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर ऐसा दिखता है:

    (cookies: Cookie[]) => void

    • कुकी का इस्तेमाल करता है

      ऐसी सभी मौजूदा कुकी जो अब भी मान्य हैं और दी गई कुकी की जानकारी से मेल खाती हैं.

रिटर्न

  • Promise<Cookie[]>

    Chrome 88 या इसके बाद का वर्शन

    प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.

getAllCookieStores()

प्रॉमिस
chrome.cookies.getAllCookieStores(
  callback?: function,
)
: Promise<CookieStore[]>

यह कुकी, सभी मौजूदा कुकी स्टोर की सूची बनाती है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर ऐसा दिखता है:

    (cookieStores: CookieStore[]) => void

    • cookieStores

      सभी मौजूदा कुकी स्टोर.

रिटर्न

  • Promise<CookieStore[]>

    Chrome 88 या इसके बाद का वर्शन

    प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.

getPartitionKey()

Promise Chrome 132 और इसके बाद के वर्शन
chrome.cookies.getPartitionKey(
  details: FrameDetails,
  callback?: function,
)
: Promise<object>

दिए गए फ़्रेम के लिए पार्टीशन कुंजी.

पैरामीटर

  • विवरण
  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर ऐसा दिखता है:

    (details: object) => void

    • विवरण

      ऑब्जेक्ट

      इस कुकी में, वापस लाई गई पार्टीशन कुंजी के बारे में जानकारी होती है.

      • partitionKey

        Partitioned एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की.

रिटर्न

  • Promise<object>

    प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.

remove()

प्रॉमिस
chrome.cookies.remove(
  details: CookieDetails,
  callback?: function,
)
: Promise<object | undefined>

यह कुकी को नाम के हिसाब से मिटाता है.

पैरामीटर

  • विवरण
  • कॉलबैक

    फ़ंक्शन ज़रूरी नहीं

    callback पैरामीटर ऐसा दिखता है:

    (details?: object) => void

    • विवरण

      object ज़रूरी नहीं है

      इस कुकी में, हटाई गई कुकी के बारे में जानकारी होती है. अगर किसी वजह से वीडियो नहीं हटाया जा सका, तो यह "null" होगा. साथ ही, runtime.lastError सेट हो जाएगा.

      • नाम

        स्ट्रिंग

        हटा दी गई कुकी का नाम.

      • partitionKey

        CookiePartitionKey ज़रूरी नहीं है

        Chrome 119+

        Partitioned एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की.

      • storeId

        स्ट्रिंग

        उस कुकी स्टोर का आईडी जिससे कुकी हटाई गई थी.

      • url

        स्ट्रिंग

        हटा दी गई कुकी से जुड़ा यूआरएल.

रिटर्न

  • Promise<object | undefined>

    Chrome 88 या इसके बाद का वर्शन

    प्रॉमिस सिर्फ़ मेनिफ़ेस्ट V3 और इसके बाद के वर्शन के लिए काम करते हैं. अन्य प्लैटफ़ॉर्म को कॉलबैक का इस्तेमाल करना होगा.

set()

प्रॉमिस
chrome.cookies.set(
  details: object,
  callback?: function,
)
: Promise<Cookie | undefined>

यह कुकी, दिए गए कुकी डेटा के साथ एक कुकी सेट करती है. अगर ऐसी कुकी पहले से मौजूद हैं, तो यह उन्हें ओवरराइट कर सकती है.

पैरामीटर

  • विवरण

    ऑब्जेक्ट

    सेट की जा रही कुकी के बारे में जानकारी.

    • डोमेन

      string ज़रूरी नहीं है

      कुकी का डोमेन. अगर इसे शामिल नहीं किया जाता है, तो कुकी सिर्फ़ होस्ट के लिए उपलब्ध हो जाती है.

    • expirationDate

      number ज़रूरी नहीं

      कुकी के खत्म होने की तारीख. यह तारीख, यूनिक्स युग की शुरुआत से लेकर अब तक के कुल सेकंड की संख्या के तौर पर दिखाई जाती है. अगर इसे छोड़ दिया जाता है, तो कुकी, सेशन कुकी बन जाती है.

    • httpOnly

      बूलियन ज़रूरी नहीं है

      कुकी को HttpOnly के तौर पर मार्क किया जाना चाहिए या नहीं. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होती है.

    • नाम

      string ज़रूरी नहीं है

      कुकी का नाम. अगर इसे शामिल नहीं किया जाता है, तो डिफ़ॉल्ट रूप से यह खाली होता है.

    • partitionKey

      CookiePartitionKey ज़रूरी नहीं है

      Chrome 119+

      Partitioned एट्रिब्यूट वाली कुकी को पढ़ने या उनमें बदलाव करने के लिए, पार्टीशन की.

    • पाथ

      string ज़रूरी नहीं है

      कुकी का पाथ. डिफ़ॉल्ट रूप से, यह यूआरएल पैरामीटर के पाथ वाले हिस्से पर सेट होता है.

    • sameSite

      SameSiteStatus optional

      Chrome 51 या इसके बाद के वर्शन

      कुकी का सेम-साइट स्टेटस. डिफ़ॉल्ट रूप से इसकी वैल्यू "unspecified" होती है. इसका मतलब है कि अगर इसे शामिल नहीं किया जाता है, तो कुकी को SameSite एट्रिब्यूट की वैल्यू तय किए बिना सेट किया जाता है.

    • सुरक्षित

      बूलियन ज़रूरी नहीं है

      कुकी को Secure के तौर पर मार्क किया जाना चाहिए या नहीं. डिफ़ॉल्ट रूप से, यह 'गलत' पर सेट होती है.

    • storeId

      string ज़रूरी नहीं है

      कुकी स्टोर का आईडी, जिसमें कुकी सेट करनी है. डिफ़ॉल्ट रूप से, कुकी को मौजूदा एक्ज़ीक्यूशन कॉन्टेक्स्ट के कुकी स्टोर में सेट किया जाता है.

    • 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 पर सेट होती है.