مجموعات المواقع الإلكترونية ذات الصلة: دليل المطوِّر

مجموعات المواقع الإلكترونية ذات الصلة (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 لطلب الوصول إلى ملفات تعريف الارتباط هذه. قد يتعامل المتصفّح مع الطلب بشكل مختلف استنادًا إلى المجموعة الفرعية التي ينتمي إليها كل موقع إلكتروني.

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

تتطابق "مجموعات المواقع الإلكترونية المرتبطة" بشكل جيد مع الحالات التي تحتاج فيها المؤسسة إلى نموذج هوية مشتركة على مستوى مواقع إلكترونية مختلفة عالية المستوى.

في ما يلي بعض حالات استخدام مجموعات المواقع الإلكترونية المرتبطة:

  • تخصيص البلد: الاستفادة من المواقع الإلكترونية المترجَمة مع الاعتماد على بنية أساسية مشتركة (قد يعتمد example.co.uk على خدمة يستضيفها example.ca).
  • دمج نطاق الخدمة. الاستفادة من نطاقات الخدمة التي لا يتفاعل معها المستخدمون أبدًا بشكل مباشر، ولكنها توفر خدمات عبر المواقع الإلكترونية الخاصة بالمؤسسة نفسها (example-cdn.com).
  • فصل محتوى المستخدمين: الوصول إلى البيانات في نطاقات مختلفة تفصل المحتوى الذي يحمّله المستخدمون عن محتوى الموقع الإلكتروني الآخر لأسباب أمنية، مع السماح بوصول النطاق المحمي في وضع الحماية إلى ملفات تعريف الارتباط للمصادقة (وغيرها من ملفات تعريف الارتباط). إذا كنت تعرض محتوى غير نشط من تحميل المستخدمين، قد تتمكن أيضًا من استضافته بشكل آمن على النطاق نفسه باتّباع أفضل الممارسات.
  • تضمين المحتوى الذي تمت مصادقته إتاحة المحتوى المضمّن من جميع المواقع الإلكترونية التابعة (فيديوهات أو مستندات أو موارد تقتصر على المستخدم الذي سجّل الدخول إلى الموقع الإلكتروني ذي المستوى الأعلى)
  • تسجيل الدخول: إتاحة تسجيل الدخول على جميع المواقع التابعة قد تكون FedCM API مناسبة أيضًا لبعض حالات الاستخدام.
  • إحصاءات Google: تفعيل الإحصاءات وقياس تجارب المستخدمين في المواقع التابعة لتحسين جودة الخدمات

Storage Access API

دعم المتصفح

  • 119
  • 85
  • 65
  • 11.1

المصدر

توفّر واجهة 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

دعم المتصفح

  • 119
  • 119
  • x
  • x

المصدر

إنّ واجهة برمجة التطبيقات 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 مضمَّن من مصادر متعددة

مخطّط بياني يعرض موقعًا إلكترونيًا مضمّنًا في موقع إلكتروني على مستوى أعلى
استخدام requestStorageAccess() في محتوى مضمّن على موقع إلكتروني آخر

التحقّق من إمكانية الوصول إلى مساحة التخزين

لمعرفة ما إذا كان لديك إذن بالوصول إلى مساحة التخزين، يمكنك استخدام 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() على موقع إلكتروني من المستوى الأعلى وليس داخل عملية تضمين
استخدام requestStorageAccessFor() على موقع إلكتروني من المستوى الأعلى لمصدر مختلف

يمكن للمواقع الإلكترونية ذات المستوى الأعلى استخدام 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 باستخدام مجموعة المواقع الإلكترونية المرتبطة المعلَن عنها محليًا، أنشِئ كائن 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) من المواقع الإلكترونية التي يتم اختبارها والتحقّق من صحة الوصول إلى ملفات تعريف الارتباط على مواقع إلكترونية متعددة.

للإشارة إلى العلاقة بين النطاقات وتحديد المجموعة الفرعية التي تنتمي إليها، اتّبِع الخطوات التالية:

  1. حدِّد النطاقات ذات الصلة، بما في ذلك مجموعة المواقع الإلكترونية الأساسية وأعضاء المجموعة الذين سيكونون جزءًا من مجموعة المواقع الإلكترونية المرتبطة. حدِّد أيضًا نوع المجموعة الفرعية التي ينتمي إليها كل عضو في المجموعة.
  2. تأكَّد من استيفاء متطلبات الإعداد وتحديد متطلبات التحقّق.
  3. أعلِن عن مجموعة المواقع الإلكترونية المرتبطة بتنسيق JSON الصحيح.
  4. أرسِل مجموعة المواقع الإلكترونية المرتبطة من خلال إنشاء طلب سحب (PR) إلى related_website_sets.JSON حيث يستضيف Chrome قائمة مجموعة المواقع الإلكترونية المرتبطة الأساسية. (يلزم وجود حساب على GitHub لإنشاء إعلانات عامة، وعليك التوقيع على اتفاقية ترخيص المساهم (CLA) للمساهمة في القائمة.)

بعد إنشاء "PR"، ستُجرى سلسلة من الفحوصات للتحقق من استيفاء المتطلبات من الخطوة 2.

وفي حال نجاحها، سيشير مسؤول العلاقات العامة إلى اجتياز عمليات التحقق بنجاح. وسيتم دمج "إعلانات المنتجات العامة" الموافَق عليها يدويًا على دفعات في قائمة مجموعة المواقع الإلكترونية المرتبطة الأساسية مرة واحدة في الأسبوع (أيام الثلاثاء الساعة 12 ظهرًا بالتوقيت الشرقي).

وفي حالة عدم نجاح أي من عمليات الفحص، سيتم إشعار مقدم الشكوى بفشل PR على GitHub. يمكن لمرسِل الشكوى إصلاح الأخطاء وتعديل "PR"، مع مراعاة ما يلي:

  • عند تعذُّر إطلاق "PR"، ستظهر رسالة خطأ تتضمّن معلومات إضافية عن سبب تعذّر الإرسال (مثال).
  • تُجرى جميع عمليات التحقق الفنية التي تحكم عمليات إرسال المجموعات على GitHub، وبالتالي ستكون جميع أعطال الإرسال الناتجة عن الفحوصات الفنية قابلة للعرض على 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]}

"طلب من المستخدم" و"إيماءة المستخدم"

"طلب من المستخدم" و"إيماءة المستخدم" أشياء مختلفة. لن يعرض 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.

للانضمام إلى مناقشات حول مجموعات المواقع الإلكترونية المرتبطة: