chrome.cookies

الوصف

استخدِم واجهة برمجة التطبيقات chrome.cookies للاستعلام عن ملفات تعريف الارتباط وتعديلها، ولتلقّي إشعارات عند تغييرها.

الأذونات

cookies

البيان

لاستخدام واجهة برمجة التطبيقات الخاصة بملفات تعريف الارتباط، يجب تضمين الإذن "cookies" صراحةً في ملف البيان، بالإضافة إلى أذونات المضيف لأي مضيفين تريد الوصول إلى ملفات تعريف الارتباط الخاصة بهم. على سبيل المثال:

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

التقسيم

تسمح ملفات تعريف الارتباط المقسَّمة لأحد المواقع الإلكترونية بالإشارة إلى أنّه يجب ربط ملفات تعريف ارتباط معيّنة بمصدر الإطار ذي المستوى الأعلى. وهذا يعني أنّه إذا تم تضمين الموقع الإلكتروني (أ) باستخدام إطار iframe في الموقع الإلكتروني (ب) والموقع الإلكتروني (ج)، يمكن أن تتضمّن ملفات تعريف الارتباط المقسّمة قيمة مختلفة في كل موقع إلكتروني.

لا تتيح chrome.cookies التقسيم، ما يعني أنّ جميع الطرق تقرأ ملفات تعريف الارتباط وتكتبها من جميع الأقسام. تخزّن طريقة cookies.set() ملفات تعريف الارتباط في القسم التلقائي.

للحصول على تفاصيل حول التأثير العام لتقسيم مساحة التخزين على الإضافات، يُرجى الاطّلاع على مساحة التخزين وملفات تعريف الارتباط.

أمثلة

يمكنك العثور على مثال بسيط لاستخدام واجهة برمجة التطبيقات الخاصة بملفات تعريف الارتباط في الدليل examples/api/cookies. للاطّلاع على أمثلة أخرى وللحصول على مساعدة في عرض الرمز المصدر، يُرجى الاطّلاع على الأمثلة.

الأنواع

تمثّل هذه السمة معلومات عن ملف تعريف ارتباط HTTP.

الخصائص

  • سلسلة

    نطاق ملف تعريف الارتباط (مثل "www.google.com" أو "example.com")

  • number اختياري

    تمثّل هذه السمة تاريخ انتهاء صلاحية ملف تعريف الارتباط، ويتم التعبير عنه بعدد الثواني منذ بدء حساب الفترة في نظام UNIX. لا يتم توفيرها لملفات تعريف ارتباط الجلسة.

  • قيمة منطقية

    يتم ضبط القيمة على "true" إذا كان ملف تعريف الارتباط مخصّصًا للمضيف فقط (أي يجب أن يتطابق مضيف الطلب تمامًا مع نطاق ملف تعريف الارتباط).

  • قيمة منطقية

    القيمة "صحيح" إذا تم وضع علامة HttpOnly على ملف تعريف الارتباط (أي لا يمكن الوصول إلى ملف تعريف الارتباط من خلال البرامج النصية من جهة العميل).

  • سلسلة

    تمثّل هذه السمة اسم ملف تعريف الارتباط.

  • CookiePartitionKey اختياري

    الإصدار 119 من Chrome والإصدارات الأحدث

    مفتاح التقسيم لقراءة ملفات تعريف الارتباط أو تعديلها باستخدام السمة Partitioned

  • سلسلة

    مسار ملف تعريف الارتباط

  • Chrome 51 والإصدارات الأحدث

    حالة ملف تعريف الارتباط على الموقع الإلكتروني نفسه (أي ما إذا كان يتم إرسال ملف تعريف الارتباط مع الطلبات المُرسَلة من مواقع إلكترونية مختلفة)

  • قيمة منطقية

    تكون القيمة صحيحة إذا تم وضع علامة "آمن" على ملف تعريف الارتباط (أي إذا كان نطاقه محصورًا بالقنوات الآمنة، مثل HTTPS عادةً).

  • قيمة منطقية

    تكون القيمة صحيحة إذا كان ملف تعريف الارتباط هو ملف تعريف ارتباط للجلسة، وليس ملف تعريف ارتباط دائمًا له تاريخ انتهاء صلاحية.

  • سلسلة

    معرّف متجر ملفات تعريف الارتباط الذي يحتوي على ملف تعريف الارتباط هذا، كما هو موضّح في getAllCookieStores().

  • سلسلة

    تمثّل هذه السمة قيمة ملف تعريف الارتباط.

CookieDetails

الإصدار 88 من Chrome والإصدارات الأحدث

تفاصيل لتحديد ملف تعريف الارتباط

الخصائص

  • الاسم

    سلسلة

    اسم ملف تعريف الارتباط الذي سيتم الوصول إليه

  • partitionKey

    CookiePartitionKey اختياري

    الإصدار 119 من Chrome والإصدارات الأحدث

    مفتاح التقسيم لقراءة ملفات تعريف الارتباط أو تعديلها باستخدام السمة Partitioned

  • storeId

    سلسلة اختيارية

    معرّف متجر ملفات تعريف الارتباط الذي سيتم البحث فيه عن ملف تعريف الارتباط سيتم تلقائيًا استخدام متجر ملفات تعريف الارتباط لسياق التنفيذ الحالي.

  • url

    سلسلة

    عنوان URL المرتبط بملف تعريف الارتباط المطلوب الوصول إليه. قد تكون هذه الوسيطة عبارة عن عنوان URL كامل، وفي هذه الحالة يتم تجاهل أي بيانات تلي مسار عنوان URL (مثل سلسلة طلب البحث). إذا لم يتم تحديد أذونات المضيف لعنوان URL هذا في ملف البيان، سيتعذّر تنفيذ طلب البيانات من واجهة برمجة التطبيقات.

CookiePartitionKey

الإصدار 119 من Chrome والإصدارات الأحدث

تمثّل هذه السمة مفتاح تقسيم ملف تعريف الارتباط المُقسَّم.

الخصائص

  • hasCrossSiteAncestor

    boolean اختياري

    Chrome 130 والإصدارات الأحدث

    تشير هذه السمة إلى ما إذا تم ضبط ملف تعريف الارتباط في سياق موقع إلكتروني متعدد المصادر. يمنع ذلك موقعًا إلكترونيًا على المستوى الأعلى مضمَّنًا في سياق على جميع المواقع الإلكترونية من الوصول إلى ملفات تعريف الارتباط التي يضبطها الموقع الإلكتروني على المستوى الأعلى في سياق على الموقع الإلكتروني نفسه.

  • topLevelSite

    سلسلة اختيارية

    الموقع الإلكتروني ذو المستوى الأعلى الذي يتوفّر فيه ملف تعريف الارتباط المُقسَّم

CookieStore

تمثّل هذه السمة متجرًا لملفات تعريف الارتباط في المتصفّح. على سبيل المثال، تستخدم نافذة وضع التصفّح المتخفي مساحة تخزين منفصلة لملفات تعريف الارتباط عن نافذة غير متخفية.

الخصائص

  • id

    سلسلة

    المعرّف الفريد لمخزن ملفات تعريف الارتباط

  • tabIds

    number[]

    معرّفات جميع علامات تبويب المتصفّح التي تشارك متجر ملفات تعريف الارتباط هذا

FrameDetails

الإصدار 132 من Chrome والإصدارات الأحدث

تفاصيل لتحديد الإطار

الخصائص

  • documentId

    سلسلة اختيارية

    المعرّف الفريد للمستند. في حال توفير frameId و/أو tabId، سيتم التحقّق من صحتهما للتأكّد من تطابقهما مع المستند الذي تم العثور عليه باستخدام رقم تعريف المستند المقدَّم.

  • frameId

    number اختياري

    المعرّف الفريد للإطار ضمن علامة التبويب

  • tabId

    number اختياري

    المعرّف الفريد للعلامة التي تحتوي على الإطار

OnChangedCause

Chrome 44 والإصدارات الأحدث

السبب الأساسي وراء تغيير ملف تعريف الارتباط إذا تم إدراج ملف تعريف ارتباط أو إزالته من خلال طلب صريح إلى "chrome.cookies.remove"، ستكون "السبب" هي "صريح". إذا تمت إزالة ملف تعريف ارتباط تلقائيًا بسبب انتهاء صلاحيته، ستكون "السبب" هي "انتهت الصلاحية". إذا تمت إزالة ملف تعريف ارتباط بسبب استبداله بتاريخ انتهاء صلاحية منتهي الصلاحية، سيتم ضبط "السبب" على "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>

تُستخدَم لاسترداد معلومات عن ملف تعريف ارتباط واحد. إذا كان هناك أكثر من ملف تعريف ارتباط واحد بالاسم نفسه لعنوان URL معيّن، سيتم عرض ملف تعريف الارتباط الذي يتضمّن أطول مسار. بالنسبة إلى ملفات تعريف الارتباط التي لها طول المسار نفسه، سيتم عرض ملف تعريف الارتباط الذي تم إنشاؤه في أقرب وقت.

المعلمات

  • التفاصيل
  • callback

    الدالة اختيارية

    تظهر المَعلمة callback على النحو التالي:

    (cookie?: Cookie) => void

    • تحتوي على تفاصيل حول ملف تعريف الارتباط. تكون قيمة هذه المَعلمة فارغة إذا لم يتم العثور على ملف تعريف ارتباط من هذا النوع.

المرتجعات

  • Promise<Cookie | undefined>

    الإصدار 88 من Chrome والإصدارات الأحدث

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، ويجب أن تستخدم المنصات الأخرى عمليات رد الاتصال.

getAll()

الوعد
chrome.cookies.getAll(
  details: object,
  callback?: function,
)
: Promise<Cookie[]>

تسترجع جميع ملفات تعريف الارتباط من متجر ملفات تعريف ارتباط واحد يتطابق مع المعلومات المقدَّمة. سيتم ترتيب ملفات تعريف الارتباط التي يتم عرضها، مع عرض تلك التي تتضمّن أطول مسار أولاً. إذا كانت ملفات تعريف الارتباط المتعددة تتضمّن طول المسار نفسه، ستكون ملفات تعريف الارتباط التي تم إنشاؤها في وقت مبكر هي الأولى. لا تستردّ هذه الطريقة ملفات تعريف الارتباط إلا للنطاقات التي تملك الإضافة أذونات المضيف لها.

المعلمات

  • التفاصيل

    عنصر

    معلومات لفلترة ملفات تعريف الارتباط التي يتم استردادها

    • نطاق

      سلسلة اختيارية

      يقتصر على ملفات تعريف الارتباط التي تتطابق نطاقاتها مع هذا النطاق أو تكون نطاقات فرعية منه.

    • الاسم

      سلسلة اختيارية

      تتم فلترة ملفات تعريف الارتباط حسب الاسم.

    • partitionKey

      CookiePartitionKey اختياري

      الإصدار 119 من Chrome والإصدارات الأحدث

      مفتاح التقسيم لقراءة ملفات تعريف الارتباط أو تعديلها باستخدام السمة Partitioned

    • المسار

      سلسلة اختيارية

      يقتصر على ملفات تعريف الارتباط التي يتطابق مسارها تمامًا مع هذه السلسلة.

    • آمن

      boolean اختياري

      تفلتر ملفات تعريف الارتباط حسب السمة Secure.

    • جلسة

      boolean اختياري

      فلترة ملفات تعريف الارتباط الخاصة بالجلسة مقابل ملفات تعريف الارتباط الدائمة

    • storeId

      سلسلة اختيارية

      متجر ملفات تعريف الارتباط الذي سيتم استرداد ملفات تعريف الارتباط منه. في حال حذفها، سيتم استخدام متجر ملفات تعريف الارتباط في سياق التنفيذ الحالي.

    • url

      سلسلة اختيارية

      يحصر ملفات تعريف الارتباط التي تم استرجاعها في تلك التي تتطابق مع عنوان URL المحدّد.

  • callback

    الدالة اختيارية

    تظهر المَعلمة callback على النحو التالي:

    (cookies: Cookie[]) => void

    • البسكويت

      جميع ملفات تعريف الارتباط الحالية وغير المنتهية الصلاحية التي تتطابق مع معلومات ملفات تعريف الارتباط المقدَّمة

المرتجعات

  • Promise<Cookie[]>

    الإصدار 88 من Chrome والإصدارات الأحدث

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، ويجب أن تستخدم المنصات الأخرى عمليات رد الاتصال.

getAllCookieStores()

الوعد
chrome.cookies.getAllCookieStores(
  callback?: function,
)
: Promise<CookieStore[]>

تعرض هذه السمة جميع مستودعات ملفات تعريف الارتباط الحالية.

المعلمات

  • callback

    الدالة اختيارية

    تظهر المَعلمة callback على النحو التالي:

    (cookieStores: CookieStore[]) => void

    • cookieStores

      جميع متاجر ملفات تعريف الارتباط الحالية

المرتجعات

  • Promise<CookieStore[]>

    الإصدار 88 من Chrome والإصدارات الأحدث

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، ويجب أن تستخدم المنصات الأخرى عمليات رد الاتصال.

getPartitionKey()

Promise Chrome 132 والإصدارات الأحدث
chrome.cookies.getPartitionKey(
  details: FrameDetails,
  callback?: function,
)
: Promise<object>

تمثّل هذه السمة مفتاح القسم للإطار المحدّد.

المعلمات

  • التفاصيل
  • callback

    الدالة اختيارية

    تظهر المَعلمة callback على النحو التالي:

    (details: object) => void

    • التفاصيل

      عنصر

      يحتوي على تفاصيل حول مفتاح القسم الذي تم استرداده.

      • partitionKey

        مفتاح التقسيم لقراءة ملفات تعريف الارتباط أو تعديلها باستخدام السمة Partitioned

المرتجعات

  • Promise<object>

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، ويجب أن تستخدم المنصات الأخرى عمليات رد الاتصال.

remove()

الوعد
chrome.cookies.remove(
  details: CookieDetails,
  callback?: function,
)
: Promise<object | undefined>

يحذف ملف تعريف ارتباط حسب الاسم.

المعلمات

  • التفاصيل
  • callback

    الدالة اختيارية

    تظهر المَعلمة callback على النحو التالي:

    (details?: object) => void

    • التفاصيل

      عنصر اختياري

      تحتوي على تفاصيل حول ملف تعريف الارتباط الذي تمت إزالته. إذا تعذّرت إزالة المحتوى لأي سبب، سيتم رفض الوعد.

      • الاسم

        سلسلة

        اسم ملف تعريف الارتباط الذي تمت إزالته

      • partitionKey

        CookiePartitionKey اختياري

        الإصدار 119 من Chrome والإصدارات الأحدث

        مفتاح التقسيم لقراءة ملفات تعريف الارتباط أو تعديلها باستخدام السمة Partitioned

      • storeId

        سلسلة

        رقم تعريف متجر ملفات تعريف الارتباط الذي تمت إزالة ملف تعريف الارتباط منه

      • url

        سلسلة

        تمثّل هذه السمة عنوان URL المرتبط بملف تعريف الارتباط الذي تمت إزالته.

المرتجعات

  • Promise<object | undefined>

    الإصدار 88 من Chrome والإصدارات الأحدث

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، ويجب أن تستخدم المنصات الأخرى عمليات رد الاتصال.

set()

الوعد
chrome.cookies.set(
  details: object,
  callback?: function,
)
: Promise<Cookie | undefined>

تضبط هذه السمة ملف تعريف ارتباط ببيانات ملف تعريف الارتباط المحدّدة، وقد تستبدل ملفات تعريف الارتباط المشابهة إذا كانت متوفّرة.

المعلمات

  • التفاصيل

    عنصر

    تفاصيل حول ملف تعريف الارتباط الذي يتم ضبطه

    • نطاق

      سلسلة اختيارية

      تمثّل هذه السمة نطاق ملف تعريف الارتباط. في حال عدم تضمينها، يصبح ملف تعريف الارتباط متاحًا للمضيف فقط.

    • expirationDate

      number اختياري

      تمثّل هذه السمة تاريخ انتهاء صلاحية ملف تعريف الارتباط، ويتم التعبير عنه بعدد الثواني منذ بدء حساب الفترة في نظام UNIX. في حال حذفها، يصبح ملف تعريف الارتباط ملف تعريف ارتباط للجلسة.

    • httpOnly

      boolean اختياري

      تحديد ما إذا كان يجب وضع علامة HttpOnly على ملف تعريف الارتباط. القيمة التلقائية هي "خطأ".

    • الاسم

      سلسلة اختيارية

      تمثّل هذه السمة اسم ملف تعريف الارتباط. يكون فارغًا تلقائيًا في حال عدم إدخال قيمة.

    • partitionKey

      CookiePartitionKey اختياري

      الإصدار 119 من Chrome والإصدارات الأحدث

      مفتاح التقسيم لقراءة ملفات تعريف الارتباط أو تعديلها باستخدام السمة Partitioned

    • المسار

      سلسلة اختيارية

      مسار ملف تعريف الارتباط القيمة التلقائية هي جزء المسار من مَعلمة عنوان URL.

    • sameSite

      SameSiteStatus اختياري

      Chrome 51 والإصدارات الأحدث

      حالة ملف تعريف الارتباط على الموقع الإلكتروني نفسه القيمة التلقائية هي "unspecified"، أي أنّه في حال حذفها، يتم ضبط ملف تعريف الارتباط بدون تحديد سمة SameSite.

    • آمن

      boolean اختياري

      تحديد ما إذا كان يجب وضع علامة "آمن" على ملف تعريف الارتباط. القيمة التلقائية هي "خطأ".

    • storeId

      سلسلة اختيارية

      معرّف متجر ملفات تعريف الارتباط الذي سيتم ضبط ملف تعريف الارتباط فيه. يتمّ ضبط ملفّ تعريف الارتباط تلقائيًا في متجر ملفّات تعريف الارتباط الخاص بسياق التنفيذ الحالي.

    • url

      سلسلة

      عنوان URI للطلب الذي سيتم ربطه بإعداد ملف تعريف الارتباط. يمكن أن تؤثّر هذه القيمة في قيم النطاق والمسار التلقائية لملف تعريف الارتباط الذي تم إنشاؤه. إذا لم يتم تحديد أذونات المضيف لعنوان URL هذا في ملف البيان، سيتعذّر تنفيذ طلب البيانات من واجهة برمجة التطبيقات.

    • القيمة

      سلسلة اختيارية

      تمثّل هذه السمة قيمة ملف تعريف الارتباط. يكون فارغًا تلقائيًا في حال عدم إدخال قيمة.

  • callback

    الدالة اختيارية

    تظهر المَعلمة callback على النحو التالي:

    (cookie?: Cookie) => void

    • تحتوي على تفاصيل حول ملف تعريف الارتباط الذي تم ضبطه. إذا تعذّر ضبط الإعداد لأي سبب، سيتم رفض الوعد.

المرتجعات

  • Promise<Cookie | undefined>

    الإصدار 88 من Chrome والإصدارات الأحدث

    لا تتوفّر الوعود إلا في الإصدار Manifest V3 والإصدارات الأحدث، ويجب أن تستخدم المنصات الأخرى عمليات رد الاتصال.

الفعاليات

onChanged

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

يتم تشغيله عند ضبط ملف تعريف ارتباط أو إزالته. في حالة خاصة، يُرجى العِلم أنّ تعديل خصائص ملف تعريف الارتباط يتم على خطوتَين: تتم أولاً إزالة ملف تعريف الارتباط المراد تعديله بالكامل، ما يؤدي إلى إنشاء إشعار يتضمّن "السبب" "overwrite" . بعد ذلك، تتم كتابة ملف تعريف ارتباط جديد بالقيم المعدَّلة، ما يؤدي إلى إنشاء إشعار ثانٍ يتضمّن "السبب" "صريح".

المعلمات

  • callback

    دالة

    تظهر المَعلمة callback على النحو التالي:

    (changeInfo: object) => void

    • changeInfo

      عنصر

      • السبب

        السبب الأساسي وراء تغيير ملف تعريف الارتباط

      • معلومات عن ملف تعريف الارتباط الذي تم ضبطه أو إزالته

      • تمت الإزالة

        قيمة منطقية

        قيمة منطقية صحيحة إذا تمت إزالة ملف تعريف ارتباط.