chrome.cookies

ब्यौरा

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

अनुमतियां

cookies

मेनिफ़ेस्ट

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

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

विभाजन

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

chrome.cookies में पार्टिशन करने की सुविधा नहीं है. इसका मतलब है कि सभी तरीके, सभी पार्टिशन से कुकी पढ़ते और उनमें कुकी लिखते हैं. cookies.set() तरीका, कुकी को यहां सेव करता है डिफ़ॉल्ट विभाजन.

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

उदाहरण

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

टाइप

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

प्रॉपर्टी

  • स्ट्रिंग

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

  • नंबर वैकल्पिक

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

  • बूलियन

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

  • बूलियन

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

  • स्ट्रिंग

    कुकी का नाम.

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

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

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

  • स्ट्रिंग

    कुकी का पाथ.

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

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

  • बूलियन

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

  • बूलियन

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

  • स्ट्रिंग

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

  • स्ट्रिंग

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

CookieDetails

Chrome 88 और उसके बाद के वर्शन

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

प्रॉपर्टी

  • नाम

    स्ट्रिंग

    उस कुकी का नाम जिसे ऐक्सेस करना है.

  • partitionKey

    CookiePartitionKey ज़रूरी नहीं

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

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

  • storeId

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

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

  • url

    स्ट्रिंग

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

CookiePartitionKey

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

यह कुकी के सेगमेंट को सेगमेंट में बांटने वाली कुंजी के बारे में बताती है.

प्रॉपर्टी

  • hasCrossSiteAncestor

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

    Chrome 130 और उसके बाद वाले वर्शन

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

  • topLevelSite

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

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

CookieStore

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

प्रॉपर्टी

  • आईडी

    स्ट्रिंग

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

  • tabIds

    number[]

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

OnChangedCause

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

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

Enum

"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"

तरीके

get()

प्रॉमिस
chrome.cookies.get(
  details: CookieDetails,
  callback?: function,
)

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

पैरामीटर

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

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

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

    (cookie?: Cookie) => void

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

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

रिटर्न

  • वादा<कुकी | तय नहीं है>

    Chrome 88 और उसके बाद के वर्शन

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

getAll()

प्रॉमिस
chrome.cookies.getAll(
  details: object,
  callback?: function,
)

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

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

    • डोमेन

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

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

    • नाम

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

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

    • partitionKey

      CookiePartitionKey ज़रूरी नहीं

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

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

    • पाथ

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

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

    • सुरक्षित

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

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

    • सत्र

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

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

    • storeId

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

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

    • url

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

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

  • कॉलबैक

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

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

    (cookies: Cookie[]) => void

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

      कुकी की दी गई जानकारी से मेल खाने वाली सभी मौजूदा कुकी.

रिटर्न

  • Promise<Cookie[]>

    Chrome 88 और उसके बाद के वर्शन

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

getAllCookieStores()

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

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

पैरामीटर

  • कॉलबैक

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

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

    (cookieStores: CookieStore[]) => void

    • cookieStores

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

रिटर्न

  • Promise&lt;CookieStore[]&gt;

    Chrome 88 और उसके बाद के वर्शन

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

remove()

प्रॉमिस
chrome.cookies.remove(
  details: CookieDetails,
  callback?: function,
)

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

पैरामीटर

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

    फ़ंक्शन वैकल्पिक

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

    (details?: object) => void

    • विवरण

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

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

      • नाम

        स्ट्रिंग

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

      • partitionKey

        CookiePartitionKey ज़रूरी नहीं

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

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

      • storeId

        स्ट्रिंग

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

      • url

        स्ट्रिंग

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

रिटर्न

  • प्रॉमिस<ऑब्जेक्ट | तय नहीं है>

    Chrome 88 और उसके बाद के वर्शन

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

set()

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

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

पैरामीटर

  • विवरण

    ऑब्जेक्ट

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

    • डोमेन

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

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

    • expirationDate

      नंबर वैकल्पिक

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

    • httpOnly

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

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

    • नाम

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

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

    • partitionKey

      CookiePartitionKey ज़रूरी नहीं

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

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

    • पाथ

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

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

    • sameSite

      SameSiteStatus ज़रूरी नहीं

      Chrome 51 और उसके बाद वाले वर्शन के लिए

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

    • सुरक्षित

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

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

    • storeId

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

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

    • url

      स्ट्रिंग

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

    • value

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

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

  • कॉलबैक

    फ़ंक्शन वैकल्पिक

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

    (cookie?: Cookie) => void

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

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

रिटर्न

  • वादा<कुकी | तय नहीं है>

    Chrome 88 और उसके बाद के वर्शन

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

इवेंट

onChanged

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (changeInfo: object) => void

    • changeInfo

      ऑब्जेक्ट

      • कारण

        कुकी के बदलने की वजह.

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

      • निकाला गया

        बूलियन

        अगर कोई कुकी हटाई गई है, तो True.