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

Helen Cho
Helen Cho
Ari Chivukula
Ari Chivukula

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

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

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

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

تفاصيل التجربة الأصلية

بدءًا من إصدار 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} للوصول إلى IndexedDB وقفل الويب.

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

المدة

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

النطاق

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

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

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

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

المشاركة

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

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

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

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

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

مراجع إضافية