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

مسار حركة CSS وواجهة برمجة التطبيقات NotRestoredStatus API ومستندًا مزودًا بميزة "نافذة ضمن النافذة" وغير ذلك

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

CSS

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

مسار حركة CSS

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

الصور المتحركة لعرض المحتوى وإمكانية الوصول إليه

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

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

AbortSignal.any()

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

توافق BYOB مع ميزة الجلب

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

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

ستعرِض واجهة برمجة التطبيقات NotRestoredreason API قائمة بأسباب عدم عرض صفحة من BFcache في بنية شجرة إطار، وذلك عبر واجهة برمجة التطبيقات Performance NavigationTiming.

مستند ضمن "نافذة ضمن النافذة"

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

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

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

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

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

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

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

باستخدام RP Context API، يمكن للجهة المحظورة أن تطلب استبدال العنوان "تسجيل الدخول" بمربّع حوار FedCM. من خلال "تسجيل"، "استخدام" أو "متابعة" لمواءمة الهدف الفعلي للمستخدم.

أحداث الدخول أو الخروج من خلال الماوس ومؤشر الماوس غير المشكّلَين

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

إزالة الاكتساب من وضع الحماية في Document.open

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

الإبلاغ عن إعادة التشغيل التي تسببت في حدوث مشاكل حرجة في الوقت الفعلي في NavigationTiming

يمكن أن تشير المواقع الإلكترونية إلى أنّ "تلميح العميل" مهم بالنسبة إلى الصفحة من خلال تضمينه في عنوان استجابة 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

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

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

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

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

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

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

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

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

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