يمكن للإضافات تخزين ملفات تعريف الارتباط والوصول إلى واجهات برمجة التطبيقات لتخزين البيانات على الويب بشكل مشابه لموقع إلكتروني عادي. ومع ذلك، تتصرف هذه العناصر بشكل مختلف في بعض الحالات ضمن الإضافات.
يمكنك الاطّلاع على browser.storage للحصول على معلومات عن واجهة برمجة التطبيقات الخاصة بالإضافات.
مساحة التخزين
من المستحسن غالبًا استخدام واجهات برمجة التطبيقات الخاصة بمساحة التخزين على منصة الويب في الإضافات. يستكشف هذا القسم سلوك واجهات برمجة التطبيقات هذه في سياق الإضافات، والذي قد يختلف أحيانًا عن سلوكها على الويب.
الثبات
لا تتم إزالة بيانات تخزين الإضافة عندما يمحو المستخدم بيانات التصفّح. وينطبق ذلك على أي بيانات يتم تخزينها باستخدام واجهات برمجة تطبيقات التخزين على الويب (مثل Local Storage وIndexedDB).
تخضع الإضافات تلقائيًا لقيود الحصة العادية على مساحة التخزين، ويمكن التحقّق منها من خلال طلب navigator.storage.estimate(). يمكن أيضًا إخلاء مساحة التخزين في حال كان هناك ضغط كبير على الذاكرة، ولكن هذا نادرًا ما يحدث. لتجنُّب ذلك:
- اطلب الإذن
"unlimitedStorage"الذي يؤثّر في كل من واجهات برمجة التطبيقات الخاصة بالإضافات وتخزين البيانات على الويب، ويعفي الإضافات من قيود الحصة والإزالة. - يُرجى الاتصال بالرقم
navigator.storage.persist()للحصول على الحماية من الإخلاء.
تكون مساحة تخزين الإضافة مشترَكة في جميع أنحاء مصدر الإضافة، بما في ذلك مشغّل الخدمات الخاص بالإضافة وأي صفحات خاصة بالإضافة (بما في ذلك النوافذ المنبثقة واللوحة الجانبية) والمستندات خارج الشاشة. في النصوص البرمجية للمحتوى، يؤدي استدعاء واجهات برمجة تطبيقات التخزين على الويب إلى الوصول إلى البيانات من الصفحة المضيفة التي تم إدخال النص البرمجي للمحتوى فيها، وليس من الإضافة.
الوصول في مشغّلي الخدمات
يمكن الوصول إلى واجهتَي برمجة التطبيقات IndexedDB وCache Storage في عاملي الخدمة. ومع ذلك، لا يتم ذلك في التخزين المحلي وتخزين الجلسة.
إذا كنت بحاجة إلى الوصول إلى Local Storage أو Session Storage من عامل الخدمة، استخدِم مستندًا خارج الشاشة.
التقسيم
التقسيم هو المكان الذي يتم فيه إدخال المفاتيح للبيانات المخزّنة من أجل الحدّ من إمكانية الوصول إليها. كانت عملية التخزين تتم في السابق باستخدام مفتاح المصدر.
بدءًا من الإصدار 115 من Chrome، سيتم إجراء تغييرات على طريقة تحديد مفاتيح التقسيم في تقسيم مساحة التخزين لمنع أنواع معيّنة من تتبُّع إجراءات المستخدم على مواقع إلكترونية متعددة. من الناحية العملية، يعني ذلك أنّه إذا كان الموقع الإلكتروني (أ) يضم إطار iframe يحتوي على الموقع الإلكتروني (ب)، لن يتمكّن الموقع الإلكتروني (ب) من الوصول إلى مساحة التخزين نفسها التي يمكنه الوصول إليها عادةً عند الانتقال إليه مباشرةً.
للحدّ من تأثير ذلك في الإضافات، ينطبق استثناءان:
- إذا تم تضمين صفحة تتضمّن المخطط
chrome-extension://في أي موقع إلكتروني، لن يتم تطبيق ميزة تقسيم مساحة التخزين، وسيتمكّن الامتداد من الوصول إلى القسم الأعلى مستوى. - إذا كانت صفحة تتضمّن مخطط
chrome-extension://تتضمّن إطار iframe، وكانت الإضافة لديها أذونات المضيف للموقع الإلكتروني الذي يتم تضمينه، سيتمكّن هذا الموقع الإلكتروني أيضًا من الوصول إلى القسم ذي المستوى الأعلى.
بسكويت
توفّر ملفات تعريف الارتباط طريقة لتخزين أزواج المفتاح/القيمة المرتبطة بنطاق ومسار محدّدين. وهي ذات قيمة محدودة في الإضافات، ولكن فهم سلوكها يمكن أن يكون مفيدًا إذا كان لديك حالة استخدام معيّنة أو إذا كنت قد ضمّنت نصًا برمجيًا تابعًا لجهة خارجية يستخدمها في تنفيذه.
ملفات تعريف الارتباط الآمنة
لا تتوفّر سمة ملف تعريف الارتباط Secure إلا للمخطط https://. نتيجةً لذلك، لا يمكن لصفحات chrome-extension:// ضبط ملفات تعريف الارتباط باستخدام هذه السمة.
يعني هذا أيضًا أنّه لا يمكن لصفحات الإضافة استخدام سمات ملفات تعريف الارتباط الأخرى التي تتطلّب السمة Secure:
التقسيم وسلوك SameSite
تستخدم ملفات تعريف الارتباط التي يتم ضبطها على صفحات chrome-extension:// دائمًا SameSite=Lax.
نتيجةً لذلك، لا يمكن أبدًا الوصول إلى ملفات تعريف الارتباط التي تضبطها إضافة على مصدرها الخاص في الإطارات، ولا يكون التقسيم ذا صلة.
بالنسبة إلى ملفات تعريف الارتباط المرتبطة بمواقع إلكترونية تابعة لجهات خارجية، مثل موقع إلكتروني تابع لجهة خارجية تم تحميله في إطار على صفحة إضافة، أو طلب تم إجراؤه من صفحة إضافة إلى مصدر تابع لجهة خارجية، تتصرف ملفات تعريف الارتباط بالطريقة نفسها كما هو الحال على الويب، باستثناء طريقتَين:
- لا يتم حظر ملفات تعريف الارتباط التابعة لجهات خارجية مطلقًا حتى في الإطارات الفرعية إذا كانت الصفحة ذات المستوى الأعلى لعلامة تبويب معيّنة هي صفحة
chrome-extension://. - تُعامل الطلبات من إضافة إلى جهة خارجية على أنّها طلبات من الموقع الإلكتروني نفسه إذا كانت الإضافة تملك أذونات مضيف للجهة الخارجية. وهذا يعني أنّه
SameSite=Strictيمكن إرسال ملفات تعريف الارتباط. يُرجى العِلم أنّ هذا ينطبق فقط على طلبات الشبكة، وليس على الوصول من خلالdocument.cookieفي JavaScript، ولا ينطبق إذا تم حظر ملفات تعريف الارتباط التابعة لجهات خارجية.
يُرجى العِلم أنّ الإعدادات المتعلّقة بملفات تعريف الارتباط التابعة لجهات خارجية تتأثر بجهود "مبادرة حماية الخصوصية"، ويتم تعديلها وفقًا للمخطط الزمني للمبادرة.
توفّر واجهة برمجة التطبيقات browser.cookies إمكانية التحكّم في مفتاح التقسيم الذي سيتم استخدامه مع كل طريقة من طرق واجهة برمجة التطبيقات. لمزيد من المعلومات، يُرجى الاطّلاع على
مرجع واجهة برمجة التطبيقات.