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

وحدات جديدة لإطار عرض CSS، وواجهة برمجة التطبيقات Federated Credential Management API، وخطوط Variable COLRv1، وغير ذلك.

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

CSS

يشتمل الإصدار 108 من Chrome على عدد من ميزات CSS الجديدة.

تجاوز CSS للعناصر التي تم استبدالها

سيبدأ Chrome في طرح تغيير يسمح للمطوّرين باستخدام السمة overflow الحالية مع العناصر البديلة التي تظهر خارج مربّع المحتوى. عند إقرانها بالمَعلمة object-view-box، يمكن استخدام هذه السمة لإنشاء صورة مع تطبيق توهج أو تظليل مخصّص، مع تطبيق السلوك المناسب لتجاوز الحبر، مثل تأثير ظل CSS.

قد يشكّل هذا التغيير عطلاً محتملاً. يمكنك الاطّلاع على المزيد من المعلومات في مقالة تغيير على سياسة تجاوز العناصر التي تم استبدالها.

وحدات إطار عرض صغيرة وكبيرة وديناميكية ومنطقية

يتيح ذلك استخدام الوحدات الصغيرة (svw وsvh وsvi وsvb وsvmin وsvmax) والكبيرة (lvw وlvh وlvi وlvb وlvmin وlvmax) والديناميكية (dvw وdvh وdvi وdvb وdvmin وdvmax) والوحدات المنطقية (vi وvb).

التوافق مع خدمات مقارنة الأسعار break-after وbreak-before وbreak-inside

إتاحة تجنّب قيمة سمات التقسيم break-before وbreak-after وbreak-inside في CSS عند الطباعة. وتخبر هذه القيمة المتصفّح بتجنُّب الانقطاع قبل العنصر الذي يتم تطبيقه عليه أو بعده أو داخله. على سبيل المثال، تتجنب لغة CSS التالية تقسيم شكل عند فاصل صفحة.

figure {
    break-inside: avoid;
}

وقد تمت إضافة هذه الميزة لأنّ الإصدار 108 من Chrome أصبح متوافقًا مع الطباعة باستخدام LayoutNG.

آخر محاذاة للعنصر الأساسي

وتتيح هذه الميزة للمطوّرين محاذاة العناصر إما ضمن التنسيق المرن أو الشبكي حسب آخر خط قاعدي، بدلاً من أول خط لديهم. يتم ذلك من خلال السمات التالية:

  • align-items: last baseline;
  • justify-items: last baseline;
  • align-self: last baseline;
  • justify-self: last baseline;

حدث واحد (ContentVisibilityAutoStateChanged)

يشير ذلك المصطلح إلى حدث يتم تشغيله على عنصر يتضمّن content-visibility: auto عند تغيُّر حالة عرض العنصر بسبب أي من السمات التي تجعل العنصر ذا صلة بالمستخدم.

تهدف حالة الاستخدام إلى السماح للمطوّرين بالتحكّم بشكل أكبر في وقت إيقاف العرض أو بدؤه استجابةً لإيقاف وكيل المستخدم لعرض الشجرة الفرعية الخاصة برؤية المحتوى. على سبيل المثال، قد يرغب مطوّر البرامج في إيقاف تحديثات React في شجرة فرعية لا يعرضها وكيل المستخدم. وبالمثل، قد يرغب مطوّر البرامج في إيقاف أي تحديثات أخرى للنصوص البرمجية (على سبيل المثال، تحديثات لوحة الرسم) عندما لا يعرض وكيل المستخدم العنصر.

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

إدارة بيانات الاعتماد الموحّدة (كانت WebID سابقًا)

تتيح واجهة برمجة التطبيقات Federated Credential Management للمستخدمين جلب هويتهم الموحّدة لتسجيل الدخول إلى المواقع الإلكترونية بطريقة تتوافق مع التحسينات التي يتم إجراؤها على خصوصية المتصفّح.

إضافات مصدر الوسائط في العاملين

تفعِّل هذه السياسة استخدام واجهة برمجة تطبيقات إضافات مصدر الوسائط (MSE) من سياقات DedicatedWorker لتفعيل الأداء المحسَّن للتخزين المؤقت للوسائط لتشغيل عنصر HTMLMediaElement في سياق النافذة الرئيسي. من خلال إنشاء كائن MediaSource في سياق DedicatedWorker، قد يحصل أحد التطبيقات على MediaSourceHandle منه وينقل هذا الاسم المعرِّف إلى سلسلة التعليمات الرئيسية لاستخدامه في الإرفاق بعنصر HTMLMediaElement. قد يستخدمها بعد ذلك السياق الذي أنشأ كائن MediaSource للتخزين المؤقت للوسائط.

Sec-CH-Prefers-Reduced-Motion عنوان حقول العميل لميزات الوسائط المفضّلة للمستخدم

عناوين حقول معلومات العميل لتفضيلات المستخدم تحدد مجموعة من عناوين تلميحات عميل HTTP حول ميزات الوسائط التي يفضّلها المستخدم كما هو محدّد في المستوى 5 من طلبات بحث الوسائط. فإذا تم استخدام هذه العناوين كملاحظات مهمة للعميل، فإنها تتيح للخوادم اتخاذ خيارات ذكية بشأن تضمين CSS، على سبيل المثال. يعكس Sec-CH-Prefers-Reduced-Motion إعدادات المستخدم المفضّلة بشأن prefers-reduced-motion.

برامج قراءة WebTransport BYOB

إتاحة أجهزة قراءة BYOB(bring-your-own-buffer) لـ WebTransport للسماح بالقراءة في مخزن مؤقت يوفره المطوّر يمكن لبرامج قراءة ملفات BYOB تقليل عدد نسخ المخزن المؤقت وتقليل عمليات تخصيص الذاكرة.

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

تحدد مواصفات سياسة الأذونات آلية تتيح للمطوّرين تفعيل استخدام ميزات المتصفّح وواجهات برمجة التطبيقات المتنوعة وإيقافه بشكل انتقائي. وتتيح إحدى إمكانات هذه الآلية تفعيل الميزات فقط على الأصول العددية بشكل صريح (على سبيل المثال، https://foo.com/). هذه الآلية غير مرنة بما يكفي لتصميم بعض شبكات توصيل المحتوى (CDN) التي تعرض المحتوى عبر مصدر قد يستضيفه عدة مئات من النطاقات الفرعية المحتملة.

وبالتالي، تتيح هذه الميزة استخدام أحرف البدل في سياسة الأذونات المنظَّمة مثل SCHEME://*.HOST:PORT (على سبيل المثال، https://*.foo.com/) حيث يمكن إنشاء مصدر صالح من SCHEME://HOST:PORT (على سبيل المثال، https://foo.com/). يتطلب هذا أن يكون HOST نطاقًا يمكن تسجيله. ويعني هذا أنّ https://*.bar.foo.com/ لن يعمل، ولكن لن يعمل https://*.com/ (إذا أردت السماح لجميع النطاقات باستخدام الميزة، ما عليك سوى التفويض إلى *).

طرق مزامنة AccessHandles في File System Access API

تعمل هذه السياسة على تعديل الطرق غير المتزامنة flush() وgetSize() وtruncate() في FileSystemSyncAccessHandle في File System Access API كي تتوافق مع الطرق المتزامنة. تتضمن FileSystemSyncAccessHandle حاليًا مزيجًا من طرق المزامنة وغير المتزامنة، ما يعيق الأداء وسهولة الاستخدام، خاصةً للتطبيقات التي تنقل C/C++ إلى Wasm. سيجلب هذا التحديث اتساقًا في استخدام واجهة برمجة التطبيقات ويحسّن أداء المكتبات المستندة إلى Wasm.

قد يشكّل هذا التغيير عطلاً محتملاً. يمكنك الاطّلاع على المزيد من المعلومات في المقالة أعطال التغيير: طرق المزامنة لـ AccessHandles.

واجهة مستخدم WebAuthn الشرطية

تتوفّر واجهة المستخدم المشروطة في WebAuthn على نظام التشغيل Windows 22H2 أو الإصدارات الأحدث وmacOS وAndroid P أو الإصدارات الأحدث. تم أيضًا تحديث واجهة مستخدم WebAuthn على الأنظمة الأساسية لأجهزة الكمبيوتر المكتبي.

اكتشاف خطوط متغير COLRv1 وميزات الخطوط

التوافق مع الخطوط المتغيّرة COLRv1

تم توفير خطوط متّجه الألوان COLRv1 منذ الإصدار Chrome 98، ولكن هذا الإصدار الأولي كان متوافقًا فقط مع الوظائف الثابتة لجدول COLRv1. تحدد مواصفات COLRv1 التكامل مع أشكال OpenType التي تسمح بتعديل خصائص الخط للتدرجات والتحويل عن طريق تغيير معلمات المحاور المتغيرة. تتوافق هذه الخطوة الثانية مع مثل هذه الاختلافات في COLRv1.

إضافتا شرط font-tech() وfont-format() إلى CSS @supports

يسمح استخدام font-tech() وfont-format() مع CSS @supports برصد تقنية الخط ودعم التنسيق، والتحسين التدريجي للمحتوى. في ما يلي أمثلة على الاختبارات لإتاحة استخدام خطوط COLRv1.

@supports font-tech(color-COLRv1) {

}

إتاحة الدالة tech() في الواصف @font-face src:

يوفر المستوى 4 لخطوط CSS وسائل إضافية لاختيار موارد الخطوط أو فلترتها. تم تقديم الدالة tech()، وهي تسمح بإدراج قائمة من تكنولوجيات الخطوط التي يتطلّبها كائن الكائن الثنائي الكبير هذا ليعمل. بناءً على ذلك، سيختار وكيل المستخدم أول مورد مناسب.

متصفح Chrome على أجهزة Android

يُغيّر نظام التشغيل Android OSK الآن إطار العرض المرئي تلقائيًا

تعمل لوحة مفاتيح Android على الشاشة على تغيير حجم إطار العرض المرئي تلقائيًا بدلاً من حجم إطار العرض الأولي الذي يحتوي على الجزء. ويمكن للمؤلفين إيقاف هذا الخيار باستخدام مفتاح إطار العرض الوصفي الجديد الخاص بـ interactive-widget.

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

يتضمّن هذا الإصدار من Chrome محاولتَي تحديد مصدر جديدتَين.

هوية التاجر في حدث واحد (canmakepayment)

يتيح حدث مشغّل الخدمات canmakepayment للتاجر معرفة ما إذا كان المستخدم لديه بطاقة مسجَّلة في تطبيق دفع مثبَّت. ويتم تلقائيًا نقل بيانات مصدر التاجر والبيانات العشوائية إلى مشغّل الخدمات من مصدر تطبيق الدفع. ويحدث هذا الاتصال المتعدد المصادر عند إنشاء PaymentRequest في JavaScript، ولا يتطلّب استخدام إيماءة مستخدم، ولا يعرض أي واجهة مستخدم. الفترة التجريبية للمطوِّر لإزالة حقول الهوية من "canmakepayment" يمكن تفعيل الحدث عبر: chrome://flags/#clear-identity-in-can-make-payment. سيؤدي تفعيل هذه العلامة إلى إفراغ حقول الهوية في "canmakepayment" الحدث (وهدف Android IS_READY_TO_PAY).

اطّلِع على مزيد من المعلومات في مقالة تعديل على سلوك حدث CanMakePayment الخاصة بواجهة واجهة برمجة التطبيقات Payment Handler API.

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

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

يمكن حظر الصفحات من BFcache لأسباب مختلفة، كالأسباب التي تتطلّبها المواصفات والأسباب الخاصة بتنفيذ المتصفّح. يمكن للمطوّرين جمع معدّل نتائج BFcache على مواقعهم باستخدام المَعلمة المستمرة لمعالِج عرض الصفحات وPerformanceNavigationTiming.type(back-forward). تتيح واجهة برمجة التطبيقات هذه للمواقع الإلكترونية جمع معلومات عن سبب عدم استخدام BFcache في عملية التنقل في السجلّ، وذلك كي يتمكّن من اتخاذ إجراءات بشأن كل سبب وجعل صفحات BFcache متوافقة.

عمليات الإيقاف وعمليات الإزالة

يوضِّح هذا الإصدار من متصفّح Chrome عمليات الإيقاف وعمليات الإزالة المُدرجة أدناه. يمكنك زيارة ChromeStatus.com للاطّلاع على قوائم بعمليات الإيقاف المخططة وعمليات الإيقاف الحالية وعمليات الإزالة السابقة.

عمليات الإيقاف نهائيًا

يؤدي هذا الإصدار من Chrome إلى إيقاف ميزة واحدة نهائيًا.

إيقاف window.defaultStatus وwindow.defaultstatus نهائيًا وإزالتهما

وهذه واجهات برمجة تطبيقات غير قياسية لم يتم تنفيذها بواسطة جميع المتصفحات وليس لها أي تأثير في سلوك المتصفح. يؤدي هذا إلى تنظيفها وإزالة إشارة بصمة الإصبع المحتملة.

تم استخدامها في الأصل لتعديل/التحكم في "شريط الحالة" النص في الجزء السفلي من نوافذ المتصفح. ومع ذلك، لم يكن لها أي تأثير فعلي في شريط حالة Chrome، كما أنّها ليست سمات موحّدة. لم يتيح تطبيق Gecko استخدام هذه السمات منذ الإصدار 23. لا تزال مجموعة أدوات الويب متوافقة مع هذه السمات. إنّ سمة window.status ذات الصلة تكون موحّدة، ولكن يجب ألا يكون لها أي تأثير مطلقًا في شريط حالة النافذة.

عمليات الإزالة

يزيل هذا الإصدار من Chrome أربع ميزات.

إزالة "ImageDecoderInit.premultiplyAlpha"

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

إزالة "navigateEvent.restoreScroll()"

سيتم استبدال restoreScroll() بـ navigateEvent.scroll(). يعمل scroll() بشكل متماثل، إلا أنّه يسمح للمطوّر بالتحكّم في توقيت الانتقال للأعلى أو للأسفل في عمليات التنقّل التي لا يتم اجتيازها (يعمل scroll() عندما لا تتم استعادة التمرير، وبالتالي يتم تغيير الاسم مع تغيير السلوك).

إزالة "navigateEvent.transitionWhile()"

يتم استبدال transitionWhile() بـ navigateEvent.intercept() بسبب عيوب التصميم التي أبلغ عنها المطوّرون. تعمل دالة suggested (طريقة اعتراض) بشكل متطابق تقريبًا مع crossWhile() ، ولكن بدلاً من استخدام مَعلمة Promise الإلزامية، تتطلّب دالة معالج اختيارية تُرجع Promise. ويتيح ذلك للمتصفح إمكانية التحكّم في وقت تنفيذ المعالج، علمًا بأنّ هذه العملية متأخرة وأكثر سهولة من transitionWhile().

إزالة googIPv6 لـ WebRTC MediaConstraint

يمكن استخدام "googIPv6: false" لإيقاف إتاحة IPv6 في WebRTC، كما في المثال التالي.

new RTCPeerConnection({}, {mandatory:{googIPv6:false}});

لقد تم تمكين IPv6 افتراضيًا لسنوات عديدة ولن نتمكن من تعطيله. هذه واجهة برمجة تطبيقات قديمة غير متوفّرة في المواصفات.