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

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

CSS

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

CSSImportRule.styleSheet

السماح لـ CSSImportRule.styleSheet بأن تكون قيمة فارغة. يمكن أن تكون السمة styleSheet في CSSImportRule فارغة في حال عدم توفّر ورقة أنماط CSS مرتبطة بها.

CSSKeyframesRule.length

تعرض سمة length لـ CSSKeyframesRule. يجب أن تحدّد الواجهات التي تتيح الخصائص المفهرَسة سمة من نوع عدد صحيح تُسمى length.

HTML

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

السمة writingsuggestions

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

تحتوي السمة الجديدة writingsuggestions على قيمتَي true أو false تتيحان للمطوّرين تفعيل أو إيقاف اقتراحات الكتابة المقدّمة من المتصفّح. يمكن أيضًا اكتساب حالة السمة للعنصر من عناصر الأصل، ما يسمح للمطوّرين بالتحكّم في هذه الوظيفة على أساس كل عنصر أو لكل مستند أو مستند فرعي.

حاويات التمرير التي يمكن التركيز عليها بلوحة المفاتيح

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

من خلال جعل برامج التمرير قابلة للتركيز بشكل افتراضي، فإن المستخدمين الذين لا يستطيعون (أو لا يريدون) استخدام الماوس سيتمكنون من تركيز المحتوى المقتطع باستخدام علامة التبويب ومفاتيح الأسهم في لوحة المفاتيح. ولا يتم تفعيل هذا السلوك إلا إذا كان شريط التمرير لا يحتوي على أي عناصر فرعية يمكن التركيز عليها في لوحة المفاتيح.

سيتم طرح هذه الميزة تدريجيًا بدءًا من الإصدار 124 من Chrome، وستتوفر لجميع المستخدمين بحلول الإصدار 125 من متصفّح Chrome. تعرَّف على المزيد من المعلومات عن برامج التمرير القابلة للتركيز على لوحة المفاتيح.

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

الإضافات إلى Attribution Reporting API

تمّت إضافة ميزات إلى Attribution Reporting API لتوفير إمكانات إضافية لتصحيح الأخطاء من خلال إتاحة تقارير تصحيح أخطاء التحليل، وتحسين هندسة واجهات برمجة التطبيقات من خلال إتاحة حقل لتحديد منصة التسجيل المفضّلة، وتحسين الخصوصية.

نافذة ضمن النافذة: إضافة خيار لإخفاء زر الرجوع إلى علامة التبويب

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

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

يمكنك الاطّلاع على مزيد من المعلومات في المستندات الخاصة بـ "نافذة ضمن النافذة" الخاصة بالمستند.

حظر عرض المستندات

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

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

يُرجى العِلم أنّ هذه الميزة تنفّذ بنية <link rel=expect href="#id"> تسمح لعنصر الرابط بالإشارة إلى عنصر متوقَّع آخر على الصفحة. بعد ذلك، يتم حظر العرض إلى أن يتم تحليل العنصر المتوقَّع بالكامل. ويحلّ ذلك محلّ التنفيذ السابق لسمة HTML التي تتيح حظر عرض المستند بأكمله.

سمة واحدة (jitterBufferTarget)

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

حدث واحد (pageswap)

يتم تنشيط الحدث pageswap على كائن نافذة المستند عندما يستبدل عنصر التنقّل هذا المستند بمستند جديد. يوفّر الحدث معلومات التفعيل حول التنقّل (type وNavigationHistoryEntry للمستند الجديد).

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

عنوان طلب HTTP priority

يؤدي هذا إلى إضافة عنوان طلب priority لجميع طلبات HTTP التي تتضمن معلومات أولوية الطلب وقت إرساله.

يحدّد نظام RFC 9218 (نظام الأولويات القابلة للامتداد لبروتوكول HTTP) عنوان طلب HTTP priority لاستخدامه في إرسال أولوية طلبات الإشارة إلى المصادر (والوسطاء). كما أنه يحدد عمليات التفاوض والإطارات على مستوى البروتوكول لبروتوكول HTTP/2 وHTTP/3 لنقل معلومات الأولوية نفسها.

لا يمكن أن يشير العنوان إلا إلى الأولوية الأولية للمورد عند طلبه لأول مرة، بينما تسمح الآليات المستندة إلى الإطار بتعديل الأولوية بعد حدوثها.

ويمكن أن يعمل العنوان من البداية إلى النهاية في خوادم المصدر (وأن يوفّر آلية يستطيع المصدر من خلالها تجاوز الأولوية في حال تعرّف الوسطاء عليها) بينما تقتصر الإطارات على العمل على مستوى الرابط.

هذه الميزة مخصصة تحديدًا لدعم نظام تحديد الأولويات المستند إلى العناوين.

إذن "الوصول إلى الشبكة الخاصة" للتخفيف من حدة المحتوى المختلَط

لإنشاء اتصالات بالأجهزة على شبكة محلية ليس لها أسماء فريدة عالميًا، وبالتالي لا يمكنها الحصول على شهادات بروتوكول أمان طبقة النقل (TLS)، توفّر هذه الميزة خيارًا جديدًا لـ fetch() للإشارة إلى نية المطوّر بالتحدّث إلى مثل هذا الجهاز. ويشمل ذلك ميزة جديدة يتم التحكّم فيها من خلال السياسة لحظر وصول كل موقع إلكتروني إلى هذه الإمكانية، وعناوين جديدة لاستجابة الطلب المبدئي للخادم لتوفير بيانات وصفية إضافية.

تلميح للعميل Sec-CH-UA-Form-Factors

يقدّم هذا التلميح معلومات للخادم عن عوامل الشكل لوكيل المستخدم. تعرض قيمة أو أكثر من قيم عامل الشكل التالية:

  • الكمبيوتر المكتبي: وكيل مستخدم يعمل على جهاز كمبيوتر شخصي.
  • السيارات: وكيل مستخدم مضمّن في مركبة، حيث قد يكون المستخدم مسؤولاً عن تشغيل المركبة ولا يمكنه الانتباه إلى التفاصيل الصغيرة.
  • الجهاز الجوّال: جهاز صغير يعمل باللمس يحمل عادةً المستخدم.
  • جهاز لوحي: جهاز يعمل باللمس أكبر من جهاز "الهاتف الجوّال" ولا يتم حمله عادةً على شخص المستخدم.
  • XR: أجهزة مجسَّمة تعزز أو تستبدل البيئة المحيطة بالمستخدم.
  • EInk: جهاز يتميز بتحديثات الشاشة البطيئة ودرجة دقة الألوان المحدودة أو عدم وجودها مطلقًا.
  • الساعة: جهاز جوّال بشاشة صغيرة (أقل من بوصتين عادةً)، يتم حمله بطريقة تتيح للمستخدم إلقاء نظرة سريعة عليه.

setHTMLUnsafe وparseHTMLUnsafe

تتيح الطريقتان setHTMLUnsafe وparseHTMLUnsafe استخدام نموذج كائن موضع الإعلان (DOM) في JavaScript. توفّر هاتان الطريقتان أيضًا طريقة أسهل لتحليل HTML الأساسي إلى DOM مقارنةً بـ innerHTML أو DOMParser.

تعديلات على واجهة برمجة تطبيقات مساحة التخزين المشتركة

يتيح هذا التحديث إمكانية تشغيل إطارات عمل مصغَّرة من مصادر متعددة بدون الحاجة إلى إنشاء إطار iframe.

واجهة برمجة تطبيقات Streams: تكرار غير متزامن لـ ReadableStream

توفر واجهات برمجة التطبيقات لمصادر البيانات عناصر أساسية واسعة الانتشار وقابلة للتشغيل التفاعلي لإنشاء مجموعات بيانات وإنشاءها واستخدامها. يتيح هذا التغيير استخدام البروتوكول غير القابل للتكرار غير المتزامن مع واجهة برمجة التطبيقات ReadableStream API، ما يتيح استخدام مجموعات بث قابلة للقراءة كمصدر لتكرارات await...of.

SVG context-fill وcontext-stroke

تنفيذ ميزة SVG الحالية التي تسمح الكلمتَين الرئيسيتَين context-fill وcontext-stroke عند تحديد خصائص التعبئة والحد. يؤثر ذلك فقط في الأشجار الفرعية بتنسيق SVG التي يتم إنشاء مثيل لها باستخدام عنصر <use> وفي عناصر <marker> التي يتم إنشاء مثيل لها باستخدام السمة marker على عنصر <path>. وفي هذه الحالات، يتم التعامل مع context-fill وcontext-stroke ضمن قيمة السمتَين fill وstroke في <use> أو <path>.

WebGPU: دعم ServiceWorker وSharedWorker

تمت إضافة الدعم ServiceWorker وSharedWorker إلى WebGPU بما يتوافق مع إمكانات WebGL.

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

يسمح العاملون المشترَكون باستخدام العديد من علامات التبويب أو سياقات الإضافات لتنسيق موارد WebGPU ومشاركتها. يؤدي هذا إلى أداء أكثر سلاسة واستخدام أكثر كفاءة لأجهزة الرسومات للمستخدم.

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

توفر واجهة برمجة تطبيقات WebSocket واجهة JavaScript لبروتوكول RFC6455 WebSocket. وفي حين أنه خدم بشكل جيد، إلا أنه أمر محرج من منظور بيئة العمل ويفتقر إلى الميزة المهمة المتمثلة في الضغط الخلفي. إنّ الغرض من واجهة برمجة تطبيقات WebSocketStream API هو حل هذه العيوب من خلال دمج whatWG Streams مع واجهة برمجة تطبيقات WebSocket.

يمكنك الاطّلاع على مزيد من المعلومات في WebSocketStream: دمج مجموعات البث مع WebSocket API.

تغليف المفتاح X25519Kyber768 لبروتوكول أمان طبقة النقل (TLS)

تتم حماية الزيارات الحالية عبر بروتوكول أمان طبقة النقل (TLS) في Chrome من التحليل المستقبلي للتشفير الكمي من خلال تفعيل خوارزمية اتفاق المفاتيح المقاومة للكمّ Kyber768.

وهي اتفاقية رئيسية هجينة X25519 وKyber768 تستند إلى معيار مجموعة مهندسي شبكة الإنترنت (IETF). تقع هذه المواصفات والإطلاق خارج نطاق W3C. سيتم إطلاق هذه الاتفاقية الرئيسية كتشفير TLS، ويجب أن تكون شفافة للمستخدمين.

تعرَّف على مزيد من المعلومات في المقالة حماية زيارات Chrome باستخدام خوارزمية Hybrid Kyber KEM.

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

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

تجربة الإيقاف النهائي لأحداث التغيير

يمكن أن تؤدي أحداث التغيُّرات، بما في ذلك DOMSubtreeModified وDOMNodeInserted وDOMNodeRemoved وDOMNodeRemovedFromDocument وDOMNodeInsertedIntoDocument وDOMCharacterDataModified، إلى الإضرار بأداء الصفحة، وزيادة تعقيد إضافة ميزات جديدة إلى الويب بشكل كبير. تم إيقاف واجهات برمجة التطبيقات هذه من المواصفات في عام 2011، وتم استبدالها (في 2012) بواجهة برمجة تطبيقات Mutation Monitorer ذات أداء أفضل.

سيتم تلقائيًا إيقاف إمكانية تغيير حدث التبديل في Chrome 127، في 30 تموز (يوليو) 2024 تقريبًا. يجب نقل الرمز إلى واجهة برمجة التطبيقات Mutation Monitorer قبل ذلك التاريخ لتجنُّب تعطُّل الموقع الإلكتروني. إذا احتجت إلى مزيد من الوقت، سجِّل في الفترة التجريبية لإيقاف ميزة "أحداث التبديل" لإعادة تفعيل الميزة لفترة محدودة على موقع إلكتروني معيّن. يمكن استخدام ذلك من خلال Chrome 134، الذي ينتهي في 25 آذار (مارس) 2025.

يمكن بدلاً من ذلك استخدام سياسة المؤسسة MutationEventsEnabled للغرض نفسه أيضًا من خلال Chrome 134.

تسجَّل في الفترة التجريبية التي تهدف إلى إيقاف ميزة تبديل الأحداث.

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

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

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

إزالة الاسم المستعار لـ "window-placement" للحصول على سياسة الأذونات وسياسة الأذونات "window-management"

يزيل العنوان البديل "window-placement" لسياسة الأذونات والأذونات "window-management". هذا جزء من جهد أكبر لإعادة تسمية السلاسل عن طريق إيقاف ميزة "window-placement" نهائيًا وإزالتها. يؤدي تغيير المصطلحات إلى تحسين مدة استخدام الواصف مع تطوّر واجهة برمجة التطبيقات Window Management API بمرور الوقت.