chrome.cookies

ब्यौरा

कुकी के बारे में क्वेरी करने और उनमें बदलाव करने के लिए chrome.cookies API का इस्तेमाल करें. साथ ही, उनके बदलने पर सूचना पाने के लिए भी इसका इस्तेमाल करें.

अनुमतियां

cookies

कुकी एपीआई का इस्तेमाल करने के लिए, अपने मेनिफ़ेस्ट में "cookies" अनुमति के साथ-साथ उन सभी होस्ट के लिए होस्ट की अनुमतियां भी बताएं जिनकी कुकी को आपको ऐक्सेस करना है. उदाहरण के लिए:

{
  "name": "My extension",
  ...
  "host_permissions": [
    "*://*.google.com/"
  ],
  "permissions": [
    "cookies"
  ],
  ...
}

विभाजन

सेगमेंट में बांटी गई कुकी की मदद से साइट, यह मार्क कर सकती है कि कुछ कुकी को टॉप-लेवल फ़्रेम के ऑरिजिन से सेट किया जाना चाहिए. इसका मतलब है कि उदाहरण के लिए, अगर साइट A को साइट B और साइट C में iframe का इस्तेमाल करके एम्बेड किया गया है, तो B और C पर, पार्टिशन की गई कुकी के एम्बेड किए गए वर्शन में अलग-अलग वैल्यू हो सकती हैं.

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

एक्सटेंशन के पार्टीशन के सामान्य असर के बारे में जानने के लिए, स्टोरेज और कुकी देखें.

उदाहरण

आपको examples/api/cookies डायरेक्ट्री में कुकी एपीआई इस्तेमाल करने का आसान उदाहरण मिल सकता है. अन्य उदाहरणों और सोर्स कोड देखने में मदद के लिए, सैंपल देखें.

टाइप

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

प्रॉपर्टी

  • स्ट्रिंग

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

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

    कुकी की समयसीमा खत्म होने की तारीख, UNIX epoch के बाद से सेकंड की संख्या के तौर पर. यह विकल्प सेशन कुकी के लिए नहीं दिया जाता है.

  • boolean

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

  • boolean

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

  • स्ट्रिंग

    कुकी का नाम.

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

    Chrome 119 और इसके बाद के वर्शन

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

  • स्ट्रिंग

    कुकी का पाथ.

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

    कुकी की एक ही साइट का स्टेटस (यानी कि कुकी को क्रॉस-साइट अनुरोधों के साथ भेजा गया है या नहीं).

  • boolean

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

  • boolean

    अगर कुकी, खत्म होने की तारीख वाली स्थायी कुकी के बजाय एक सेशन कुकी है, तो वैल्यू 'सही' होगी.

  • स्ट्रिंग

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

  • स्ट्रिंग

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

CookieDetails

Chrome 88+

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

प्रॉपर्टी

  • नाम

    स्ट्रिंग

    ऐक्सेस करने के लिए कुकी का नाम.

  • partitionKey

    CookiePartitionKey ज़रूरी नहीं

    Chrome 119 और इसके बाद के वर्शन

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

  • storeId

    स्ट्रिंग ज़रूरी नहीं

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

  • यूआरएल

    स्ट्रिंग

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

CookiePartitionKey

Chrome 119 और इसके बाद के वर्शन

पार्टिशन की गई कुकी की पार्टीशन कुंजी के बारे में बताता है.

प्रॉपर्टी

  • topLevelSite

    स्ट्रिंग ज़रूरी नहीं

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

CookieStore

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

प्रॉपर्टी

  • id

    स्ट्रिंग

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

  • tabIds

    नंबर[]

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

OnChangedCause

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

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

Enum

"expired_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' पर सेट किया गया है. 'तय नहीं किया गया', ऐसे कुकी सेट से जुड़ा है जिसके लिए SameSite एट्रिब्यूट नहीं दिया गया है.

Enum

"no_restriction"

तरीके

get()

वादा
chrome.cookies.get(
  details: CookieDetails,
  callback?: function,
)

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

पैरामीटर

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

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

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

    (cookie?: Cookie)=>void

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

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

रिटर्न

  • वादा<Cookie|undefined>

    Chrome 88+

    प्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.

getAll()

वादा
chrome.cookies.getAll(
  details: object,
  callback?: function,
)

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

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

    • डोमेन

      स्ट्रिंग ज़रूरी नहीं

      वापस लाई गई कुकी को उन लोगों तक सीमित करता है जिनके डोमेन इससे मेल खाते हैं या इसके सबडोमेन हैं.

    • नाम

      स्ट्रिंग ज़रूरी नहीं

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

    • partitionKey

      CookiePartitionKey ज़रूरी नहीं

      Chrome 119 और इसके बाद के वर्शन

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

    • पाथ

      स्ट्रिंग ज़रूरी नहीं

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

    • सुरक्षित

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

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

    • सेशन

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

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

    • storeId

      स्ट्रिंग ज़रूरी नहीं

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

    • यूआरएल

      स्ट्रिंग ज़रूरी नहीं

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

  • कॉलबैक

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

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

    (cookies: Cookie[])=>void

    • कुकी

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

रिटर्न

  • Promise<Cookie[]>

    Chrome 88+

    प्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.

getAllCookieStores()

वादा
chrome.cookies.getAllCookieStores(
  callback?: function,
)

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

पैरामीटर

  • कॉलबैक

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

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

    (cookieStores: CookieStore[])=>void

    • cookieStores

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

रिटर्न

  • Promise<CookieStore[]>

    Chrome 88+

    प्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.

remove()

वादा
chrome.cookies.remove(
  details: CookieDetails,
  callback?: function,
)

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

पैरामीटर

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

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

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

    (details?: object)=>void

    • विवरण

      ऑब्जेक्ट ज़रूरी नहीं

      इसमें हटाई गई कुकी की जानकारी होती है. अगर किसी वजह से इसे हटाया नहीं जा सका, तो यह "शून्य" होगा और runtime.lastError को सेट कर दिया जाएगा.

      • नाम

        स्ट्रिंग

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

      • partitionKey

        CookiePartitionKey ज़रूरी नहीं

        Chrome 119 और इसके बाद के वर्शन

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

      • storeId

        स्ट्रिंग

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

      • यूआरएल

        स्ट्रिंग

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

रिटर्न

  • Promise<object|undefined>

    Chrome 88+

    प्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.

set()

वादा
chrome.cookies.set(
  details: object,
  callback?: function,
)

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

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

    • डोमेन

      स्ट्रिंग ज़रूरी नहीं

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

    • expirationDate

      नंबर ज़रूरी नहीं

      कुकी की समयसीमा खत्म होने की तारीख, UNIX epoch के बाद से सेकंड की संख्या के तौर पर. अगर इसे मिटाया जाता है, तो कुकी, सेशन कुकी बन जाती है.

    • httpOnly

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

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

    • नाम

      स्ट्रिंग ज़रूरी नहीं

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

    • partitionKey

      CookiePartitionKey ज़रूरी नहीं

      Chrome 119 और इसके बाद के वर्शन

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

    • पाथ

      स्ट्रिंग ज़रूरी नहीं

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

    • sameSite

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

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

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

    • सुरक्षित

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

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

    • storeId

      स्ट्रिंग ज़रूरी नहीं

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

    • यूआरएल

      स्ट्रिंग

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

    • value

      स्ट्रिंग ज़रूरी नहीं

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

  • कॉलबैक

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

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

    (cookie?: Cookie)=>void

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

      इसमें सेट की गई कुकी के बारे में जानकारी होती है. अगर किसी वजह से सेटिंग काम नहीं कर रही है, तो उसे "शून्य" कर दिया जाएगा और runtime.lastError को सेट कर दिया जाएगा.

रिटर्न

  • वादा<Cookie|undefined>

    Chrome 88+

    प्रॉमिस, मेनिफ़ेस्ट V3 और इसके बाद के वर्शन में काम करता है. हालांकि, पुराने सिस्टम के साथ काम करने के लिए कॉलबैक दिए जाते हैं. आप एक ही फ़ंक्शन कॉल पर दोनों का इस्तेमाल नहीं कर सकते. प्रॉमिस उसी टाइप के साथ रिज़ॉल्व हो जाती है जिसे कॉलबैक को पास किया जाता है.

इवेंट

onChanged

chrome.cookies.onChanged.addListener(
  callback: function,
)

कुकी सेट होने या निकालने पर सक्रिय होता है. खास मामले में, ध्यान दें कि कुकी की प्रॉपर्टी को अपडेट करना, दो चरणों वाली प्रोसेस के तौर पर लागू किया जाता है: अपडेट की जाने वाली कुकी को पहले पूरी तरह से हटाया जाता है. साथ ही, "ओवरराइट" के "वजह" वाली सूचना जनरेट की जाती है. इसके बाद, अपडेट की गई वैल्यू के साथ एक नई कुकी लिखी जाती है और "साफ़ तौर पर" "वजह" वाली दूसरी सूचना जनरेट होती है.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (changeInfo: object)=>void

    • changeInfo

      ऑब्जेक्ट

      • कुकी में बदलाव की वजह.

      • सेट की गई या हटाई गई कुकी के बारे में जानकारी.

      • हटाया

        boolean

        अगर कोई कुकी हटा दी गई है, तो वैल्यू 'सही' होगी.