مجموعات المواقع الإلكترونية ذات الصلة (RWS) هي آلية لمنصّة الويب تساعد المتصفّحات في فهم العلاقات بين مجموعة من النطاقات. يتيح ذلك للمتصفّحات اتخاذ قرارات رئيسية لتفعيل وظائف معيّنة على الموقع الإلكتروني (مثل السماح بالوصول إلى ملفات تعريف الارتباط على مواقع إلكترونية متعددة) وعرض هذه المعلومات للمستخدمين.
بما أنّ Chrome يوقف نهائيًا ملفات تعريف الارتباط التابعة لجهات خارجية، يتمثّل هدفه في الحفاظ على حالات الاستخدام الرئيسية على الويب مع تحسين الخصوصية للمستخدمين. على سبيل المثال، تعتمد العديد من المواقع الإلكترونية على نطاقات متعدّدة لتقديم تجربة مستخدم واحدة. قد ترغب المؤسسات في الاحتفاظ بنطاقات مستوى أعلى مختلفة لحالات استخدام متعددة، مثل النطاقات الخاصة ببلدان معيّنة أو نطاقات الخدمة لاستضافة الصور أو الفيديوهات. تسمح ميزة Related Website Sets للمواقع الإلكترونية بمشاركة البيانات بين النطاقات، باستخدام عناصر تحكّم محدّدة.
ما هي مجموعة المواقع الإلكترونية المرتبطة؟
على مستوى عالٍ، فإن مجموعة مواقع الويب المرتبطة عبارة عن مجموعة من النطاقات التي يتوفر لها "مجموعة مواقع إلكترونية مرتبطة" وربما "أعضاء المجموعة" المتعددون.
في المثال التالي، يسرد primary
النطاق الأساسي، ويسرد associatedSites
النطاقات التي تستوفي متطلبات المجموعة الفرعية المرتبطة.
{
"primary": "https://primary.com",
"associatedSites": ["https://associate1.com", "https://associate2.com", "https://associate3.com"]
}
قائمة "مجموعات المواقع الإلكترونية المرتبطة الأساسية" هي قائمة يمكن للجميع مشاهدتها بتنسيق ملف JSON ومستضاف في مستودع "مجموعات المواقع الإلكترونية المرتبطة" في GitHub، وهي بمثابة مصدر الحقيقة لجميع المجموعات. يستهلك Chrome هذا الملف لتطبيقه على سلوكه.
يمكن فقط للأشخاص الذين يملكون تحكّمًا إداريًا في نطاق إنشاء مجموعة بهذا النطاق. على المرسلين الإفصاح عن العلاقة بين كل "عضو في المجموعة" إلى "تعيينه الأساسي". يمكن أن يتضمّن أعضاء المجموعة مجموعة من أنواع النطاقات المختلفة ويجب أن يكونوا جزءًا من مجموعة فرعية تستند إلى حالة استخدام.
إذا كان تطبيقك يعتمد على الوصول إلى ملفات تعريف الارتباط على مواقع إلكترونية متعددة (تُعرف أيضًا باسم ملفات تعريف الارتباط التابعة لجهات خارجية) على جميع المواقع الإلكترونية ضمن مجموعة المواقع الإلكترونية المرتبطة نفسها، يمكنك استخدام واجهة برمجة التطبيقات Storage Access API (SAA) وrequestStorageAccessFor API لطلب الوصول إلى ملفات تعريف الارتباط هذه. قد يتعامل المتصفّح مع الطلب بشكل مختلف استنادًا إلى المجموعة الفرعية التي ينتمي إليها كل موقع إلكتروني.
لمزيد من المعلومات حول عملية ومتطلبات إرسال المجموعات، يمكنك الاطلاع على إرشادات الإرسال. وستخضع المجموعات التي يتم إرسالها إلى العديد من عمليات الفحص الفنية للتحقق من صحة عمليات الإرسال.
حالات استخدام ميزة Related Website Sets
تتطابق "مجموعات المواقع الإلكترونية المرتبطة" بشكل جيد مع الحالات التي تحتاج فيها المؤسسة إلى نموذج هوية مشتركة على مستوى مواقع إلكترونية مختلفة عالية المستوى.
في ما يلي بعض حالات استخدام مجموعات المواقع الإلكترونية المرتبطة:
- تخصيص البلد: الاستفادة من المواقع الإلكترونية المترجَمة مع الاعتماد على بنية أساسية مشتركة (قد يعتمد example.co.uk على خدمة يستضيفها example.ca).
- دمج نطاق الخدمة. الاستفادة من نطاقات الخدمة التي لا يتفاعل معها المستخدمون أبدًا بشكل مباشر، ولكنها توفر خدمات عبر المواقع الإلكترونية الخاصة بالمؤسسة نفسها (example-cdn.com).
- فصل محتوى المستخدمين: الوصول إلى البيانات في نطاقات مختلفة تفصل المحتوى الذي يحمّله المستخدمون عن محتوى الموقع الإلكتروني الآخر لأسباب أمنية، مع السماح بوصول النطاق المحمي في وضع الحماية إلى ملفات تعريف الارتباط للمصادقة (وغيرها من ملفات تعريف الارتباط). إذا كنت تعرض محتوى غير نشط من تحميل المستخدمين، قد تتمكن أيضًا من استضافته بشكل آمن على النطاق نفسه باتّباع أفضل الممارسات.
- تضمين المحتوى الذي تمت مصادقته إتاحة المحتوى المضمّن من جميع المواقع الإلكترونية التابعة (فيديوهات أو مستندات أو موارد تقتصر على المستخدم الذي سجّل الدخول إلى الموقع الإلكتروني ذي المستوى الأعلى)
- تسجيل الدخول: إتاحة تسجيل الدخول على جميع المواقع التابعة قد تكون FedCM API مناسبة أيضًا لبعض حالات الاستخدام.
- إحصاءات Google: تفعيل الإحصاءات وقياس رحلات المستخدمين في المواقع التابعة لتحسين جودة الخدمات
تفاصيل دمج ميزة Related Website Sets
Storage Access API
توفّر واجهة Storage Access API (SAA) طريقةً للمحتوى المضمّن من مصادر متعددة للوصول إلى مساحة التخزين التي لا يمكن عادةً الوصول إليها إلا في سياق الطرف الأول.
يمكن للموارد المضمّنة استخدام طرق SAA للتحقّق مما إذا كان يمكنها الوصول حاليًا إلى مساحة التخزين ولطلب الوصول من وكيل المستخدم.
عند حظر ملفات تعريف الارتباط التابعة لجهات خارجية مع تفعيل مجموعات المواقع الإلكترونية المرتبطة (RWS)، سيمنح Chrome إذنًا تلقائيًا في سياقات ضمن RWS، وسيعرض طلبًا للمستخدم بخلاف ذلك. ("سياق ضمن RWS" هو سياق، مثل إطار iframe، يكون موقعه الإلكتروني المضمّن وموقعه الإلكتروني ذو المستوى الأعلى ضمن RWS نفسه).
التحقق من مساحة التخزين وطلب إذن الوصول إليها
لمعرفة ما إذا كان بإمكان المواقع الإلكترونية المضمَّنة الوصول إلى مساحة التخزين حاليًا، يمكن استخدام طريقة Document.hasStorageAccess()
.
تعرض الطريقة وعدًا يتطابق مع قيمة منطقية تشير إلى ما إذا كان المستند لديه إذن الوصول إلى ملفات تعريف الارتباط أم لا. يعرض الوعد أيضًا القيمة "صحيح" إذا كان إطار iframe من أصل الإطار نفسه.
لطلب الوصول إلى ملفات تعريف الارتباط في سياق مواقع إلكترونية متعددة، يمكن استخدام Document.requestStorageAccess()
(rSA).
من المفترض أن يتم طلب واجهة برمجة التطبيقات requestStorageAccess()
من داخل إطار iframe. يجب أن يكون إطار iframe هذا قد تلقّى تفاعل المستخدم للتو (إيماءة مستخدم، مطلوبة من جميع المتصفحات)، إلا أن Chrome يتطلب أيضًا ذلك في مرحلة ما خلال آخر 30 يومًا، أن يكون المستخدم قد زار الموقع الإلكتروني الذي يمتلك إطار iframe هذا وتفاعل معه الموقع الإلكتروني تحديدًا، كمستند عالي المستوى، وليس في إطار iframe.
يرسل requestStorageAccess()
وعدًا يتم حله إذا تم منح إذن الوصول إلى مساحة التخزين. تم رفض الوعد مع ذكر السبب في حال رفض الوصول لأي سبب.
requestStorageAccessFor في Chrome
إنّ واجهة برمجة التطبيقات Storage Access API تسمح فقط للمواقع الإلكترونية المضمَّنة بطلب الوصول إلى مساحة التخزين من داخل عناصر <iframe>
التي تلقّت تفاعلاً من المستخدم.
وهذا يفرض تحديات في استخدام واجهة برمجة التطبيقات Storage Access مع المواقع الإلكترونية ذات المستوى الأعلى التي تستخدم صورًا من مواقع إلكترونية متعددة أو علامات نصوص برمجية تتطلّب ملفات تعريف الارتباط.
لمعالجة هذه المشكلة، نفَّذ Chrome طريقة للمواقع الإلكترونية ذات المستوى الأعلى لطلب إذن بالوصول إلى مساحة التخزين نيابةً عن مصادر معيّنة باستخدام Document.requestStorageAccessFor()
(rSAFor).
document.requestStorageAccessFor('https://target.site')
من المفترض أن يتم استدعاء واجهة برمجة التطبيقات requestStorageAccessFor()
بواسطة مستند المستوى الأعلى. كما يجب أن يكون هذا المستند قد تلقى تفاعل مستخدم للتو. ولكن على عكس requestStorageAccess()
، لا يتحقّق Chrome من حدوث تفاعل في مستند من المستوى الأعلى خلال آخر 30 يومًا لأنّ المستخدم يكون على الصفحة.
التحقّق من أذونات الوصول إلى مساحة التخزين
يعتمد الوصول إلى بعض ميزات المتصفّح، مثل الكاميرا أو الموقع الجغرافي، على الأذونات التي يمنحها المستخدم. توفّر واجهة Permissions API طريقة للتحقّق من حالة الإذن الخاص بالوصول إلى واجهة برمجة تطبيقات، سواء تم منحها أو رفضها أو كانت تتطلّب تفاعل المستخدم، مثل النقر على طلب أو التفاعل مع الصفحة.
يمكنك طلب معلومات عن حالة الإذن باستخدام navigator.permissions.query()
.
للتحقّق من إذن الوصول إلى مساحة التخزين للسياق الحالي، عليك تمريره في سلسلة 'storage-access'
:
navigator.permissions.query({name: 'storage-access'})
للتحقّق من إذن الوصول إلى مساحة التخزين لمصدر محدّد، يجب ضبط إذن الوصول إلى مساحة التخزين في سلسلة 'top-level-storage-access'
:
navigator.permissions.query({name: 'top-level-storage-access', requestedOrigin: 'https://target.site'})
يُرجى العِلم أنّه لحماية سلامة المصدر المضمّن، يتم فقط التحقّق من الأذونات التي تم منحها في مستند المستوى الأعلى باستخدام document.requestStorageAccessFor
.
استنادًا إلى ما إذا كان من الممكن منح الإذن تلقائيًا أو إذا كان يتطلّب استخدام إيماءة المستخدم، سيتم عرض prompt
أو granted
.
نموذج حسب الإطار
تنطبق مِنح الإعلانات المتجاوبة على شبكة البحث على كل إطار. يتم التعامل مع منح rSA وrSAFor كأذونات منفصلة.
سيحتاج كل إطار جديد إلى طلب إذن بالوصول إلى مساحة التخزين بشكل فردي وسيتم منحه إذن الوصول تلقائيًا. يتطلّب الطلب الأول فقط إيماءة المستخدِم، أي أنّ أي طلبات لاحقة يبدأها إطار iframe، مثل التنقّل أو الموارد الفرعية، لن تحتاج إلى انتظار إيماءة المستخدِم، لأنّه سيمنحها الطلب لجلسة التصفّح.
إنّ إعادة تحميل إطار iframe أو إعادة تحميله أو إعادة إنشائه ستتطلب طلب الوصول مرة أخرى.
متطلبات ملفات تعريف الارتباط
يجب أن تحدّد ملفات تعريف الارتباط كلاً من السمتَين SameSite=None
وSecure
على أنّهما rSA فقط لا يوفّر إمكانية الوصول إلى ملفات تعريف الارتباط التي تم وضع علامة عليها لاستخدامها في سياقات مواقع إلكترونية متعددة.
إنّ ملفات تعريف الارتباط التي تتضمّن SameSite=Lax
أو SameSite=Strict
أو بدون السمة SameSite
تكون مخصّصة للاستخدام لدى الطرف الأول فقط، ولن تتم مشاركتها أبدًا في سياق مواقع إلكترونية متعددة بغض النظر عن الإعلانات المتجاوبة على شبكة البحث.
الأمان
بالنسبة إلى نموذج rSAFor، تتطلّب طلبات الموارد الفرعية عناوين مشاركة الموارد المتعدّدة المصادر (CORS) أو سمة crossorigin
على الموارد، ما يضمن الموافقة الصريحة على ذلك.
أمثلة على التنفيذ
طلب الوصول إلى مساحة التخزين من إطار iframe مضمَّن من مصادر متعددة
التحقّق من إمكانية الوصول إلى مساحة التخزين
لمعرفة ما إذا كان لديك إذن بالوصول إلى مساحة التخزين، يمكنك استخدام document.hasStorageAccess()
.
وإذا تبيّن أنّ الوعد انتهى، يمكنك الوصول إلى مساحة التخزين في سياق مواقع إلكترونية متعددة. إذا تم حلّ المشكلة عن طريق الخطأ، ستحتاج إلى طلب الوصول إلى مساحة التخزين.
document.hasStorageAccess().then((hasAccess) => {
if (hasAccess) {
// You can access storage in this context
} else {
// You have to request storage access
}
});
طلب الوصول إلى مساحة التخزين
إذا أردت طلب الوصول إلى مساحة التخزين، تحقّق أولاً من إذن الوصول إلى مساحة التخزين navigator.permissions.query({name: 'storage-access'})
لمعرفة ما إذا كان ذلك يتطلّب استخدام إيماءة المستخدم أو أنّه يمكن منحه تلقائيًا.
إذا كان الإذن "granted
"، يمكنك طلب الرقم "document.requestStorageAccess()
" وسيتم إكماله بدون استخدام إيماءة مستخدم.
إذا كانت حالة الإذن هي "prompt
"، يجب بدء طلب "document.requestStorageAccess()
" بعد استخدام إيماءة المستخدم، مثلاً عند النقر على زر.
مثال:
navigator.permissions.query({name: 'storage-access'}).then(res => {
if (res.state === 'granted') {
// Permission has already been granted
// You can request storage access without any user gesture
rSA();
} else if (res.state === 'prompt') {
// Requesting storage access requires user gesture
// For example, clicking a button
const btn = document.createElement("button");
btn.textContent = "Grant access";
btn.addEventListener('click', () => {
// Request storage access
rSA();
});
document.body.appendChild(btn);
}
});
function rSA() {
if ('requestStorageAccess' in document) {
document.requestStorageAccess().then(
(res) => {
// Use storage access
},
(err) => {
// Handle errors
}
);
}
}
أمّا الطلبات اللاحقة التي تأتي من الإطار أو عناصر التنقّل أو الموارد الفرعية، فستحصل تلقائيًا على إذن بالوصول إلى ملفات تعريف الارتباط على مواقع إلكترونية متعددة. تعرض الدالة hasStorageAccess()
ملفات تعريف الارتباط "صحيحة" وتلك الخاصة بمواقع إلكترونية متعددة من مجموعة المواقع الإلكترونية المرتبطة نفسها، بناءً على تلك الطلبات بدون أي استدعاءات JavaScript إضافية.
المواقع الإلكترونية ذات المستوى الأعلى التي تطلب الوصول إلى ملفات تعريف الارتباط نيابةً عن المواقع الإلكترونية المتعددة المصادر
يمكن للمواقع الإلكترونية ذات المستوى الأعلى استخدام requestStorageAccessFor()
لطلب الوصول إلى مساحة التخزين نيابةً عن مصادر معيّنة.
يتحقّق hasStorageAccess()
فقط مما إذا كان للموقع الإلكتروني الذي يتصل به إذن الوصول إلى مساحة التخزين، لذا يمكن لموقع إلكتروني ذي المستوى الأعلى التحقّق من الأذونات المتعلقة بمصدر آخر.
لمعرفة ما إذا كان سيُطلَب من المستخدم أو إذا كان قد تم منح إذن الوصول إلى مساحة التخزين إلى مصدر محدّد، يمكنك الاتصال بالرقم navigator.permissions.query({name: 'top-level-storage-access', requestedOrigin: 'https://target.site'})
.
إذا كان الإذن granted
، يمكنك الاتصال بـ document.requestStorageAccessFor('https://target.site')
. من المفترض أن يتم نجاح العملية بدون إيماءة مستخدم.
إذا كان الإذن "prompt
"، يجب تثبيت استدعاء "document.requestStorageAccessFor('https://target.site')
" من خلال إيماءة المستخدم، مثلاً عند النقر على زر.
مثال:
navigator.permissions.query({name:'top-level-storage-access',requestedOrigin: 'https://target.site'}).then(res => {
if (res.state === 'granted') {
// Permission has already been granted
// You can request storage access without any user gesture
rSAFor();
} else if (res.state === 'prompt') {
// Requesting storage access requires user gesture
// For example, clicking a button
const btn = document.createElement("button");
btn.textContent = "Grant access";
btn.addEventListener('click', () => {
// Request storage access
rSAFor();
});
document.body.appendChild(btn);
}
});
function rSAFor() {
if ('requestStorageAccessFor' in document) {
document.requestStorageAccessFor().then(
(res) => {
// Use storage access
},
(err) => {
// Handle errors
}
);
}
}
بعد استدعاء requestStorageAccessFor()
ناجح، ستتضمّن الطلبات من مواقع إلكترونية متعددة ملفات تعريف الارتباط في حال كانت تتضمّن سياسة مشاركة الموارد المتعددة المصادر (CORS) أو السمة المشتركة المصدر، لذا قد تحتاج المواقع الإلكترونية إلى الانتظار قبل إرسال طلب.
ويجب أن تستخدم الطلبات الخيار credentials: 'include'
ويجب أن تتضمّن الموارد السمة crossorigin="use-credentials"
.
function checkCookie() {
fetch('https://related-website-sets.glitch.me/getcookies.json', {
method: 'GET',
credentials: 'include'
})
.then((response) => response.json())
.then((json) => {
// Do something
});
}
كيفية الاختبار محليًا
المتطلبات الأساسية
لاختبار مجموعات المواقع الإلكترونية المرتبطة محليًا، يمكنك استخدام الإصدار 119 من Chrome أو إصدار أحدث الذي يتم تشغيله من سطر الأوامر وتفعيل علامة Chrome test-third-party-cookie-phaseout
.
تفعيل ميزة علامة Chrome
لتفعيل علامة Chrome اللازمة، انتقِل إلى chrome://flags#test-third-party-cookie-phaseout
من شريط العناوين وغيِّر العلامة إلى Enabled
. تأكَّد من إعادة تشغيل المتصفّح بعد تغيير العلامات.
تشغيل Chrome باستخدام مجموعة "مواقع إلكترونية مرتبطة" محلية
لتشغيل Chrome باستخدام مجموعة المواقع الإلكترونية المرتبطة المعلَن عنها محليًا، أنشِئ كائن JSON يحتوي على عناوين URL تندرج ضمن مجموعة ومرِّره إلى --use-related-website-set
.
تعرّف على مزيد من المعلومات حول كيفية تشغيل Chromium مع العلامات.
--use-related-website-set="{\"primary\": \"https://related-website-sets.glitch.me\", \"associatedSites\": [\"https://rws-member-1.glitch.me\"]}" \
https://related-website-sets.glitch.me/
مثال
لتفعيل "مجموعات المواقع الإلكترونية المرتبطة" محليًا، يجب تفعيل test-third-party-cookie-phaseout
في chrome://flags
وتشغيل Chrome من سطر الأوامر الذي يتضمّن العلامة --use-related-website-set
مع تضمين كائن JSON في عناوين URL الخاصة بأعضاء مجموعة.
--use-related-website-set="{\"primary\": \"https://related-website-sets.glitch.me\", \"associatedSites\": [\"https://rws-member-1.glitch.me\"]}" \
https://related-website-sets.glitch.me/
التحقّق من إمكانية وصولك إلى ملفات تعريف الارتباط على مواقع إلكترونية متعددة
يمكنك استدعاء واجهات برمجة التطبيقات (rSA أو rSAFor) من المواقع الإلكترونية التي يتم اختبارها والتحقّق من صحة الوصول إلى ملفات تعريف الارتباط على مواقع إلكترونية متعددة.
عملية إرسال ميزة Related Website Sets
يُرجى اتخاذ الخطوات التالية للإعلان عن العلاقة بين النطاقات تحديد المجموعة الفرعية التي تكون جزءًا منها.
1. تحديد RWS
حدِّد النطاقات ذات الصلة، بما في ذلك تعيين المجموعة الأساسية وأعضاء المجموعة. التي ستكون جزءًا من مجموعة المواقع الإلكترونية المرتبطة. حدد أيضًا subset type التي ينتمي إليها كل عضو في المجموعة.
2. إنشاء محتوى RWS المُرسَل
إنشاء نسخة محلية (نسخة أو شوكة) من الملف مستودع GitHub. في فرع جديد، أجرِ التغييرات على related_website_sets.JSON ملف ليعكس مجموعتك. للتأكد من أن المجموعة تتضمن تنسيق JSON الصحيح يمكنك استخدام أداة إنشاء ملفات JSON.
3- التأكّد من أنّ RWS يستوفي المتطلبات الفنية
تأكَّد من أنّ تحديد متطلبات التكوين أو ضبط متطلبات التحقّق مكانها الصحيح.
4. اختبار RWS محليًا
قبل إنشاء طلب سحب (PR) لإرسال مجموعتك، يجب اختبار ما أرسلته محليًا للتأكد من اجتيازه لجميع عمليات التحقق المطلوبة.
5- إرسال RWS
أرسل مجموعة مواقع الويب المرتبطة من خلال إنشاء مسؤول العلاقات العامة إلى related_website_sets.JSON حيث يستضيف Chrome قائمة مجموعة مواقع الويب المرتبطة الأساسية. (GitHub لإنشاء إعلانات العلاقات العامة، وعليك توقيع اتفاقية ترخيص المساهمين (CLA) قبل التمكّن من المساهمة في القائمة).
بمجرد إنشاء مسؤول العلاقات العامة، تكتمل سلسلة من الفحوصات
تأكد من تنفيذ المتطلبات من الخطوة 3، مثل التأكد من أنك
وقّعت على اتفاقية CLA وأنّ ملف .well-known
صالح.
وفي حال نجاحها، سيشير مسؤول العلاقات العامة إلى اجتياز عمليات التحقق بنجاح. العلاقات العامة الموافَق عليها سيتم دمجها يدويًا على دفعات في قائمة "مجموعة المواقع الإلكترونية المرتبطة" الأساسية مرة في الأسبوع (أيام الثلاثاء الساعة 12 ظهرًا بالتوقيت الشرقي). وفي حال عدم اجتياز أي من عمليات الفحص، سيتم إشعار مقدّم الطلب بتعذُّر إثبات الملكية. على GitHub. يمكن لمرسل الأخطاء إصلاح الأخطاء وتحديث "PR"، مع مراعاة الذي:
- في حالة فشل مسؤول العلاقات العامة، ستقدم رسالة الخطأ معلومات إضافية. حول سبب تعذّر الإرسال. (مثال).
- يتم إجراء جميع عمليات التحقق الفنية التي تحكم عمليات إرسال المجموعات على GitHub، وبالتالي جميع إخفاقات الإرسال الناتجة عن عمليات التحقق الفنية سيكون قابلاً للعرض على جيت هب.
سياسات Enterprise
يتّبع Chrome سياستين لتلبية احتياجات مستخدمي الإصدار الخاص بالمؤسسات:
- بالنسبة إلى الأنظمة التي قد لا تتمكّن من التكامل مع مجموعات المواقع الإلكترونية المرتبطة، يمكنها إيقاف ميزة "مجموعات المواقع الإلكترونية المرتبطة" في جميع نُسخ Chrome الخاصة بالمؤسسات، وذلك من خلال سياسة
RelatedWebsiteSetsEnabled
. - تتضمن بعض أنظمة المؤسسات مواقع داخلية فقط (مثل شبكة داخلية) ذات نطاقات قابلة للتسجيل تختلف عن النطاقات في مجموعة المواقع الإلكترونية المرتبطة. في حال الحاجة إلى التعامل مع هذه المواقع الإلكترونية كجزء من مجموعة المواقع الإلكترونية المرتبطة بدون الكشف عنها علنًا (لأنّ النطاقات قد تكون سرية)، يمكنهم زيادة قائمة "مجموعات المواقع الإلكترونية المرتبطة" المتاحة للجميع أو إلغاؤها باستخدام سياسة
RelatedWebsiteSetsOverrides
.
يحل Chrome أي تقاطع بين المجموعات العامة ومجموعات المؤسسات في إحدى الحالتَين
اعتمادًا على ما إذا تم تحديد replacemements
أو additions
.
على سبيل المثال، للمجموعة العامة {primary: A, associated: [B, C]}
:
replacements : |
{primary: C, associated: [D, E]} |
تستوعب مجموعة المؤسسات الموقع الإلكتروني الشائع لتكوين مجموعة جديدة. | |
المجموعات الناتجة: | {primary: A, associated: [B]} {primary: C, associated: [D, E]} |
additions : |
{primary: C, associated: [D, E]} |
يتم دمج المجموعات العامة مع المجموعات Enterprise. | |
المجموعة الناتجة: | {primary: C, associated: [A, B, D, E]} |
تحديد وحلّ المشاكل في ميزة Related Website Sets
"طلب من المستخدم" و"إيماءة المستخدم"
"طلب من المستخدم" و"إيماءة المستخدم" أشياء مختلفة. لن يعرض Chrome
طلب الإذن
للمستخدمين بالنسبة إلى المواقع الإلكترونية الموجودة في مجموعة المواقع الإلكترونية المرتبطة نفسها، ولكن لا يزال Chrome
أن يتفاعل المستخدم مع الصفحة. قبل منح الإذن،
يتطلب Chrome
إيماءة المستخدم،
يسمى أيضًا "تفاعل المستخدم" أو "تفعيل المستخدم". وذلك لأن استخدام
واجهة برمجة التطبيقات Storage Access خارج سياق مجموعة المواقع الإلكترونية المرتبطة (تحديدًا
requestStorageAccess()
) أيضًا استخدام إيماءة المستخدم، بسبب
مبادئ تصميم منصة الويب
الوصول إلى المواقع الإلكترونية الأخرى ملفات تعريف الارتباط أو مساحة التخزين
لا تدمج ميزة "مجموعات المواقع الإلكترونية المرتبطة" مساحة التخزين لمواقع إلكترونية مختلفة، بل تسمح فقط بدمج مساحة التخزين
مكالمات requestStorageAccess()
أسهل (بدون طلب) موقع إلكتروني مرتبط
تساعد فقط على الحد من الصعوبات التي يواجهها المستخدم نتيجة استخدام واجهة برمجة تطبيقات Storage Access
تحديد ما يجب فعله بعد استعادة إمكانية الوصول. إذا كان "أ" و"ب" موقعَين مختلفَين
في نفس مجموعة المواقع الالكترونية المرتبطة، والتضمينات أ، ب يمكنها استدعاء
يمكنك requestStorageAccess()
والوصول إلى مساحة تخزين الطرف الأول بدون طلب.
المستخدم. لا تُجري ميزة Related Website Sets أي اتصال بين المواقع الإلكترونية. بالنسبة
مثلاً، لن يتسبب إعداد مجموعة مواقع إلكترونيّة مرتبطة
في تخزين ملفات تعريف الارتباط
إلى B لبدء إرسالها إلى A. إذا كنت
تريد مشاركة تلك البيانات، فسيتعين عليك مشاركتها بنفسك، على سبيل المثال عن طريق
إرسال window.postMessage
من إطار iframe من B إلى إطار iframe
إطار.
الوصول التلقائي إلى ملفات تعريف الارتباط غير المقسَّمة
لا تسمح مجموعات المواقع الإلكترونية المرتبطة بالوصول الضمني غير المقسّم إلى ملفات تعريف الارتباط
بدون استدعاء أي واجهة برمجة تطبيقات. عدم إتاحة ملفات تعريف الارتباط على مواقع إلكترونية متعددة
تلقائيًا داخل المجموعة تسمح مجموعات مواقع الويب المرتبطة
بالمواقع ضمن المجموعة
تخطّي طلب إذن واجهة برمجة التطبيقات Storage Access.
يجب أن يستدعي إطار iframe document.requestStorageAccess()
إذا كان يريد الوصول إلى
ملفات تعريف الارتباط، أو يمكن أن تطلب صفحة المستوى الأعلى استدعاء document.requestStorageAccessFor()
.
مشاركة الملاحظات
يمكنك مشاركة تجربتك مع العملية وأي مشاكل تواجهها من خلال إرسال مجموعة على GitHub والعمل مع واجهة برمجة التطبيقات Storage Access وواجهة برمجة التطبيقات requestStorageAccessFor
.
للانضمام إلى مناقشات حول مجموعات المواقع الإلكترونية المرتبطة:
- انضم إلى القائمة البريدية العامة لميزة Related Website Sets.
- يمكنك الإبلاغ عن المشاكل ومتابعتها في مستودع GitHub الخاص بمجموعات المواقع الإلكترونية ذات الصلة.