الإصدار التجريبي من Chrome 116

مسار حركة CSS وواجهة برمجة التطبيقات NotRestored تعليمية لميزة "التخزين المؤقت للصفحات" و"نافذة ضمن النافذة" وغيرها

ما لم يذكر خلاف ذلك، تنطبق التغييرات الموضحة على أحدث إصدار من قناة Chrome التجريبية لأنظمة التشغيل Android وChromeOS وLinux وmacOS وWindows. تعرَّف على مزيد من المعلومات عن الميزات المذكورة هنا من خلال الروابط المتوفّرة أو من القائمة على ChromeStatus.com. إنّ الإصدار 116 من Chrome هو إصدار تجريبي اعتبارًا من 19 تموز (يوليو) 2023. يمكنك تنزيل آخر الأخبار من Google.com لأجهزة الكمبيوتر المكتبي أو من "متجر Google Play" على أجهزة Android.

CSS

يضيف هذا الإصدار ميزتَين جديدتَين في CSS.

مسار حركة CSS

يتيح مسار الحركة للمؤلفين وضع أي كائن رسومي وتحريكه على طول مسار يحدده المطور. ويتيح ذلك عددًا من إمكانيات التحويل الجديدة والفعّالة، مثل تحديد الموضع باستخدام الإحداثيات القطبية (مع دالة ray()) بدلاً من الإحداثيات المستطيلة القياسية التي تستخدمها الدالة translate()، أو تحريك عنصر على طول مسار محدّد. وهذا يسهِّل تحديد الانتقالات المكانية الثنائية الأبعاد المعقدة والجميلة. ويمكن تحديد المسار بالتنسيق circle() وellipse() وrect() وinset() وxywh() وpolygon() وray() وurl().

الصور المتحركة في العرض ومستوى رؤية المحتوى

يتيح Chrome 116 السمتَين display وcontent-visibility في الصور المتحركة للإطارات الرئيسية. ويتيح هذا الدعم للمطوّرين إنشاء صور متحركة للخروج من العنصر تلقائيًا، ويصبح العنصر display: none أو content-visibility: hidden بدون الحاجة إلى كتابة أي JavaScript لمعالجة هذا المفتاح بعد انتهاء الصورة المتحركة. ويتيح هذا إضافة رسوم متحركة للخروج للعناصر في CSS فقط.

واجهات برمجة تطبيقات الويب

AbortSignal.any()

عرض إشارة يتم إلغاؤها عند إلغاء أي من إشارات المصدر. يمكن للمطوّرين استخدام هذا الإجراء لدمج مصادر الإلغاء المستقلة، على سبيل المثال، المهلات المحدّدة في AbortSignal.timeout() والإشارات المرتبطة بوحدة التحكّم AbortController، وتمريرها إلى واجهات برمجة تطبيقات غير متزامنة مثل fetch().

إتاحة BYOB للجلب

يدعم تنفيذ Chrome لـ ReadableStream عملية جلب أجهزة قراءة المخزن المؤقت (BYOB) الخاصة بك لتدفقات وحدات البايت القابلة للقراءة. يتم الآن استخدام Response.body كتدفق بايت قابل للقراءة بدلاً من بث "تلقائي" قابل للقراءة. ويتيح ذلك استخدام واجهة برمجة التطبيقات Fetch API مع برامج قراءة بيانات BYOB، ما يقلّل من أعباء جمع البيانات غير الضرورية ونُسخها، ويحسّن سرعة استجابة المستخدمين. Blob.stream() يستفيد الآن من هذا التحسين أيضًا.

واجهة برمجة التطبيقات NotRestoredREASON في ميزة "التخزين المؤقت للصفحات"

ستبلغ واجهة برمجة التطبيقات NotRestored تعليمية قائمة بالأسباب التي قد تؤدي إلى عدم عرض صفحة من ذاكرة التخزين المؤقت في BFcache في بنية شجرة إطارات، وذلك عبر واجهة برمجة تطبيقات Performance NavigationTiming.

نافذة ضمن النافذة

تضيف ميزة نافذة ضمن النافذة في المستند واجهة برمجة تطبيقات جديدة لفتح نافذة ظاهرة دائمًا في الأعلى يمكن ملؤها عشوائيًا باستخدام HTMLElements. يُعد هذا توسيعًا على واجهة برمجة تطبيقات HTMLVideoElement الحالية التي تسمح فقط بإضافة HTMLVideoElement إلى نافذة ضمن النافذة. يتيح ذلك لمطوّري البرامج على الويب توفير تجربة "نافذة ضمن النافذة" أفضل للمستخدمين.

أحرف البدل الموسَّعة في مصادر سياسة الأذونات

لقد وفّرت أحرف البدل للنطاقات الفرعية في القوائم المسموح بها بعض المرونة القيّمة، ولكنّها اختلفت عن برامج تحليل أحرف البدل الحالية والمطلوبة رمزًا جديدًا ومواصفات جديدة. وسيؤدي هذا الغرض إلى تقليل هذه النفقات العامة من خلال إعادة استخدام أجزاء من مواصفات "سياسة أمان المحتوى" الحالية والسماح بإضافة scheme + wildcard domain وwildcard port إلى القائمة المسموح بها. وعلى وجه التحديد، سيعتمد هذا الغرض تعريف مصدر المضيف ومصدر المخطط بدلاً من المنشأ في تعريف القائمة المسموح بها مع اشتراط أن يكون جزء المسار فارغًا (حيث تسري سياسات الأذونات على المصادر المطابقة).

حِزمة FedCM: واجهة برمجة تطبيقات تسجيل الدخول وواجهة برمجة معلومات المستخدم وواجهة برمجة تطبيقات RP Context API

يتيح هذا التحديث المجمّع إمكانية تخصيص عمليات تسجيل الدخول الموحّد التي تستخدم واجهة برمجة التطبيقات Federated Credential Management API (FedCM).

باستخدام Login Hint API، يمكن للطرف المعتمد (RP) تحديد تلميح حول حساب المستخدم الذي يريد عرضه في واجهة مستخدم FedCM. تُستخدم هذه المعلومات بشكل أساسي لتوفير تجربة مستخدم أفضل للمستخدمين المكرّري الزيارة.

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

باستخدام RP Context API، يمكن لـ RP طلب مربّع حوار FedCM لاستبدال العنوان "Sign in" (تسجيل الدخول) بكلمة "Sign up" (تسجيل الدخول) أو "Use" (الاشتراك) أو "Use" (استخدام) أو "Continue" (متابعة) حتى تتم مواءمة الهدف الفعلي للمستخدم.

أحداث دخول/مغادرة الماوس والمؤشر بدون تركيب

يجب إعداد السمة event.composed في الأحداث mouseenter وmouseleave وpointerenter وpointerleave "false" بما يتوافق مع المواصفات وحلّ الثغرات في إمكانية التشغيل التفاعلي. تحدِّد مواصفات أحداث واجهة المستخدم لأحداث الماوس ومواصفات أحداث المؤشر هذه الأحداث على أنّها غير منشأة. تم استبدال المواصفات عن تعريفاتها الأصلية منذ بضع سنوات: https://github.com/w3c/uievents/pull/210 https://github.com/w3c/pointerevents/pull/461 بالإضافة إلى معالجة فجوة إمكانية التشغيل التفاعلي، يؤدي هذا التغيير أيضًا إلى إصلاح خطأ DOM المزدوج أو ثلاث عمليات إرسال خاطئة للأحداث في Chromium في الظل أيضًا أثناء الاستماع إلى إطار DOM في ظل DOM.

إزالة البيانات الموروثة من وضع الحماية document.open

يتم حاليًا تطبيق علامات وضع الحماية للمتصل على المتصل عندما يستهدف document.open نافذة مختلفة. لن يكون هذا هو الحال بعد تطبيق هذا التغيير.

الإبلاغ عن مشكلة بالغة الأهمية بسبب إعادة تشغيل التنقل في Navigation Timing

يمكن أن تشير المواقع الإلكترونية إلى أنّ "تلميح عميل" معيّن مهم جدًا للصفحة من خلال تضمينه في عنوان استجابة HTTP Critical-CH. سيؤدي ذلك إلى إعادة تشغيل الاتصال إذا كان التلميح المُدرَج في عنوان استجابة HTTP Critical-CH (ولكن لم يتم تضمينه) مضمّنًا في طلب HTTP الذي تم إرساله في البداية. يقترح هذا الغرض إضافة readonly attribute DOMHighResTimeStamp criticalCHRestart; إلى واجهة PerformanceNavigationTiming.

مراحل التجربة والتقييم قيد التقدّم

في الإصدار 116 من Chrome، يمكنك تفعيل تجارب المصدر الجديدة التالية.

COOP: حصر المواقع

يتم استخدام سياسة Cross-Origin-Opener-Policy لفصل العلاقة بين النوافذ المنبثقة والفتحات المفتوحة لزيادة مستوى الأمان. "restrict-properties" هي قيمة مقترَحة تحدّ من العلاقة بدلاً من قطعها بالكامل. ومن شأن هذا الإجراء تفعيل نظام CrossOriginIsolated عند إقرانه ببروتوكول COEP.

التسجيل في تجربة الأصول المحظورة في COOP

واجهة برمجة تطبيقات حالة تسجيل الدخول إلى FedCM

تسمح واجهة برمجة تطبيقات حالة تسجيل الدخول لموفِّر الهوية (IdP) التابعة لواجهة برمجة تطبيقات إدارة بيانات الاعتماد الموحّدة (FedCM) لموفِّر الهوية (IdP) بإرسال إشارة إلى المتصفِّح عندما يسجِّل المستخدمون الدخول أو الخروج حتى يتمكَّن FedCM من تحسين خصائص الخصوصية من خلال تحسين تجربة المستخدم.

التسجيل في مرحلة التجربة والتقييم في حالة تسجيل الدخول إلى FedCM

واجهة برمجة تطبيقات EditContext

تعمل واجهة برمجة التطبيقات EditContext API على تبسيط عملية دمج تطبيق الويب مع أساليب إدخال النص المتقدمة مثل كتابة الأشكال باستخدام لوحة مفاتيح VK ولوحات الكتابة بخط اليد والتعرّف على الكلام ومقطوعات أداة IME. تعمل واجهة برمجة التطبيقات على تحسين إمكانية الوصول والأداء وتوفير إمكانات جديدة لأدوات التحرير المستندة إلى الويب.

التسجيل في مرحلة التجربة والتقييم في EditContext API

توقيت إطار الرسوم المتحركة الطويل

هذا امتداد للمهام الطويلة. ويتم قياس المهمة مع تحديث العرض اللاحق لها، مع إضافة معلومات مثل النصوص البرمجية التي تستغرق وقتًا طويلاً ووقت العرض والوقت المستغرق في استخدام التنسيق والنمط الإجباريَّين، ويُعرف ذلك باسم تقسيم التنسيق.

يمكن للمطوّرين استخدام هذه الطريقة لتشخيص "البطء" الذي يتم قياسه من خلال مقياس INP، وذلك من خلال تحديد أسباب ازدحام السلسلة الرئيسية الذي غالبًا ما يكون السبب في ضعف مقياس INP.

التسجيل في مرحلة التجربة والتقييم في ميزة Long Animation Frame Timing