browser.cookies

ब्यौरा

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

टाइप

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

प्रॉपर्टी

  • स्ट्रिंग

    कुकी का डोमेन (उदाहरण के लिए, "www.google.com", "example.com").

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

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

  • बूलियन

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

  • बूलियन

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

  • स्ट्रिंग

    कुकी का नाम.

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

    Chrome 119 और इसके बाद के वर्शन Chrome 148 के बाद से browser.*

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

  • स्ट्रिंग

    कुकी का पाथ.

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

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

  • बूलियन

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

  • बूलियन

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

  • स्ट्रिंग

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

  • स्ट्रिंग

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

CookieDetails

Chrome 88+ browser.* Chrome 148 से

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

प्रॉपर्टी

  • नाम

    स्ट्रिंग

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

  • partitionKey

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

    Chrome 119 और इसके बाद के वर्शन Chrome 148 के बाद से browser.*

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

  • storeId

    string ज़रूरी नहीं

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

  • url

    स्ट्रिंग

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

CookiePartitionKey

Chrome 119 और इसके बाद के वर्शन Chrome 148 के बाद से browser.*

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

प्रॉपर्टी

  • hasCrossSiteAncestor

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

    Chrome 130+ browser.* Chrome 148 से

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

  • topLevelSite

    string ज़रूरी नहीं

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

CookieStore

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

प्रॉपर्टी

  • आईडी

    स्ट्रिंग

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

  • tabIds

    number[]

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

FrameDetails

Chrome 132 और इसके बाद के वर्शन Chrome 148 से browser.*

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

प्रॉपर्टी

  • documentId

    string ज़रूरी नहीं

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

  • frameId

    number ज़रूरी नहीं

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

  • tabId

    number ज़रूरी नहीं

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

OnChangedCause

Chrome 44+ browser.* Chrome 148 के बाद से

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

Enum

"evicted"

"समयसीमा खत्म हो गई है"

"explicit"

"expired_overwrite"

"overwrite"

SameSiteStatus

Chrome 51 और इसके बाद के वर्शन Chrome 148 के बाद से browser.*

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

Chrome 132 और इसके बाद के वर्शन Chrome 148 से browser.*
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

      ऑब्जेक्ट

      • कारण

        कुकी में हुए बदलाव की मुख्य वजह.

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

      • निकाला गया

        बूलियन

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