أدخلت الإصدار 115 من Chrome تغييرات على واجهات برمجة التطبيقات للتخزين وخدمات Worker والاتصالات من خلال تقسيمها في سياقات تابعة لجهات خارجية. بالإضافة إلى عزل واجهات برمجة التطبيقات المتأثرة التي يتم استخدامها في السياقات التابعة لجهات خارجية من خلال سياسة المصدر نفسه، يتم أيضًا عزل هذه الواجهات من خلال الموقع الإلكتروني للسياق من المستوى الأعلى.
يمكن للمواقع الإلكترونية التي لم يكن لديها الوقت الكافي لتوفير إمكانية تقسيم مساحة التخزين التابعة لجهات خارجية المشاركة في تجربة الإيقاف النهائي لإلغاء التقسيم مؤقتًا (مواصلة العزل وفقًا لسياسة المصدر نفسه ولكن إزالة العزل حسب الموقع الإلكتروني من المستوى الأعلى) واستعادة السلوك السابق لواجهات برمجة التطبيقات للتخزين و"الموظفين في الخدمة" والمراسلات في المحتوى المضمّن على موقعها الإلكتروني. من المقرّر أن تنتهي صلاحية هذه الفترة التجريبية لإيقاف الميزة نهائيًا مع إصدار Chrome 127 في 3 أيلول (سبتمبر) 2024. يُرجى العِلم أنّ هذه الفترة منفصلة عن فترة إيقاف ملفات تعريف الارتباط التابعة لجهات خارجية نهائيًا، وهي مخصّصة للوصول إلى مساحة التخزين فقط.
كحلّ طويل الأمد لمعالجة حالات استخدام معيّنة تتعذّر بسبب تقسيم مساحة التخزين غير المخصّصة لملفات تعريف الارتباط من قِبل جهات خارجية، يقدّم Chrome إمكانية أن تطلب الجهات الخارجية الوصول إلى مساحة التخزين أو الاتصالات (كلاهما ملفات تعريف الارتباط وغير ملفات تعريف الارتباط) من خلال Storage Access API (الإصدار بدءًا من الإصدار 117 من Chrome)، والتي تسمح حاليًا للجهات الخارجية بطلب الوصول إلى ملفات تعريف الارتباط.
اعتبارًا من الإصدار 120 من Chrome، سيكون هذا الاقتراح متاحًا للتجربة من خلال مرحلة تجربة وتقييم. على المطوّرين المشاركة في هذه الفترة التجريبية لمصدر البيانات لتقييم كيفية تعامل الحل المقترَح مع حالات الاستخدام الخاصة بهم لضمان استعدادهم قبل انتهاء الفترة التجريبية لإيقاف الميزة نهائيًا.
تفاصيل مرحلة التجربة والتقييم
اعتبارًا من الإصدار 120 من Chrome، سيتيح 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}
للوصول إلى Session Storage فقط، أو {indexedDB: true, locks:true}
للوصول إلى IndexedDB وWeb Locks.
بالإضافة إلى استدعاء هذه الإضافة الإضافية، سيتوافق الوصول إلى مساحة التخزين التي لا تستخدم ملفات تعريف الارتباط مع المتطلبات الحالية للوصول إلى ملفات تعريف الارتباط من خلال واجهة برمجة التطبيقات Storage Access API. على سبيل المثال، في Chrome، لا يتم عرض أي طلب عندما تكون مصادر البيانات في مجموعة المواقع الإلكترونية ذات الصلة نفسها (RWS، وهو الاسم الجديد لمجموعات الطرف الأول). إنّ المصادر التي لا تشكّل جزءًا من "مساحة التخزين القابلة للقراءة والكتابة" نفسها ستخضع لمتطلبات طلب واجهة برمجة التطبيقات Storage Access API في Chrome.
المدة
ستتوفّر مرحلة التجربة والتقييم من الإصدار 120 من Chrome حتى الإصدار 125 (أو بعد 6 آب (أغسطس) 2024 في أيّ مرحلة).
النطاق
لا يتوفّر في الإصدار 120 من Chrome سوى مساحة تخزين DOM (مساحة تخزين الجلسة والمساحة التخزينية المحلية) وقاعدة البيانات المفهرَسة وأقفال الويب.
تمت إضافة ميزات "مساحة تخزين ذاكرة التخزين المؤقت" و"نظام الملفات الخاص بالمصدر" و"الحصة" و"مساحة تخزين Blob" و"قناة البث" في الإصدار 121 من Chrome.
تمت إضافة مهام مشترَكة وإمكانية التحكّم في تضمين ملفات تعريف الارتباط في الإصدار 123 من Chrome.
يكتسب العامل المخصّص إذن الوصول إلى ملفات تعريف الارتباط غير المقسّمة إذا تمّ استدعاء requestStorageAccess
قبل إنشاء العامل اعتبارًا من الإصدار 120 من Chrome (لا يتطلّب ذلك استخدام معرّف Storage Access API).
المشاركة
- تقييم كيفية استخدام ميزة التخزين بدون ملفات تعريف الارتباط وميزة التخزين باستخدام ملفات تعريف الارتباط في سياق تابع لجهة خارجية قد تساعدك أمثلة حالات الاستخدام في معرفة ما إذا كان هذا الاقتراح يناسب احتياجاتك.
- افتح الإصدار 120 من Chrome (أو إصدار أحدث) وتأكَّد من تفعيل العلامة test-third-party-cookie-phaseout.
- إذا كنت تريد اختبار الميزة على الجهاز بدون إعداد رمز مميّز لتجربة المصدر أولاً، يمكنك تفعيل #enable-experimental-web-platform-features في المتصفّح.
- بعد الانتهاء من الاختبار على الجهاز، يمكنك التسجيل في النسخة التجريبية من StorageAccessAPIBeyondCookies والحصول على رمز مميّز لنطاقاتك. للحصول على تعليمات أكثر تفصيلاً، يُرجى الانتقال إلى مقالة البدء في استخدام تجارب المصدر. يقدّم دليل تحديد المشاكل وحلّها في تجارب Chrome المصدر قائمة تحقّق كاملة للتأكّد من ضبط الرمز المميّز بشكل صحيح.
- أدمِج رمز الأمان هذا الخاص بالإصدار التجريبي من التطبيق الأصلي في إطار iframe الذي تحتاج إلى استخدام معرّف Storage Access API فيه، وذلك باستخدام عنوان HTTP أو علامة وصفية بتنسيق HTML أو بشكل آلي. يُرجى العِلم أنّه يجب تضمين الرمز المميّز من قِبل أيّ لقطة تريد استخدام واجهة برمجة التطبيقات هذه، ولن يؤدي تضمينه في اللقطة الرئيسية إلى تفعيل واجهة برمجة التطبيقات في اللقطات الفرعية.
- استدعاء
document.requestStorageAccess(...)
للحصول على معرّف Storage Access API في إطار iframe على مستوى الموقع الإلكتروني اطّلِع على مستندات Storage Access API لمعرفة متطلبات نجاح هذا الطلب. - نقل بيانات مساحة التخزين ذات الصلة في إطار iframe لاستخدام معرّف Storage Access API إذا كان متاحًا على سبيل المثال، تصبح المكالمات إلى
window.sessionStorage.setItem(...)
هيhandle.sessionStorage.setItem(...)
. - افتح موقعك الإلكتروني وتأكَّد من أنّ معرّف الوصول إلى مساحة التخزين يعمل على النحو المطلوب.
- لإيقاف المشاركة في الفترة التجريبية الأصلية، عليك إزالة الرمز المميّز الذي أضفته في الخطوة 3.
- يمكنك إرسال ملاحظات أو الإبلاغ عن أي مشاكل تواجهها إلى مستودع GitHub الخاص بمساحة التخزين التي لا تستخدم ملفات تعريف الارتباط في واجهة برمجة التطبيقات Storage Access API.
عرض توضيحي: استخدام واجهة برمجة التطبيقات Storage Access API للوصول إلى مساحة التخزين التلقائية غير المقسّمة
يوضّح العرض التوضيحي التالي كيفية الوصول إلى قنوات البث غير المقسّمة من إطار iframe تابع لجهة خارجية باستخدام واجهة برمجة التطبيقات Storage Access API:
https://saa-beyond-cookies.glitch.me/
يتطلّب العرض الترويجي استخدام الإصدار 121 من Chrome أو إصدار أحدث مع تفعيل العلامة test-third-party-cookie-phaseout.