النوافذ المنبثقة المقسّمة: نهج جديد للنوافذ المنبثقة على الويب في الفترة التجريبية للمطوّرين

اعتبارًا من الإصدار 132 من Chrome، يمكن للمطوّرين المشاركة في إصدار تجريبي للمطوّرين لنهج جديد لنوافذ المنبثقة على الويب: النوافذ المنبثقة المقسّمة. تتوفّر هذه الفترة التجريبية للمطوّرين على أجهزة الكمبيوتر المكتبي فقط، ولا تتوفّر الميزة بعد على أجهزة Android.

النوافذ المنبثقة المقسّمة هي نوع جديد من النوافذ المنبثقة المصمّمة للتفاعلات قصيرة الأجل، مثل عمليات تسجيل الدخول أو تأكيدات سريعة. ويحمِّل محتوى الويب باستخدام ميزتَين فريدتَين:

لماذا نحتاج إلى النوافذ المنبثقة المقسّمة؟

تم تصميم النوافذ المنبثقة المقسّمة للحفاظ على خصائص الخصوصية لإطار DIV مقسّم وخصائص الأمان للنوافذ المنبثقة.

مع زيادة عدد المستخدِمين الذين يوافقون على التصفّح بدون ملفات تعريف الارتباط التابعة لجهات خارجية، قد تتوقّف عمليات المعالجة التي تعتمد على تخزين البيانات في نافذة منبثقة لاستردادها في سياق تابع لجهة خارجية لاحقًا (مثل الحفاظ على جلسة المستخدِم على مستوى المواقع الإلكترونية). تهدف ميزة "المنبثقة المقسّمة" إلى معالجة هذه المشكلة.

كيف تعمل النوافذ المنبثقة المقسّمة؟

يتم تقسيم مساحة تخزين النافذة المنبثقة المقسّمة إلى قسمين، أحدهما للمستخدم الذي فتح النافذة. يحدّ تقسيم مساحة التخزين من الوصول إلى البيانات على مستوى المواقع الإلكترونية، ما يقلل من مخاطر التتبّع وحملات هجوم حقن النصوص البرمجية. اطّلِع على كيفية تقسيم مساحة التخزين في المستندات.

لنفترض أنّ موقعًا إلكترونيًا على opener.example يتضمّن محتوى من third-party.example. لعرض محتوى مخصّص على opener.example، يجب أن تسجيل الدخول إلى third-party.example. عندما يتم حظر ملفات تعريف الارتباط التابعة لجهات خارجية في متصفّح المستخدم، يكون المسار الحالي للنوافذ المنبثقة على النحو التالي:

  1. ينقر المستخدم على زر تسجيل الدخول.
  2. سيظهر لك مربّع حوار.
  3. يسجّل المستخدم الدخول من سياق المستوى الأعلى من third-party.example، ويتم كتابة ملف تعريف ارتباط مصادقة غير مقسَّم.
  4. لا يمكن لمحتوى third-party.example المضمّن في opener.example الوصول إلى ملفات تعريف الارتباط ذات المستوى الأعلى المكتوبة على third-party.example عند عرضه في سياق الطرف الأول. ويحدث ذلك لأنّ ملف تعريف الارتباط للمصادقة غير مقسّم، وبالتالي فهو ملف تعريف اتّصال تابع لجهة خارجية.
مسار مصادقة مستخدم في نافذة منبثقة يتم فيه تضمين إطار iframe من "third-party.example" في "opener.example"، ويتم فتح "third-party.example" في نافذة منبثقة. لا يمكن للإطار المتداخل iframe الوصول إلى ملف تعريف الارتباط غير المقسّم الخاص به، لأنّه تم ضبط ملف تعريف الارتباط في سياق المستوى الأعلى من النافذة المنبثقة "third-party.example".
مسار النافذة المنبثقة: لا يمكن لإطار iframe في third-party.example المضمّن في opener.example الوصول إلى مجموعة ملفات تعريف الارتباط غير المقسّمة الخاصة به في سياق المستوى الأعلى من النافذة المنبثقة third-party.example.

يتم تقسيم مساحة تخزين النافذة المنبثقة المقسّمة إلى النافذة المنبثقة. يؤدي ذلك إلى تغيير الخطوات 3 و4 من مسارات الإحالات الناجحة:

  1. يسجّل المستخدم الدخول من سياق المستوى الأعلى من third-party.example. بما أنّه يتم فتحه في نافذة منبثقة مقسّمة، يتم تقسيم مساحة التخزين باستخدام opener.example.

  2. يمكن لمحتوى third-party.example المضمّن في opener.example الوصول إلى ملف تعريف الارتباط الخاص به الذي تم ضبطه في النافذة المنبثقة، لأنّهما يتشاركان مساحة التخزين المقسّمة نفسها.

مسار مصادقة مستخدم منبثق مُقسَّم يتم فتح نافذة منبثقة من "third-party.example" على "opener.example". يمكن لإطار iframe ضمن النافذة المنبثقة هذه الوصول إلى ملفات تعريف الارتباط التي تم ضبطها من خلال سياق المستوى الأعلى "third-party.example".
مسار النوافذ المنبثقة المقسّمة: يمكن لإطار iframe في third-party.example المضمّن في opener.example الوصول إلى ملف تعريف الارتباط المقسّم الخاص به الذي تم ضبطه في سياق المستوى الأعلى للنافذة المنبثقة third-party.example، لأنّ ملف تعريف الارتباط مقسّم حسب opener.example.

تهدف النوافذ المنبثقة المقسّمة إلى مساعدة المستخدم في فهم أنّ النافذة المنبثقة مرتبطة بالصفحة التي فتحتها:

  • عندما ينتقل المستخدم إلى علامة تبويب أخرى، يصبح النافذة المنبثقة تلقائيًا غير مرئية وغير قابلة للوصول إليها، بالطريقة نفسها التي تظهر بها النافذة المنبثقة فقط عندما تكون علامة التبويب المفتوحة نشطة.
  • عندما يعود المستخدم إلى علامة التبويب التي فتحت التطبيق، يتم عرض النافذة المنبثقة مرة أخرى.
  • لا يمكن للمستخدم إجراء تغييرات في شريط عناوين المتصفّح للنافذة المنبثقة.
تقسيم مساحة التخزين باستخدام النوافذ المنبثقة المقسّمة: يمكن لإطار iframe المضمّن في الصفحة التي تفتح النافذة المنبثقة الوصول إلى مساحة التخزين المحدّدة في النافذة المنبثقة.

جرّبه الآن

يقدّم الإصدار 132 من Chrome إصدارًا تجريبيًا للمطوّرين لميزة "المنبثقات المقسّمة". وهذا يعني أنّ الميزة ستكون متاحة بعد تفعيل علامة. في ما يلي كيفية تجربة ملفّات البوبين التي تم تقسيمها:

  1. تأكَّد من استخدام الإصدار 132 من Chrome أو إصدار أحدث.
  2. انتقِل إلى chrome://flags#partitioned-popins وفعِّل علامة الميزة.
  3. أعِد تشغيل Chrome.
  4. جرِّب الإصدار التجريبي.

استخدام النوافذ المنبثقة المقسّمة على موقعك الإلكتروني

لاستخدام نافذة منبثقة مقسّمة على موقعك الإلكتروني، يمكنك استدعاء طريقة window.open() مع تمرير المَعلمة popin:

window.open("third-party-popin.example", "_blank", "popin");

مشاركة ملاحظاتك

نحن بصدد استكشاف النوافذ المنبثقة المقسّمة ونبحث عن ملاحظات المطوّرين. في ما يلي بعض سيناريوهات حالات الاستخدام المحتملة:

  • مسار مصادقة المستخدم: إذا كنت قد نفّذت عملية مصادقة مخصّصة، وتمت المصادقة على نطاق مختلف عن نطاق موقعك الإلكتروني (على سبيل المثال، تسجيل دخول مستخدمي site.example على auth-site.example)، حاوِل فتح صفحة المصادقة في نافذة منبثقة لاستخدام ملف تعريف الارتباط الخاص بالجلسة في صفحة الفتح.
  • المحتوى المضمَّن: جرِّب استخدام النوافذ المنبثقة المقسّمة لعرض محتوى إضافي من تطبيق مصغّر تابع لجهة خارجية، مثل مربّع حوار للإعدادات أو صورة أو ملف PDF (أو محتوى آخر يتم تحميله عادةً في نافذة منبثقة)، ويتم عرضه في نافذة أكبر. في هذه الحالة، تهدف النوافذ المنبثقة المقسّمة إلى الاحتفاظ بحالة جلسة المستخدِم بين الأداة التابعة لجهة خارجية وموقعك الإلكتروني.

إذا كان لديك أيّ من هذه السيناريوهات في حلولك، أو كان لديك حالات استخدام أخرى في الاعتبار، أو أردت المساعدة في وضع مستقبل هذه الميزة، جرِّبها وأخبِرنا بما يلي:

  • هل واجهت أي مشاكل؟
  • هل لديك أي اقتراحات لتحسين تجربة المستخدم؟
  • هل لديك أي اقتراحات لتحسين واجهة المستخدم؟ على وجه التحديد، هل ترى أنّ واجهة المستخدم تشير بوضوح إلى أنّ النافذة المنبثقة مرتبطة بالنافذة المنبثقة؟
  • ما مدى فائدة هذه الميزة بالنسبة إليك؟
  • هل هناك حالات استخدام أخرى تريد استخدام النوافذ المنبثقة المقسّمة فيها؟

يمكنك الإبلاغ عن مشكلة على GitHub لمشاركة أفكارك.