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

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

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

CSS

يتضمن Chrome 108 عددًا من ميزات 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

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

figure {
    break-inside: avoid;
}

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

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

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

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

تحدّد User Preferences Media Features Client Hints Headers (عناوين تلميحات الرسائل الإلكترونية حسب الإعدادات المفضّلة للمستخدم) مجموعة من عناوين HTTP Client Hints حول ميزات الوسائط التي يفضّلها المستخدم كما هو محدّد في المستوى 5 من طلبات البحث. في حال استخدام هذه العناوين كتلميحات مهمة عن العميل، تسمح للخوادم بإجراء اختيارات ذكية فيما يتعلق، على سبيل المثال، بتضمين CSS. يعكس Sec-CH-Prefers-Reduced-Motion التفضيل prefers-reduced-motion للمستخدم.

أجهزة قراءة WebTransport BYOB

يتيح استخدام أجهزة قراءة BYOB(جلب المخزن المؤقت) الخاصة بخدمة 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() مع @supports من CSS اكتشاف تقنية الخطوط ودعم التنسيق، وإجراء التحسين التدريجي للمحتوى. تتيح لك الأمثلة التالية اختبار خطوط 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" (وهدف IS_READY_TO_PAY لنظام التشغيل Android).

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

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

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

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

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

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

عمليات الإيقاف

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

إيقاف وإزالة window.defaultStatus وwindow.defaultstatus

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

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

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

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

إزالة ImageDecoderInit.premultiplyAlpha

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

إزالة navigateEvent.restoreScroll()

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

إزالة navigateEvent.transitionWhile()

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

إزالة googIPv6 لـ WebRTC MediaConstraint

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

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

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