browser.cookies

বিবরণ

কুকি কোয়েরি ও পরিবর্তন করতে এবং সেগুলি পরিবর্তন হলে বিজ্ঞপ্তি পেতে chrome.cookies API ব্যবহার করুন।

অনুমতি

cookies

কুকি API ব্যবহার করতে, আপনার ম্যানিফেস্টে "cookies" অনুমতি ঘোষণা করুন, সাথে আপনি যে হোস্টের কুকি অ্যাক্সেস করতে চান তার জন্য হোস্টের অনুমতি দিন। যেমন:

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

পার্টিশনিং

বিভাজিত স্টোরেজে রাখা কুকি কোনও সাইটকে নির্দিষ্ট কুকি চিহ্নিত করার অনুমতি দেয় যা টপ-লেভেল ফ্রেমের উৎসের বিপরীতে কী করা উচিত। এর অর্থ হল, উদাহরণস্বরূপ, সাইট B এবং সাইট C-তে iframe ব্যবহার করে সাইট A এম্বেড করা হলে, A থেকে বিভাজিত স্টোরেজে রাখা কুকির এম্বেড করা ভার্সনের B এবং C-তে আলাদা আলাদা ভ্যালু থাকতে পারে।

ডিফল্ট হিসেবে, সব API পদ্ধতি পার্টিশন না করা কুকিতে কাজ করে। এই আচরণ ওভাররাইড করতে partitionKey প্রপার্টি ব্যবহার করা যেতে পারে।

এক্সটেনশনের জন্য পার্টিশন করার সাধারণ প্রভাব সম্পর্কে বিস্তারিত জানতে, স্টোরেজ ও কুকি দেখুন।

উদাহরণ

আপনি examples/api/cookies ডিরেক্টরিতে কুকি API ব্যবহার করার একটি সহজ উদাহরণ খুঁজে পেতে পারেন। অন্যান্য উদাহরণ এবং সোর্স কোড দেখার ব্যাপারে সহায়তার জন্য, স্যাম্পেল দেখুন।

ধরন

HTTP কুকি সম্পর্কে তথ্য দেখায়।

প্রপার্টি

  • স্ট্রিং

    কুকির ডোমেন (যেমন, "www.google.com", "example.com")।

  • নম্বর ঐচ্ছিক

    UNIX epoch থেকে সেকেন্ডের সংখ্যা হিসেবে কুকির মেয়াদ শেষ হওয়ার তারিখ। সেশন কুকির জন্য প্রদান করা হয়নি।

  • বুলিয়ান

    কুকিটি হোস্ট-অনলি কুকি হলে (অর্থাৎ, অনুরোধের হোস্ট অবশ্যই কুকির ডোমেনের সাথে হুবহু মিলতে হবে) ট্রু।

  • বুলিয়ান

    কুকি HttpOnly হিসেবে চিহ্নিত করা হলে সত্য (অর্থাৎ, ক্লায়েন্ট-সাইড স্ক্রিপ্ট কুকি অ্যাক্সেস করতে পারবে না)।

  • স্ট্রিং

    কুকির নাম।

  • CookiePartitionKey ঐচ্ছিক

    Chrome 119+ Chrome 148 থেকে browser.*

    বিভাজিত অ্যাট্রিবিউট সহ কুকি রিড বা পরিবর্তন করার জন্য পার্টিশন কী।

  • স্ট্রিং

    কুকির পাথ।

  • Chrome 51+ browser.* Chrome 148 থেকে

    কুকির একই-সাইট স্ট্যাটাস (অর্থাৎ, কুকিটি ক্রস-সাইট অনুরোধের সাথে পাঠানো হয়েছে কিনা)।

  • বুলিয়ান

    কুকি সুরক্ষিত হিসেবে চিহ্নিত করা হলে (যেমন, এর স্কোপ সুরক্ষিত চ্যানেলের মধ্যে সীমিত, সাধারণত HTTPS) এটি সত্য হয়।

  • বুলিয়ান

    মেয়াদ শেষ হওয়ার তারিখ সহ স্থায়ী কুকির পরিবর্তে কুকিটি সেশন কুকি হলে True হবে।

  • স্ট্রিং

    getAllCookieStores()-এ যেমন দেওয়া আছে, এই কুকি সহ কুকি স্টোরের আইডি।

  • স্ট্রিং

    কুকির ভ্যালু।

CookieDetails

Chrome 88+ Chrome 148 থেকে browser.*

কুকি শনাক্ত করার বিবরণ।

প্রপার্টি

  • নাম

    স্ট্রিং

    অ্যাক্সেস করার জন্য কুকির নাম।

  • partitionKey

    CookiePartitionKey ঐচ্ছিক

    Chrome 119+ Chrome 148 থেকে browser.*

    বিভাজিত অ্যাট্রিবিউট সহ কুকি রিড বা পরিবর্তন করার জন্য পার্টিশন কী।

  • storeId

    স্ট্রিং ঐচ্ছিক

    কুকি স্টোরের আইডি যেখানে কুকি খুঁজতে হবে। ডিফল্ট হিসেবে, বর্তমান এক্সিকিউশন কন্টেক্সটের কুকি স্টোর ব্যবহার করা হবে।

  • URL

    স্ট্রিং

    অ্যাক্সেস করার জন্য কুকি যে URL-এর সাথে যুক্ত। এই আর্গুমেন্টটি সম্পূর্ণ URL হতে পারে, সেক্ষেত্রে URL পাথের (যেমন, কোয়েরি স্ট্রিং) পরে থাকা যেকোনও ডেটা উপেক্ষা করা হয়। ম্যানিফেস্ট ফাইলে এই URL-এর জন্য হোস্টের অনুমতি নির্দিষ্ট করা না থাকলে, API কল করা যাবে না।

CookiePartitionKey

Chrome 119+ Chrome 148 থেকে browser.*

বিভাজিত স্টোরেজে রাখা কুকির পার্টিশন কী দেখায়।

প্রপার্টি

  • hasCrossSiteAncestor

    বুলিয়ান ঐচ্ছিক

    Chrome 130+ Chrome 148 থেকে browser.*

    ক্রস-ক্রস সাইট প্রসঙ্গে কুকি সেট করা হয়েছে কিনা তা নির্দেশ করে। এটি ক্রস-সাইট প্রসঙ্গে এম্বেড করা টপ-লেভেল সাইটকে একই-সাইট প্রসঙ্গে টপ-লেভেল সাইটের সেট করা কুকি অ্যাক্সেস করা থেকে আটকায়।

  • topLevelSite

    স্ট্রিং ঐচ্ছিক

    বিভাজিত স্টোরেজে রাখা কুকি টপ-লেভেল সাইটে উপলভ্য।

CookieStore

ব্রাউজারে কুকি স্টোরকে দেখায়। যেমন, ছদ্মবেশী মোড উইন্ডো, ছদ্মবেশী নয় এমন উইন্ডো থেকে আলাদা কুকি স্টোর ব্যবহার করে।

প্রপার্টি

  • id

    স্ট্রিং

    কুকি স্টোরের জন্য অনন্য শনাক্তকারী।

  • tabIds

    সংখ্যা[]

    এই কুকি স্টোর শেয়ার করে এমন সব ব্রাউজার ট্যাবের আইডেন্টিফায়ার।

FrameDetails

Chrome 132+ Chrome 148 থেকে browser.*

ফ্রেম শনাক্ত করার বিবরণ।

প্রপার্টি

  • documentId

    স্ট্রিং ঐচ্ছিক

    ডকুমেন্টের জন্য অনন্য শনাক্তকারী। frameId এবং/অথবা tabId প্রদান করা হলে, প্রদত্ত ডকুমেন্ট আইডি দ্বারা পাওয়া ডকুমেন্টের সাথে মিলিয়ে সেগুলি যাচাই করা হবে।

  • frameId

    নম্বর ঐচ্ছিক

    ট্যাবের মধ্যে ফ্রেমের জন্য অনন্য শনাক্তকারী।

  • tabId

    নম্বর ঐচ্ছিক

    ফ্রেম সহ ট্যাবের জন্য অনন্য শনাক্তকারী।

OnChangedCause

Chrome 44+ Chrome 148 থেকে browser.*

কুকি পরিবর্তনের অন্তর্নিহিত কারণ। "chrome.cookies.remove"-এ স্পষ্ট কল করার মাধ্যমে কুকি যোগ বা সরানো হলে, "কারণ" হবে "স্পষ্ট"। মেয়াদ শেষ হওয়ার কারণে কোনও কুকি অটোমেটিক সরিয়ে দেওয়া হলে, "কারণ" হিসেবে "মেয়াদ শেষ" দেখানো হবে। ইতিমধ্যে মেয়াদ শেষ হয়ে গেছে এমন মেয়াদ সমাপ্তির তারিখ দিয়ে ওভাররাইট করার কারণে কোনও কুকি সরিয়ে দেওয়া হলে, "কারণ" "expired_overwrite" হিসেবে সেট করা হবে। গার্বেজ কালেকশনের কারণে কোনও কুকি অটোমেটিক সরিয়ে দেওয়া হলে, "কারণ" হিসেবে "সরিয়ে দেওয়া হয়েছে" দেখানো হবে। "সেট" কলের কারণে কোনও কুকি অটোমেটিক সরিয়ে দেওয়া হলে, "কারণ" হবে "ওভাররাইট"। সেই অনুযায়ী আপনার উত্তর দেওয়ার পরিকল্পনা করুন।

Enum

"উচ্ছেদ করা হয়েছে"

"মেয়াদ শেষ হয়ে গেছে"

"অনুপযুক্ত"

"expired_overwrite"

"ওভাররাইট করুন"

SameSiteStatus

Chrome 51+ browser.* Chrome 148 থেকে

কুকির '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"

"lax"

"strict"

"উল্লেখ করা হয়নি"

পদ্ধতি

get()

browser.cookies.get(
  details: CookieDetails,
)
: Promise<Cookie | undefined>

একটি কুকি সম্পর্কে তথ্য ফিরিয়ে আনে। প্রদত্ত URL-এর জন্য একই নামের একাধিক কুকি থাকলে, সবচেয়ে দীর্ঘ পাথ সহ কুকিটি রিটার্ন করা হবে। একই পাথ দৈর্ঘ্যের কুকির ক্ষেত্রে, সবচেয়ে আগে তৈরি করা কুকি ফিরিয়ে দেওয়া হবে।

প্যারামিটারগুলি

রিটার্ন

  • Promise<Cookie | undefined>

    Chrome 88+ Chrome 148 থেকে browser.*

getAll()

browser.cookies.getAll(
  details: object,
)
: Promise<Cookie[]>

প্রদত্ত তথ্যের সাথে মেলে এমন একটি কুকি স্টোর থেকে সব কুকি ফিরিয়ে আনে। ফেরত আসা কুকিগুলি সাজানো হবে, যার মধ্যে সবচেয়ে দীর্ঘ পাথ সহ কুকিগুলি প্রথমে থাকবে। একাধিক কুকির পাথ দৈর্ঘ্য একই হলে, যেগুলি আগে তৈরি করা হয়েছে সেগুলি প্রথমে থাকবে। এই পদ্ধতি শুধুমাত্র সেইসব ডোমেনের জন্য কুকি ফিরিয়ে আনে যেগুলির জন্য এক্সটেনশনের হোস্ট করার অনুমতি আছে।

প্যারামিটারগুলি

  • বিস্তারিত বিবরণ

    অবজেক্ট

    যেসব কুকি ফিরিয়ে আনা হচ্ছে সেগুলি ফিল্টার করার তথ্য।

    • ডোমেন

      স্ট্রিং ঐচ্ছিক

      উদ্ধার করা কুকিগুলিকে শুধুমাত্র সেইসব কুকিতে সীমাবদ্ধ করে যেগুলির ডোমেন এই ডোমেনের সাথে মেলে বা এই ডোমেনের সাবডোমেন।

    • নাম

      স্ট্রিং ঐচ্ছিক

      নাম অনুযায়ী কুকি ফিল্টার করে।

    • partitionKey

      CookiePartitionKey ঐচ্ছিক

      Chrome 119+ Chrome 148 থেকে browser.*

      বিভাজিত অ্যাট্রিবিউট সহ কুকি রিড বা পরিবর্তন করার জন্য পার্টিশন কী।

    • পথ

      স্ট্রিং ঐচ্ছিক

      এই স্ট্রিংয়ের সাথে হুবহু মিলে যায় এমন পাথ সহ কুকিকেই শুধু ফিরিয়ে আনা হয়।

    • সুরক্ষিত

      বুলিয়ান ঐচ্ছিক

      'নিরাপদ' প্রপার্টি অনুযায়ী কুকি ফিল্টার করে।

    • সেশন

      বুলিয়ান ঐচ্ছিক

      সেশন বনাম পারসিস্টেন্ট কুকি ফিল্টার করে।

    • storeId

      স্ট্রিং ঐচ্ছিক

      কুকি স্টোর যেখান থেকে কুকি ফিরিয়ে আনা হবে। বাদ দেওয়া হলে, বর্তমান এক্সিকিউশন কনটেক্সটের কুকি স্টোর ব্যবহার করা হবে।

    • URL

      স্ট্রিং ঐচ্ছিক

      উদ্ধার করা কুকিগুলিকে সীমাবদ্ধ করে যেগুলি প্রদত্ত URL-এর সাথে মিলবে।

রিটার্ন

  • Promise<Cookie[]>

    Chrome 88+ Chrome 148 থেকে browser.*

getAllCookieStores()

browser.cookies.getAllCookieStores(): Promise<CookieStore[]>

আগে থেকে থাকা সব কুকি স্টোরের তালিকা তৈরি করে।

রিটার্ন

  • Promise<CookieStore[]>

    Chrome 88+ Chrome 148 থেকে browser.*

getPartitionKey()

Chrome 132+ Chrome 148 থেকে browser.*
browser.cookies.getPartitionKey(
  details: FrameDetails,
)
: Promise<object>

ফ্রেমের জন্য পার্টিশন কী দেখানো হয়েছে।

প্যারামিটারগুলি

রিটার্ন

  • Promise<object>

remove()

browser.cookies.remove(
  details: CookieDetails,
)
: Promise<object | undefined>

নাম অনুযায়ী কুকি মুছে দেয়।

প্যারামিটারগুলি

রিটার্ন

  • <অবজেক্ট | অনির্ধারিত> প্রমিস

    Chrome 88+ Chrome 148 থেকে browser.*

set()

browser.cookies.set(
  details: object,
)
: Promise<Cookie | undefined>

প্রদত্ত কুকি ডেটা সহ একটি কুকি সেট করে; সমতুল্য কুকি থাকলে তা ওভাররাইট করতে পারে।

প্যারামিটারগুলি

  • বিস্তারিত বিবরণ

    অবজেক্ট

    সেট করা কুকি সম্পর্কে বিবরণ।

    • ডোমেন

      স্ট্রিং ঐচ্ছিক

      কুকির ডোমেন। বাদ দেওয়া হলে, কুকিটি হোস্ট-অনলি কুকি হয়ে যায়।

    • expirationDate

      নম্বর ঐচ্ছিক

      UNIX epoch থেকে সেকেন্ডের সংখ্যা হিসেবে কুকির মেয়াদ শেষ হওয়ার তারিখ। বাদ দেওয়া হলে, কুকিটি সেশন কুকি হয়ে যায়।

    • httpOnly

      বুলিয়ান ঐচ্ছিক

      কুকি HttpOnly হিসেবে চিহ্নিত করা হবে কিনা। ডিফল্ট হিসেবে false সেট করা থাকে।

    • নাম

      স্ট্রিং ঐচ্ছিক

      কুকির নাম। বাদ দেওয়া হলে ডিফল্ট হিসেবে ফাঁকা থাকে।

    • partitionKey

      CookiePartitionKey ঐচ্ছিক

      Chrome 119+ Chrome 148 থেকে browser.*

      বিভাজিত অ্যাট্রিবিউট সহ কুকি রিড বা পরিবর্তন করার জন্য পার্টিশন কী।

    • পথ

      স্ট্রিং ঐচ্ছিক

      কুকির পাথ। url প্যারামিটারের পাথ অংশে ডিফল্ট হিসেবে সেট করা হয়।

    • sameSite

      SameSiteStatus ঐচ্ছিক

      Chrome 51+ browser.* Chrome 148 থেকে

      কুকির সেম-সাইট স্ট্যাটাস। ডিফল্ট হিসেবে "উল্লেখ করা নেই" থাকে, অর্থাৎ, বাদ দেওয়া হলে, SameSite অ্যাট্রিবিউট উল্লেখ না করেই কুকি সেট করা হয়।

    • সুরক্ষিত

      বুলিয়ান ঐচ্ছিক

      কুকি 'নিরাপদ' হিসেবে চিহ্নিত করা হবে কিনা। ডিফল্ট হিসেবে false সেট করা থাকে।

    • storeId

      স্ট্রিং ঐচ্ছিক

      কুকি স্টোরের আইডি যেখানে কুকি সেট করতে হবে। ডিফল্ট হিসেবে, কুকি বর্তমান এক্সিকিউশন কনটেক্সটের কুকি স্টোরে সেট করা থাকে।

    • URL

      স্ট্রিং

      কুকির সেটিংসের সাথে যুক্ত করার জন্য অনুরোধ-URI। এই ভ্যালু তৈরি করা কুকির ডিফল্ট ডোমেন ও পাথ ভ্যালুকে প্রভাবিত করতে পারে। ম্যানিফেস্ট ফাইলে এই URL-এর জন্য হোস্টের অনুমতি নির্দিষ্ট করা না থাকলে, API কল করা যাবে না।

    • মান

      স্ট্রিং ঐচ্ছিক

      কুকির ভ্যালু। বাদ দেওয়া হলে ডিফল্ট হিসেবে ফাঁকা থাকে।

রিটার্ন

  • Promise<Cookie | undefined>

    Chrome 88+ Chrome 148 থেকে browser.*

ইভেন্ট

onChanged

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

কুকি সেট বা সরিয়ে দেওয়া হলে ফায়ার করা হয়। বিশেষ ক্ষেত্রে, মনে রাখবেন যে কুকির প্রপার্টি আপডেট করার প্রসেস দুটি ধাপে সম্পূর্ণ হয়: যে কুকি আপডেট করতে হবে সেটি প্রথমে সম্পূর্ণভাবে সরিয়ে দেওয়া হয়, "ওভাররাইট" করার "কারণ" সহ একটি বিজ্ঞপ্তি জেনারেট করা হয়। এর পরে, আপডেট করা ভ্যালু সহ একটি নতুন কুকি লেখা হয়, যা "কারণ" "স্পষ্ট" সহ একটি দ্বিতীয় বিজ্ঞপ্তি তৈরি করে।

প্যারামিটারগুলি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি দেখতে এইরকম:

    (changeInfo: object) => void

    • changeInfo

      অবজেক্ট

      • কারণ

        কুকি পরিবর্তনের অন্তর্নিহিত কারণ।

      • সেট করা বা সরিয়ে দেওয়া কুকি সম্পর্কে তথ্য।

      • সরানো হয়েছে

        বুলিয়ান

        কুকি সরানো হলে ট্রু।