يمكنك المشاركة في مرحلة التجربة والتقييم للوصول إلى مساحة تخزين غير ملفات تعريف الارتباط من خلال Storage Access API.

Helen Cho
Helen Cho
Ari Chivukula
Ari Chivukula

أدخل Chrome 115 تغييرات على مساحة التخزين وعاملي الخدمات وواجهات برمجة تطبيقات الاتصالات من خلال التقسيم في سياقات تابعة لجهات خارجية. بالإضافة إلى عزل واجهات برمجة التطبيقات المتأثرة والمستخدَمة في سياقات تابعة لجهات خارجية عن طريق سياسة المصدر نفسه، يتم أيضًا عزلها من خلال الموقع الإلكتروني ذي السياق الأعلى.

إذا لم يكن لدى المواقع الإلكترونية الوقت الكافي لتنفيذ ميزة تقسيم مساحة التخزين التابعة لجهات خارجية، سيكون بإمكانها المشاركة في نسخة تجريبية للإيقاف النهائي من أجل إلغاء التقسيم مؤقتًا (مواصلة العزل بموجب سياسة المصدر نفسه مع إزالة العزل حسب الموقع الإلكتروني من المستوى الأعلى) واستعادة السلوك السابق للتخزين وعاملي الخدمة وواجهات برمجة التطبيقات للاتصال في المحتوى المضمّن في موقعهم الإلكتروني. من المقرّر أن تنتهي صلاحية هذه الفترة التجريبية للإيقاف النهائي مع إصدار Chrome 127 في 3 سبتمبر 2024. يُرجى العِلم أنّ هذه الخطوة منفصلة عن الفترة التجريبية للإيقاف النهائي لاستخدام ملفات تعريف الارتباط التابعة لجهات خارجية، والهدف منها هو الوصول إلى مساحة التخزين فقط.

كحلّ طويل المدى لمعالجة بعض حالات الاستخدام التي تعطُّل بسبب تقسيم مساحة التخزين التابعة لجهات خارجية والتي لا تستخدم ملفات تعريف الارتباط، يقترح Chrome إمكانية طلب الوصول إلى مساحة التخزين أو التواصل (كل من ملفات تعريف الارتباط وملفات تعريف الارتباط) من خلال واجهة برمجة التطبيقات Storage Access (الشحن اعتبارًا من Chrome 117)، والتي تسمح للجهات الخارجية بطلب الوصول إلى ملفات تعريف الارتباط.

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

تفاصيل الفترة التجريبية لنقطة الشحن

بدءًا من Chrome 120، سيوفّر Chrome فترة تجريبية للمصدر، وهي StorageAccessAPIBeyondCookies، لتفعيل الإضافة المقترَحة لواجهة Storage Access API (المتوافقة مع الأنظمة القديمة) للسماح بالوصول إلى مساحة تخزين غير مقسَّمة (ملفات تعريف الارتباط وغير ملفات تعريف الارتباط) في سياق تابع لجهة خارجية.

الميكانيكا

يمكن استخدام واجهة برمجة التطبيقات على النحو التالي (يتم تشغيل JavaScript في إطار iframe مضمّن):

// Request a new storage handle via rSA (this should prompt the user)
const handle = await document.requestStorageAccess({all: true});
// Write some 1P context sessionStorage
handle.sessionStorage.setItem('userid', '1234');
// Write some 1P context localStorage
handle.localStorage.setItem('preference', 'A');
// Open or create an indexedDB that is shared with the 1P context
const messageDB = handle.indexedDB.open('messages');
// Use locks shared with the 1P context
await handle.locks.request('example', ...);

إذا كنت تريد فقط الوصول إلى واجهة برمجة تطبيقات معيّنة بدلاً من الوصول إلى all، يمكنك نقل أسماء واجهات برمجة التطبيقات التي تحتاج إليها فقط. على سبيل المثال، يمكنك تمرير {sessionStorage: true} للوصول إلى مساحة تخزين الجلسة فقط، أو {indexedDB: true, locks:true} للوصول إلى قاعدة البيانات المفهرسة وقفل الويب.

بالإضافة إلى طلب هذه الإضافة الإضافية، سيتطابق الوصول إلى التخزين بدون ملفات تعريف الارتباط مع المتطلبات الحالية للوصول إلى ملفات تعريف الارتباط من خلال واجهة برمجة تطبيقات Storage Access. على سبيل المثال، في Chrome، لا يتم عرض أي طلب عندما تكون المصادر في مجموعة المواقع الإلكترونية ذات الصلة نفسها (RWS، الاسم الجديد لمجموعات الطرف الأول). وستخضع المصادر التي لا تكون جزءًا من RWS نفسه لمتطلبات المطالبة بواجهة برمجة التطبيقات Storage Access في Chrome.

المدة

ستتوفّر مرحلة التجربة والتقييم من Chrome 120 حتى Chrome 125 (أو بعد 6 آب (أغسطس) 2024 في أي مرحلة من مراحل التجربة).

النطاق

لا تتوفّر سوى مساحة تخزين DOM (الجلسة والتخزين المحلي) وقاعدة البيانات المفهرسة وقفل الويب فقط في Chrome 120.

تمت إضافة "مساحة تخزين ذاكرة التخزين المؤقت" و"نظام الملفات الخاصة المصدر" و"الحصة" و"مساحة التخزين الثنائية الكبيرة" و"قناة البث" في Chrome 121.

تمت إضافة العاملين المشتركين والتحكم في تضمين ملفات تعريف الارتباط في الإصدار 123 من Chrome.

يكتسب العاملون المخصّصون الوصول إلى ملفات تعريف الارتباط غير المقسَّمة إذا تم استدعاء requestStorageAccess قبل إنشاء العامل اعتبارًا من الإصدار Chrome 120 (ولا يتطلّب ذلك استخدام مؤشر واجهة برمجة التطبيقات Storage Access).

المشاركة

  1. يمكنك تقييم كيفية استخدام التخزين لملفات تعريف الارتباط وغير ملفات تعريف الارتباط في سياق تابع لجهة خارجية. قد تساعد أمثلة حالات الاستخدام في معرفة ما إذا كان هذا الاقتراح يناسب احتياجاتك.
  2. شغِّل الإصدار 120 من Chrome (أو إصدارًا أحدث) وتأكَّد من تفعيل علامة test-third-party-cookie-phaseout.
  3. إذا أردت اختبار الميزة محليًا بدون إعداد رمز مميّز خاص بالتجربة المصدر أولاً، يمكنك تفعيل #enable-experimental-web-platform-features في المتصفّح.
    1. بعد الانتهاء من الاختبار على الجهاز، يمكنك التسجيل في مرحلة التجربة والتقييم في StorageAccessAPIBeyondCookies للحصول على رمز مميّز لنطاقاتك. للحصول على تعليمات أكثر تفصيلاً، يُرجى الانتقال إلى مقالة بدء استخدام مراحل التجربة والتقييم. يوفّر دليل تحديد مشاكل مراحل التجربة والتقييم في Chrome وحلّها قائمة تحقّق كاملة لضمان ضبط الرمز المميّز بشكل صحيح.
    2. يمكنك تضمين هذا الرمز المميّز الخاص بالتجربة الأصلية في إطار iframe الذي تحتاج إليه لاستخدام مؤشر Storage Access API داخله، وذلك باستخدام عنوان HTTP أو علامة HTML وصفية أو آليًا. تجدر الإشارة إلى أنّه يجب تضمين الرمز المميّز في أي إطار يريد استخدام واجهة برمجة التطبيقات هذه، ولن يؤدي تضمينه في الإطار الرئيسي إلى تفعيل واجهة برمجة التطبيقات في الإطارات الفرعية.
  4. يمكنك طلب document.requestStorageAccess(...) للحصول على مؤشر واجهة برمجة التطبيقات Storage Access في إطار iframe لمواقع إلكترونية متعددة. يمكنك الاطّلاع على مستندات واجهة برمجة التطبيقات Storage Access للتعرّف على متطلبات إتمام هذا الطلب بنجاح.
  5. يمكنك نقل مساحة التخزين ذات الصلة في إطار iframe لاستخدام مؤشر واجهة برمجة التطبيقات Storage Access في حال توفّره. على سبيل المثال، تصبح المكالمات الواردة إلى window.sessionStorage.setItem(...) handle.sessionStorage.setItem(...).
  6. افتح موقعك الإلكتروني وتأكَّد من أنّ مؤشر الوصول إلى مساحة التخزين يعمل على النحو المطلوب.
  7. لإيقاف المشاركة في مرحلة التجربة والتقييم، عليك إزالة الرمز المميّز الذي أضفته في الخطوة 3.
  8. يُرجى إرسال الملاحظات أو طرح أي مشاكل تواجهها في مستودع Storage Access API Non-Cookie Storage GitHub.

عرض توضيحي: استخدام Storage Access API للوصول إلى مساحة تخزين محلية غير مقسّمة

يوضِّح العرض التوضيحي التالي كيفية الوصول إلى قنوات البث غير المقسَّمة من إطار iframe تابع لجهة خارجية باستخدام واجهة برمجة التطبيقات Storage Access API:

https://saa-beyond-cookies.glitch.me/

يتطلّب هذا العرض التوضيحي متصفّح Chrome 121 أو إصدارًا أحدث مع تفعيل العلامة test-third-party-cookie-phaseout.

مراجع إضافية