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

تاريخ النشر: 11 مارس 2026

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

النطاق المُعنوَن للمخطط الزمني scroll

توسّع هذه الميزة مجموعة النطاقات المُعنوَنة في ViewTimelines، وتضيف النطاق scroll.

قدّمت واجهة برمجة التطبيقات Scroll-Driven Animations السمة ViewTimelines بالإضافة إلى النطاقات المسماة التي تشير إلى أجزاء من ViewTimeline تحدّد نطاق الحركة.

ومع ذلك، كانت جميع النطاقات المسماة المقدَّمة محصورة في جزء ViewTimeline حيث يظهر موضوعها. ويفيد المؤلّفين في الرجوع إلى المدى الكامل لحاوية التمرير الأساسية في المخطط الزمني. تضيف هذه الميزة نطاقًا مُعنوَنًا من scroll إلى المجموعة الحالية (entry وexit وcover وcontain).

CSS contrast-color()

يمكنك استخدام هذه الدالة لاستيفاء متطلبات التباين المتعلقة بتسهيل الاستخدام.

يمكن استخدام الدالة contrast-color() في أي مكان في CSS حيث يُتوقّع توفّر قيمة لون. تأخذ هذه الدالة وسيط قيمة لونية، وتعرض إما black أو white، حسب اللون الذي يوفّر أعلى تباين مع وسيط اللون.

CSS border-shape

تتيح لك CSS border-shape إنشاء حدود غير مستطيلة الشكل، بأي شكل عشوائي (على سبيل المثال، polygon أو circle أو shape()).

على الرغم من أنّ border-shape يقبل الأشكال نفسها التي يقبلها clip-path، إلا أنّه يختلف عنه بشكل أساسي، إذ يحدّد border-shape شكل الحدود ويزيّنها ويقص الجزء الداخلي فقط.

يحتوي border-shape على خيارَين: خيار يرسم خطوطًا حول شكل، وخيار آخر يملأ المساحة بين شكلَين.

عمليات الانتقال بين المشاهد على مستوى العنصر

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

تعديل على CSS: فصل السمتَين width وstyle

يتوافق Chrome مع مواصفات CSS المعدَّلة لسلوك الخصائص border-width وoutline-width وcolumn-rule-width. في السابق، إذا تم ضبط border-style أو outline-style أو column-rule-style المقابل على none أو hidden، كان يتم فرض العرض المحسوب لهذه الخصائص على 0px، بغض النظر عن القيمة المحدّدة.

وبفضل هذا التغيير، تعكس القيم المحسوبة لكل من border-width وoutline-width وcolumn-rule-width دائمًا القيم التي يحدّدها المؤلف، بغض النظر عن السمة *-style. بالإضافة إلى ذلك، تعكس القيم التي تمّت تسويتها (كما تمّ إرجاعها بواسطة getComputedStyle()) لكلّ من outline-width وcolumn-rule-width القيم المحدّدة.

يتوافق هذا التغيير مع متصفّحَي Firefox وWebKit اللذين سبق لهما تنفيذ هذا السلوك.

واجهة CSSPseudoElement

تمثّل واجهة CSSPseudoElement عنصرًا زائفًا في JavaScript.

يتم عرض CSSPseudoElement من Element.pseudo(type)، حيث يكون type: ::after، ::before، ::marker. ‫CSSPseudoElement هو عنصر وكيل يمثّل عنصرًا زائفًا، وبالتالي، على عكس العنصر الزائف، يكون CSSPseudoElement متوفّرًا دائمًا.

يتضمّن CSSPseudoElement السمات/الطرق التالية:

  • السمة type هي سلسلة تمثّل نوع العنصر الزائف.
  • السمة element هي العنصر الأصلي النهائي للعنصر الزائف.
  • السمة parent هي العنصر الأصلي للعنصر الزائف (إما العنصر أو CSSPseudoElement للعناصر الزائفة المتداخلة).
  • الطريقة pseudo(type) لاسترداد العناصر الزائفة المتداخلة

الاستهداف الزائف للأحداث

يتم توسيع نطاق أحداث معيّنة لتضمين .pseudoTarget التي تكون إما CSSPseudoElement (إذا كان التفاعل مع عنصر زائف) أو null.

يوفّر ذلك معلومات أكثر تحديدًا عن مصدر الحدث، مثل أنّه لم يتم النقر على العنصر الأصلي النهائي (Event.target) فحسب، بل تم النقر على ::after تحديدًا. يُرجى العِلم أنّ Event.target لم يتغيّر، لذا لا يحتوي الحدث إلا على معلومات إضافية حول التفاعل مع العنصر الزائف.

الأحداث هي UIEvent وAnimationEvent وTransitionEvent.

لا تتوافق هذه الميزة مع mouseover وmouseout وmouseenter وmouseleave وpointer*.

WebXR Plane Detection

تتيح واجهة برمجة التطبيقات WebXR Plane Detection API للمواقع الإلكترونية استرداد مجموعة المستويات التي تم رصدها في بيئة المستخدم. يوفّر ذلك جهدًا أقل للمطوّرين ويكون أكثر فعالية من استخدام ميزة WebXR لاستشعار العمق، لأنّه يمكن تمثيل الأسطح، مثل الجدران التي تحجب الأجسام، بشكل كامل إذا كان النظام يعرف حدود الجدار. ستعرض خريطة العمق الجدار، ولكن ستتداخل الأجسام التي تقع أمام الجدار مع بعضها، ما قد يحجب النطاق الكامل للجدار. بالإضافة إلى ذلك، تتوفّر معلومات التصنيف الدلالي عندما يكون الجهاز على دراية بهذه التصنيفات وتندرج ضمن فئات محدّدة مسبقًا، ما يوفّر معرفة أفضل بالعالم.

طبقات WebXR

توفّر WebXR Layers طريقة أكثر فعالية لعرض المحتوى الغامر.

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

تحليل XML في Rust لسيناريوهات غير XSLT

نحن بصدد طرح محلّل XML مكتوب بلغة Rust للحالات التي نكون فيها متأكدين من عدم الحاجة إلى معالجة XSLT.

يحسّن محلّل XML المكتوب بلغة Rust مستوى الأمان من خلال إزالة أخطاء تلف الذاكرة في تحليل XML، ويهدف إلى استبدال استخدامنا لمكتبة libxml2 (المكتوبة بلغة C) ببديل آمن.

سيوقف Chrome نهائيًا استخدام XSLT. أثناء استمرار هذه العملية، يمكنك استخدام تحليل XML الآمن في Rust في الحالات التي لا تتطلّب استخدام XSLT:

إضافة دعم لأنواع وحدات JSON والأنماط كوجهات <link rel="modulepreload">. تتوفّر <link rel="modulepreload"> حاليًا في Chromium (راجِع https://chromestatus.com/feature/5762805915451392)، ولكنّها تتيح فقط التحميل المسبق لبرامج نصية شبيهة بالوحدات. تعالج هذه الميزة ثغرة في الوظائف، إذ إنّ نصوص JSON البرمجية ووحدات CSS البرمجية متوافقة مع Chromium في أماكن أخرى، ولكنّها غير متوافقة كوجهات <link rel="modulepreload">. يمكن تحميل وحدات Style مسبقًا باستخدام <link rel="modulepreload" as="style" href="...">، ويمكن تحميل وحدات JSON مسبقًا باستخدام <link rel="modulepreload" as="json" href="...">.

Math.sumPrecise

اقتراح TC39 لإضافة طريقة لجمع قيم متعددة إلى JavaScript

أضِف طريقة Math.sumPrecise تقبل عناصر قابلة للتكرار وتعرض مجموع القيم في العناصر القابلة للتكرار باستخدام خوارزمية أكثر دقة من الجمع البسيط.

توفير السمة path في عنصر SVG <textpath>

يضيف هذا التغيير إمكانية استخدام السمة path في عنصر SVG <textPath>، ما يتيح للمؤلفين تحديد هندسة مسار النص المضمّن باستخدام بيانات المسار SVG وتقليل الحاجة إلى عناصر <path> محددة بشكل منفصل.

يحلّ <textPath> هندسة مسار النص باستخدام القواعد التالية:

  1. إذا كانت كلتا السمتَين path وhref متوفّرتَين، يتم تحديد الشكل الهندسي من السمة path.
  2. إذا كانت السمة path فقط متوفرة وتم تحليلها بنجاح، سيتم استخدام تعريف المسار المضمّن.
  3. في حال عدم توفّر السمة path أو تعذُّر تحليلها، وتوفُّر السمة href، يتم استخدام العنصر <path> المشار إليه كبديل.
  4. يتم الحفاظ على السلوك الحالي الذي يقتصر على href بدون تغيير.

يتّبع هذا التنفيذ تعريف السمة path في مواصفات SVG 2 على <textPath>، كما أنّ سلوك درجة الدقة يتوافق مع محركات المتصفحات الأخرى، ما يحسّن إمكانية التشغيل التفاعلي والامتثال للمعايير.

الحصول على إمكانات ميزة "تأكيد الدفع الآمن"

تضيف هذه السمة طريقة ثابتة جديدة إلى Payment Request تتيح لمطوّري الويب الحصول على إمكانات تنفيذ ميزة &quot;تأكيد الدفع الآمن&quot; في المتصفح.

يساعد ذلك مطوّري الويب في معرفة الإمكانات المتاحة في ميزة &quot;تأكيد الدفع الآمن&quot; ليتمكّنوا من تحديد ما إذا كانوا يريدون استخدامها مع هذه الإمكانات.

تعديل حدود Update Device Memory API

تعديل على مجموعة القيم المحتملة لواجهة برمجة التطبيقات "ذاكرة الجهاز":

  • ‫Android: 1 أو 2 أو 4 أو 8
  • غير ذلك: 2 و4 و8 و16 و32.

استبدال القيم القديمة 0.25 و0.5 و1 و2 و4 و8 التي أصبحت قديمة

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

قيود الوصول إلى الشبكة المحلية في Service Worker WindowClient.navigate()

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

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

لا ينطبق ذلك إلا إذا كان WindowClient الذي يتم الانتقال إليه عبارة عن إطار فرعي، إذ لا يفرض Chrome أي قيود على LNA في عمليات الانتقال إلى الإطار الرئيسي.

قيود الوصول إلى الشبكة المحلية لبروتوكول WebSockets

سيتم توسيع نطاق القيود المفروضة على "الوصول إلى الشبكة المحلية" (LNA) ليشمل WebSockets. تؤدي عمليات الاتصال عبر WebSockets بالعنوان المحلي الآن إلى ظهور طلبات للحصول على إذن.

تظل جميع سياسات LNA للمؤسسات سارية على قيود LNA WebSockets، بما في ذلك LocalNetworkAccessAllowedForUrls وLocalNetworkAccessBlockedForUrls وLocalNetworkAccessRestrictionsTemporaryOptOut.

يمكنك الاطّلاع على مزيد من المعلومات حول LNA في مقالة الوصول إلى الشبكة المحلية.

قيود الوصول إلى الشبكة المحلية في WebTransport

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

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

يقتصر هذا الإذن على السياقات الآمنة.

تطبيقات الويب المعزولة فقط: واجهة برمجة التطبيقات Web Printing API

تتيح واجهة برمجة التطبيقات هذه إمكانية الدمج بشكل أعمق مع الوظائف المتعلّقة بالطابعات في "تطبيقات الويب المعزولة" (IWA).

توفّر Web Printing API مجموعة من طرق JavaScript التي تتيح للمطوّرين الاستعلام عن الطابعات المتصلة بالجهاز وإرسال مهام الطباعة إلى الطابعات الأنسب وإدارة خيارات مهمة الطباعة وحالتها. ولتمثيل هذه المفاهيم، يعتمد على أسماء السمات ودلالاتها من مواصفات "بروتوكول الطباعة على الإنترنت" (IPP).

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

في الإصدار 147 من Chrome، يمكنك الاشتراك في التجارب الأصلية الجديدة التالية.

توقيت الحاوية

تتيح لك واجهة برمجة التطبيقات Container Timing API مراقبة وقت عرض الأقسام المشروحة من DOM على الشاشة ووقت انتهاء عملية الطلاء الأولية. يمكن للمطوّر أن يضع علامة على الأقسام الفرعية من DOM باستخدام السمة containertiming (على غرار elementtiming في Element Timing API) ويتلقّى إدخالات الأداء عند عرض هذا القسم للمرة الأولى. تتيح واجهة برمجة التطبيقات هذه للمطوّرين قياس توقيت العناصر المختلفة في صفحاتهم.

حدث الملء التلقائي

تُعدّ ميزة &quot;الملء التلقائي&quot; من الميزات الأساسية على الويب، وهي تقلّل من المشاكل التي يواجهها الملايين من المستخدمين يوميًا. ومع ذلك، قد يكون من الصعب ضمان عمل ميزة "الملء التلقائي" بشكل موثوق مع النماذج الديناميكية على مستوى عمليات التنفيذ المتعددة.

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

عنصر HTML لتثبيت تطبيق الويب

تتيح للموقع الإلكتروني أن يطلب من المستخدمين بشكل إعلاني تثبيت تطبيق ويب. يقبل العنصر اختياريًا سمتَين تسمحان بتثبيت المحتوى من مصدر مختلف.

قوائم السماح بالاتصال

قوائم السماح بالاتصال هي ميزة مصمّمة لتوفير تحكّم صريح في نقاط النهاية الخارجية من خلال حظر الاتصالات التي يتم بدؤها باستخدام Fetch API أو واجهات برمجة التطبيقات الأخرى لمنصة الويب من مستند أو عامل.

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

الميزات التي سيتم إيقافها نهائيًا وإزالتها

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

يتضمّن هذا الإصدار من Chrome إيقاف الميزة(الميزات) X نهائيًا.

إزالة XSLT المضمّنة لإنتاج SVG

سنبدأ بإيقاف استخدام XSLT المضمّنة تدريجيًا لإنتاج SVG. يتم نشر هذا الإصدار بالتزامن مع الاختبار التجريبي لمحلّل XML المستند إلى Rust، ولا يتم نشره على الفور بنسبة% 100 في إصدار الشحن المحدّد.

قد يحتوي ملف XML مصمّم خصيصًا على ورقة أنماط XSL تحوّل بيانات XML عامة إلى ملف SVG.

مثال: https://gist.github.com/drott/1fc70b3c7f0ac314d1fe2e5beecc5490?short_path=1c60adf

هذه حالة خاصة من XSLT التي يعتبرها Chrome غير موجودة فعليًا على الويب وفقًا لمقاييس الاستخدام. يخطّط Chrome لإيقاف هذا الاستخدام المحدّد لـ XSLT نهائيًا وإزالته قبل إيقاف XSLT نهائيًا.