يُجري الإصدار 130 من Chrome تغييرات على Shared Storage API لسماح باستخدام النصوص البرمجية لوحدات العمل التي تعمل من مصادر مختلفة مع createWorklet()
وaddModule()
. نحن بصدد طرح تعديلات على Select URL API مع "مساحة التخزين المشترَكة" في الإصدار 132 من Chrome مع إتاحة طلبات البحث المحفوظة.

وحدات عمل من مصادر متعددة باستخدام Shared Storage API في الإصدار 130 من Chrome
لقد أجرينا تغييرات على Shared Storage API في الإصدار 130 من Chrome لمنحك مزيدًا من المرونة عند العمل مع نصوص برمجية لوحدات العمل من مصادر مختلفة.
التغييرات التي أُجريت
لقد أزلنا القيود المفروضة على المصدر نفسه في addModule()
حتى تتمكّن الآن من تحميل
نصوص worklet البرمجية من أي مصدر. تتيح النصوص البرمجية لوحدات العمل التي تعمل من مصادر مختلفة حالات استخدام مهمة، مثل استضافة النصوص البرمجية لوحدات العمل على شبكات CDN. عندما يكون نص برمجي للوحدة المهام
من مصدر مختلف عن سياق التصفّح الذي يُطلِق الإجراء،
يُستخدَم مصدر سياق التفعيل كمصدر قسم البيانات للوصول إلى ملف التخزين المشترَك.
لمطابقة السلوك الجديد لـ addModule()
والحدّ من الالتباس المحتمل، تمت إضافة السمة
dataOrigin
إلى طلب createWorklet()
للسماح
بقراءة وكتابة بيانات مساحة تخزين مشترَكة في قسم مختلف عن
سياق التصفّح الذي يتمّ من خلاله الطلب. يمنحك ذلك مزيدًا من التحكّم الدقيق في مساحة التخزين المشترَكة التي يمكن لكلّ وحدات العمل الوصول إليها، حتى عند استخدام ملفّات برمجية لوحدات العمل من مصادر مختلفة.
التغييرات التي طرأت
اعتبارًا من الإصدار 125 من Chrome، يمكن للنص البرمجي التابع لجهة خارجية من مصدر آخر على الصفحة إنشاء
وحدات عمل من مصدر آخر بدون الحاجة إلى إطارات iframe من مصدر آخر من خلال استدعاء
createWorklet(url)
. في السابق، كان createWorklet(url)
يستخدِم مصدر عنوان URL (url
) للنص البرمجي كمصدر تقسيم البيانات، بغض النظر عن سياق التفعيل.
في الإصدار 130 من Chrome، لاستخدام السلوك الجديد addModule()
، يستخدم createWorklet()
أيضًا سياق الاستدعاء كمصدر القسم التلقائي للبيانات. لمواصلة
استخدام مصدر عنوان URL للنص البرمجي كمصدر تقسيم البيانات، يتمّ طرح سمة جديدة
dataOrigin
للسماح لك بضبط مصدر
تقسيم البيانات بشكل صريح.
يقبل السمة الجديدة dataOrigin
القيمة "script-origin"
التي تضبط مصدر ملف مشاركة
البيانات على أنّه مصدر النص البرمجي، والقيمة "context-origin"
التي تضبط
مصدر ملف مشاركة البيانات على أنّه مصدر سياق التصفّح الذي يتمّ استخدامه للتشغيل. في أحد الإصدارات القادمة، نخطّط أيضًا لإتاحة مصادر تقسيم البيانات المخصّصة، حيث يمكن لنص برمجي لوحدة عمل الوصول إلى بيانات مساحة التخزين المشتركة من مصدر عشوائي عند الموافقة على ذلك.
عند تحميل نص برمجي من مصدر مختلف مع ضبط مصدر البيانات على "script-origin"
،
سيتضمّن طلب النص البرمجي المُرسَل من المتصفّح عنوانًا
"Sec-Shared-Storage-Data-Origin: <origin>"
. لتفعيل هذه الميزة، يجب أن يتضمّن النص البرمجي
أيضًا عنوان استجابة "Shared-Storage-Cross-Origin-Worklet-Allowed: ?1"
للموافقة.
How to use
إذا كنت تستخدِم حاليًا createWorklet()
مع مصدر النص البرمجي كمصدر تقسيم بيانات
الوحدة، يمكنك ضبط dataOrigin
على النحو التالي:
sharedStorage.createWorklet(scriptUrl, {dataOrigin: "script-origin"});
بما أنّ createWorklet()
تسمح بإنشاء قسم بيانات من مصادر متعددة و
إنشاء وحدات عمل متعددة، ننصحك بالانتقال إلى استخدام
createWorklet()
بدلاً من addModule()
.
لقد عدّلنا مستندات المطوّرين لتتضمّن هذه التغييرات وتقدّم المزيد من الإرشادات.
طلبات البحث المحفوظة باستخدام Select URL API في الإصدار 132 من Chrome
نحن بصدد طرح تعديلات على Select URL API مع "مساحة التخزين المشترَكة" في الإصدار 132 من Chrome مع إتاحة طلبات البحث المحفوظة.
التغييرات
تتضمّن Select URL API حاليًا ميزانيتَين لكل عملية تحميل صفحة تقيدان عدد طلبات البيانات التي يتم إجراؤها إلى واجهة برمجة التطبيقات عند كل عملية تحميل صفحة. نحن بصدد إتاحة إمكانية حفظ طلبات البحث وإعادة استخدامها لكل صفحة على حدة. عند استخدام طلب بحث محفوظ، يتم تحصيل الميزانيات لكل عملية تحميل صفحة في المرة الأولى التي يتم فيها تنفيذ طلب البحث المحفوظ، ولكن ليس لتنفيذ عمليات لاحقة من طلب البحث المحفوظ أثناء عملية تحميل الصفحة نفسها.
كيفية تنفيذ طلبات البحث المحفوظة
بدءًا من الإصدار 132 من Chrome، يمكنك استخدام المَعلمة savedQuery
في
خيارات selectURL()
مع اسم طلب البحث:
await sharedStorage.selectURL('experiment', urls, {
savedQuery: 'control_or_experiment',
keepAlive: true
});
استخدِم اسم savedQuery
نفسه لكلّ طلب بحث موجَّه إلى selectURL()
لضمان تحصيل رسوم طلبات البحث للمتابعة من الميزانية نفسها.
لقد عدّلنا المستندات
لتعكس هذه التغييرات ولتقديم تفاصيل إضافية حول وضع الميزانية لأجل
selectURL()
.
التفاعل مع الملاحظات ومشاركتها
يُرجى العِلم أنّ اقتراح Shared Storage API قيد المناقشة والتطوير بشكل نشط، وبالتالي يخضع للتغيير.
يسرّنا معرفة رأيك بشأن Shared Storage API.
- العرض: راجِع العرض التفصيلي.
- المناقشة: يمكنك الانضمام إلى المناقشة الجارية لطرح الأسئلة ومشاركة الإحصاءات.
الاطّلاع على آخر الأخبار
- القائمة البريدية: يمكنك الاشتراك في قائمتنا البريدية لتلقّي آخر الأخبار والإشعارات المتعلّقة بواجهة برمجة التطبيقات Shared Storage API.
هل أنت بحاجة إلى مساعدة؟
- دعم المطوّرين: يمكنك التواصل مع مطوّرين آخرين والحصول على إجابات عن أسئلتك في مستودع دعم المطوّرين في "مبادرة حماية الخصوصية".