يمكن للإضافات تخزين ملفات تعريف الارتباط والوصول إلى واجهات برمجة التطبيقات الخاصة بمساحة تخزين الويب بشكل مشابه لموقع إلكتروني عادي. ومع ذلك، تتصرف هذه العناصر بشكل مختلف في بعض الحالات ضمن الإضافات.
يمكنك الاطّلاع على browser.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 إمكانية التحكّم في مفتاح التقسيم الذي سيتم استخدامه مع كل طريقة من طرق واجهة برمجة التطبيقات. لمزيد من المعلومات، اطّلِع على
مرجع واجهة برمجة التطبيقات.