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

الشبكة الفرعية لشبكة CSS ودعم الرسوم المتحركة للدخول والخروج لـ CSS وتجميع الصفائف ومساعدات التكرار والمزيد.

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

CSS

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

قاعدة @starting-style

تتيح هذه القاعدة للمؤلفين بدء عمليات انتقال CSS عند أول تحديث للنمط.

لا تؤدي عمليات انتقال CSS إلى بدء عمليات الانتقال من الأنماط الأولية عند تعديل النمط الأول لعنصر أو عندما يتغيّر نوع العرض من none إلى نوع آخر. وهذا لتجنب الانتقالات غير المتوقعة من الأنماط الأولية. لبدء عملية نقل من التعديل الأول للنمط، يمكنك الآن تطبيق الأنماط من داخل قاعدة @starting-style. على سبيل المثال، تبدأ لغة CSS التالية انتقال لون الخلفية من الأخضر إلى الأصفر عند تحديث النمط الأول لعنصر div:

div { 
  transition: background-color 0.5s; 
  background-color: lime; 
} 

@starting-style {
  div { 
    background-color: green; 
  } 
}

خاصية التراكب

تتيح السمة overlay للمطوّرين الاحتفاظ بالعناصر في الطبقة العلوية من أجل عملية انتقال عند الخروج. تُضاف خاصية التراكب للإشارة إلى ما إذا كان العنصر في الطبقة العلوية أم لا، ويمكن أن يأخذ قيمتين: none أو auto.

خاصية السلوك الانتقالي في CSS

السمة transition-behavior CSS هي سمة مرتبطة بالسمة transition تسمح باستخدام خصائص منفصلة في الانتقالات. من خلال تحديد قيمة allow-discrete لسلوك الانتقال، ستبدأ السمات المنفصلة الآن في تشغيل الصور المتحركة وتتحوّل من قيمتها الأولية إلى قيمتها النهائية بنسبة 50%. بالنسبة إلى عمليات الانتقال التي تكون فيها display: none وcontent-visibility: hidden هما إحدى القيمتَين الأولي أو النهائي، سيتم استخدام القيمة المرئية طوال مدة الانتقال.

قيمة الشبكة الفرعية لشبكة CSS

تم الآن تنفيذ القيمة subgrid لكل من grid-template-columns وgrid-template-rows في Chrome. تسمح هذه القيمة للشبكة المتداخلة باستخدام المسارات المحددة في الأصل، بدلاً من إنشاء تعريف مسار جديد للصفوف أو الأعمدة أو لكليهما.

التفاف النص في CSS: جميلة

تعمل قيمة pretty لخاصية CSS text-wrap على تحسين أفضل تنسيق، بدلاً من السرعة. وهو مخصص للنص الأساسي، وبالتالي يتوقع عدة أسطر. باستخدام pretty، يختار أحد المطوّرين صراحةً استخدام طريقة تنسيق قد تكون أبطأ من wrap، ما يؤدي إلى تحسين الأداء. تؤدي عملية التنفيذ الحالية في Chrome إلى تحسين العناصر المعزولة لمنع ظهور كلمة واحدة في أسفل فقرة معيّنة من النص.

في Chrome 117، جرّب هذا العرض التوضيحي لـ text-wrap: pretty وشاهد كيف تغير القيمة العرض التقديمي النصي.

يحتوي على-intrinsic-size: تلقائي بدون دعم

توسّع هذه الميزة بنية contain-intrinsic-size الحالية لتشمل auto && none أيضًا.

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

تجميع المصفوفة

تجميع الصفيف هو عملية شائعة للغاية، يتجلى أفضل مثال عليها في عبارة GROUP BY في SQL وبرمجة MapSurvey (والتي فكرت بشكل أفضل فيما يتعلق بـ map-group-reduce). إنّ إمكانية دمج البيانات في مجموعات تسمح للمطوّرين باحتساب مجموعات البيانات ذات الترتيب الأعلى، مثل متوسط العمر لمجموعة نموذجية أو قيم سرعة عرض أكبر محتوى مرئي (LCP) لصفحة ويب. تتيح هذه الميزة هذه الميزة من خلال إضافة الطريقتَين الثابتتَين Object.groupBy وMap.groupBy. تُرجع طريقة الكائن كائنًا عاديًا، حيث تكون المجموعات عبارة عن مفاتيح خصائص. تعرض طريقة الخريطة خريطة، حيث يمكن أن تكون المفاتيح قيمًا عشوائية.

محو حقول العميل من خلال العنوانClear-Site-Data

ستتمكن المواقع الإلكترونية الآن من محو ذاكرة التخزين المؤقت لتلميحات البرنامج باستخدام Clear-Site-Data: "clientHints". سيتم الآن أيضًا محو حقول معلومات العميل عند استخدام "ملفات تعريف الارتباط" أو "ذاكرة التخزين المؤقت" أو "*". يتم استهدافها بواسطة العنوان نفسه. ويرجع ذلك إلى أنّه إذا محا المستخدم ملفات تعريف الارتباط في حقول معلومات العميل لواجهة المستخدم التي تم محوها أيضًا، ستكون ذاكرة التخزين المؤقت لتلميحات العميل عبارة عن ذاكرة تخزين مؤقت، وتكون متسقة مع أهداف أحرف البدل على التوالي.

بنية حرف البدل لعنوان مسح-Site-Data

ستتمكّن المواقع الإلكترونية الآن من محو جميع أهداف مساحة التخزين ("ملفات تعريف الارتباط" و"ذاكرة التخزين المؤقت" و"مساحة التخزين") عن طريق إرسال Clear-Site-Data: "*". يُرجى ملاحظة أنّ Chrome لا يتيح محو "executionContexts". حاليًا، ولكن إذا أضفناه في المستقبل، أي عنوان يستهدف "*" فسيتم محوها أيضًا.

customElements.getName

تعرض الطريقة customElements.getName() اسم العلامة لتعريف العنصر المخصّص المحدّد.

تطبيقات مساعدة المكرّر

العناصر المساعدة للمكررات هي طرق جديدة للنموذج الأوّلي للمكرر للسماح بالاستخدام العام للمكررات واستهلاكها.

جعل CaptureController مشتقًا من واجهة EventTarget

تتيح واجهة CaptureController معالجة إضافية لجلسة التقاط الشاشة. ومن المتوقّع في المستقبل إرسال الأحداث ذات الصلة بجلسة التسجيل إلى وحدة التحكّم هذه. وكي تتمكّن من إدارة المستمعين لهذه الأحداث، تتوفّر طُرق EventTarget على CaptureController.

نوع تسليم PerformanceResourceTiming

تعرض السمة deliveryType لـ PerformanceResourceTiming معلومات عن كيفية تسليم المورد. على سبيل المثال، الموارد التي تم تسليمها من ذاكرة التخزين المؤقت (المعروضة حاليًا من خلال transferSize) وعمليات التنقّل التي تم جلبها مسبقًا من خلال الصفحة السابقة.

التحقق من القائمة الكاملة للمنافذ في أدوات تحديد قيمة عناوين URL

سيتم التحقّق من قيمة المنفذ عند ضبط url.port. ولن تكون جميع القيم التي تتجاوز الحد الرقمي 16 بت صالحة بعد الآن. على سبيل المثال، يتصرف النص البرمجي التالي بشكلٍ مختلف بعد التغيير:

u = new URL("http://test.com"); 
u.port = 65536; 
console.log(u.port); 

قبل التغيير، يكون الناتج 65536. وبعد التغيير، سيكون الناتج 80.

واجهة برمجة التطبيقات للرمز المميز للحالة الخاصة

إنّها واجهة برمجة تطبيقات جديدة لنشر الإشارات الخاصة المحدودة على المواقع الإلكترونية، بدون استخدام معرّفات دائمة على مواقع إلكترونية متعددة، مثل ملفات تعريف الارتباط التابعة لجهات خارجية. لن تعمل طرق مكافحة الاحتيال التي تعتمد على ملفات تعريف الارتباط التابعة لجهات خارجية بعد الإيقاف النهائي لملفات تعريف الارتباط التابعة لجهات خارجية. لا تنشئ واجهة برمجة التطبيقات Private State Token API إشارات مكافحة الاحتيال أو تحدِّدها. ويعود ذلك إلى الطرف الأول المعنيّ وجهات إصدار الرموز المميّزة. بدلاً من ذلك، تحافظ واجهة برمجة التطبيقات على الخصوصية من خلال فرض حدود على المعلومات التي يتم نقلها في هذه الإشارات. تستند واجهة برمجة التطبيقات إلى أحد بدائل بروتوكول Privacy Pass الذي يجري توحيده بواسطة مجموعة مهندسي شبكة الإنترنت (IETF). ويمكن اعتباره شكلاً معرّضًا على الويب من بروتوكولات Privacy Pass. يجب تعديل مواصفات واجهة برمجة التطبيقات للإصدارات الجديدة وأنواع الرموز المميّزة، وسنواصل تعديلها وفقًا لمواصفات مجموعة عمل Privacy Pass. وستظهر التغييرات المتوقعة في بروتوكولات التشفير الأساسية ورمز إصدار الرموز المميّزة، ولا نتوقّع حدوث أي تغييرات في واجهات برمجة تطبيقات الجلب للإصدارات واسترداد القيمة التي يواجهها المطوّر. كانت واجهة Private State Token API تُعرف سابقًا باسم Trust Token API. وقد تمت إعادة تسميتها لتحديد الدلالة الدلالية الأساسية بدقة أكبر وتسليط الضوء على مزايا الخصوصية للمستخدمين.

محلّل لغوي لمضيف IPv6 مضمَّن في IPv4 متوافق مع معايير عنوان URL

سيتم تعديل سلوك تحليل المُحلِّل اللغوي لمضيف IPv6 المضمّن في IPv4 لاتّباع معيار عنوان URL على الويب بدقة. القيود المفروضة على عنوان IPv6 هي:

  • يجب أن يتكون عنوان IPv4 المضمن دائمًا من 4 أجزاء.
  • إنّ العناوين التي تحتوي على أقل من 4 أجزاء مثل http://[::1.2] لن تعود صالحة. تشكّل هذه الميزة جزءًا من إمكانية التشغيل التفاعلي لعناوين URL في عام 2023.

عنوان URL: السماح بـ "%00" كمسار عنوان URL صالح

يعتبر Chrome حاليًا عنوان URL غير صالح إذا كان جزء مسار عنوان URL يحتوي على "%00" (أو خالية)، وهذا لا يتوافق مع معيار عنوان URL. على سبيل المثال، يتعذّر الاختبار التالي في Chrome، لأنّ new URL(...) يعرض استثناء "عنوان URL غير صالح".

assertEquals(new URL("http://example.com/%00").pathname, "/%00"); 

ووفقًا لمعيار عنوان URL، ينبغي ألا يؤدي أي تسلسل للأحرف أو البايت في مسار عنوان URL إلى جعل عنوان URL غير صالح، وسيؤدي هذا التغيير إلى تحديث Chrome لاتباع هذا المعيار.

التحكُّم في إضافة عنوان WebRTC RTP

يمكنك توسيع واجهة برمجة تطبيقات WebRTC RTCRtpTransceiver لتوفير إمكانية التحكُّم في إضافات عناوين RTP التي يتم التفاوض عليها.

أداة قياس الكمية لكل إطار في VideoEncoder

إضافة "محدِّد الكمية" VideoEncoderBitrateMode لبرنامج VideoEncoder. يتيح ذلك إمكانية تحديد مَعلمة أداة قياس الكمية لكل إطار لبرامج ترميز الفيديو AV1 وVP9 وAVC.

خيار WebUSB exclusionFilters في requestDevice()

يسمح الخيار exclusionFilters في navigator.usb.requestDevice() لمطوّري البرامج على الويب باستبعاد بعض الأجهزة من أداة اختيار المتصفّحات. ويمكن استخدامها لاستبعاد الأجهزة التي تتطابق مع فلتر أوسع نطاقًا، ولكنها غير متوافقة.

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

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

ضغط نقل قاموس مضغوط باستخدام Shared Brotli

وتتيح هذه الميزة استخدام استجابات سابقة مُعيّنة، كقاموس خارجي لاستجابات HTTP لضغط Brotli.

يمكنك التسجيل في مرحلة التجربة والتقييم في EncryptionDictionaryTransport.

الفترة التجريبية لإيقاف WebSQL نهائيًا

جارٍ إزالة WebSQL من Chrome ننصح المواقع الإلكترونية التي تعتمد على هذا الخيار بالانتقال إلى SQLite عبر Wasm.

إنّ الفترة التجريبية للإيقاف النهائي هذه تتيح للمطوّرين الذين يحتاجون إلى مزيد من الوقت لعملية نقل البيانات مواصلة استخدام WebSQL حتى إصدار Chrome 123 (آذار/مارس 2024). سجِّل في الفترة التجريبية لإيقاف WebSQL نهائيًا.

تطبيقات الويب ذات علامات التبويب

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

التسجيل في مرحلة التجربة والتقييم في تطبيقات الويب ذات علامات التبويب

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

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

يؤدي هذا الإصدار من Chrome إلى إيقاف ميزتين.

الإيقاف النهائي لحدث "إلغاء التحميل"

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

إيقاف نهائي لتوقيعات خادم TLS SHA-1

يعمل Chrome على إيقاف إتاحة خوارزميات التوقيع التي تستخدم خوارزمية SHA-1 لتوقيعات الخادم أثناء تأكيد اتصال بروتوكول أمان طبقة النقل (TLS). ولا يؤثر ذلك في دعم SHA-1 في شهادات الخادم التي تمت إزالتها من قبل، أو في شهادات العميل التي لا تزال متاحة.

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

[WebRTC] إلغاء الطريقة getStats() القديمة المستندة إلى معاودة الاتصال

يحتوي RTCPeerConnection على إصدارين من getStats()، أحدهما متوافق مع المواصفات ويعرض التقرير من خلال حل وعد، والآخر غير عادي يعرض تقريرًا مختلفًا تمامًا من خلال استدعاء كوسيطة أولى. وتمت الآن إزالة الإجراء المستنِد إلى معاودة الاتصال.

لمزيد من المعلومات حول نقل البيانات والإجراءات التي يجب اتّخاذها إذا كنت بحاجة إلى مزيد من الوقت، يُرجى الاطّلاع على دليل نقل بيانات الطريقة getStats() القديمة.

إزالة القيمة -1 في WebRTC getStats datachannelIdentifier

تعرض واجهة WebRTC getStats API سمة dataChannelIdentifier. لن يتم تقديم القيمة "-1" بعد الآن في الحالات التي يتم فيها الاستعلام عن الإحصاءات قبل إنشاء اتصال قناة البيانات. وبدلاً من ذلك، سيتم حذف عضو القاموس.

إزالة getStats queryImplementation and decoderImplementation "unknown" (غير معروف) في برنامج WebRTC

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

لمحة عن الموقع الإلكتروني في CSS (webkit-highlight)

أزِل خاصية CSS -webkit-highlight التي تهدف إلى تمييز النص، ولكنها لا يتم توحيدها مطلقًا. وليس له أي تأثير مرئي في الكروم (يتم تحليله ولكن لا يتم استخدامه أبدًا في عرض المحتوى). تمت إزالة الموقع من WebKit في عام 2014، وتم وضع علامة عليه على أنه متوقف في MDN، وتم استبداله مؤخرًا بمواصفات CSS المميزة الزائفة.