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

تاريخ النشر: 28 مايو 2025

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

CSS وواجهة المستخدم

يضيف هذا الإصدار ست ميزات جديدة في CSS وواجهة المستخدم.

stretch الكلمة الرئيسية لتحديد الحجم في CSS

كلمة رئيسية لخصائص تحديد حجم CSS (مثل width وheight) تتيح للعناصر أن تتوسّع لملء المساحة المتاحة في الحاوية تمامًا. وهي تشبه 100%، إلا أنّ المقاس الناتج يتم تطبيقه على مربّع الهامش الخاص بالعنصر بدلاً من المربّع المشار إليه بواسطة box-sizing. يسمح استخدام هذه الكلمة الرئيسية للعنصر بالاحتفاظ بهوامشه مع الحفاظ على أكبر حجم ممكن.

تحسب الدالتان abs() وsign() المرتبطتان بالإشارة دوالاً مختلفة مرتبطة بإشارة وسيطتهما.

متغيّر env في CSS لحجم الخط على مستوى نظام التشغيل

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

sibling-index() وsibling-count() في CSS

يمكن استخدام الدالتَين sibling-index() وsibling-count() كأعداد صحيحة في قيم سمات CSS لتنسيق عنصر استنادًا إلى موقعه بين العناصر الشقيقة أو العدد الإجمالي للعناصر الشقيقة على التوالي. يمكن استخدام هذه الدوال مباشرةً كقيم عددية صحيحة، ولكن الأهم هو استخدامها ضمن تعبيرات calc().

li {
  animation-delay: calc(0.1s * sibling-index());
}

الترميز الوظيفي لمستوى التقدّم في الاستيفاء: الدالة progress() في CSS

إنّ الترميز الوظيفي progress() هو دالة رياضية تعرض القيمة <number> التي تمثّل موضع عملية حسابية واحدة (قيمة التقدم) بين عمليتَي حسابيتَين أخريَين (قيمة بداية التقدم وقيمة نهاية التقدم).

Viewport Segments Enumeration API

تسمح واجهة برمجة التطبيقات Viewport Segments API للمطوّرين بتكييف تخطيط الويب الخاص بهم لاستهداف الأجهزة القابلة للطي. تحدّد أقسام إطار العرض موضع منطقة منفصلة منطقيًا من إطار العرض وأبعادها. يتم إنشاء أجزاء من مساحة العرض عندما يتم تقسيم مساحة العرض بواسطة ميزة واحدة أو أكثر من ميزات الجهاز (مثل طي أو مفصلة بين شاشتين منفصلتين) تعمل كفاصل، والأجزاء هي مناطق مساحة العرض التي يمكن للمطوّر التعامل معها بشكل منفصل منطقيًا.

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

إتاحة البيانات الوصفية الخاصة باتجاه إطار الفيديو في WebCodecs

تضيف هذه الميزة القيمتَين rotation: int وflip: bool إلى واجهات مختلفة ذات صلة بالفيديو في WebCodecs، ما يتيح للمطوّرين العمل مع مصادر اللقطات التي تتضمّن معلومات عن الاتجاه (مثل كاميرات Android وبعض الوسائط). تتيح واجهة VideoFrame إنشاء VideoFrames مع إمكانية تدويرها وقلبها بشكل عشوائي، بالإضافة إلى أدوات الوصول إلى هذه المعلومات في عنصر VideoFrame. يكتسب العنصر VideoDecoderConfig الحقلَين rotation وflip اللذين يتم إرسالهما تلقائيًا في عناصر VideoFrame التي تم فك ترميزها. تكتسب الفئة VideoEncoder آليات لنقل معلومات التدوير والقلب من encode() إلى VideoDecoderConfig التي يتم إصدارها كجزء من EncodedVideoChunkMetadata. إذا تم استدعاء encode() باستخدام إطارات ذات اتجاه مختلف، سيتم عرض استثناء غير قاتل. يمكن استخدام الطريقة configure() لإعادة ضبط الاتجاه المسموح به.

واجهة برمجة التطبيقات لإعداد التقارير عن الأعطال: is_top_level وvisibility_state

تضيف هذه الميزة حقلَي السلسلة is_top_level وvisibility_state إلى نص واجهة برمجة التطبيقات لإعداد تقارير الأعطال الذي يتم إرساله إلى نقطة نهاية إعداد التقارير التلقائية لتقارير الأعطال.

تجنُّب < و> في السمات عند التسلسل

تجنُّب < و> في قيم السمات عند التسلسل يقلّل ذلك من خطر هجمات XSS التي تحدث بسبب التغيير، والتي تحدث عندما يتم تفسير قيمة السمة على أنّها رمز علامة بداية بعد تسلسلها وإعادة تحليلها.

سياسة سلامة النصوص البرمجية

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

مساحة التخزين المتوفرة التي يمكن توقّعها

عرض حصة تخزين يمكن توقّعها من خلال واجهة برمجة التطبيقات Estimate في StorageManager للمواقع الإلكترونية التي لا تتضمّن أذونات تخزين غير محدودة من الممكن رصد وضع تصفّح المستخدم من خلال مساحة التخزين المتوفّرة المُبلَغ عنها، لأنّ مساحة التخزين المتاحة تكون أصغر بكثير في وضع التصفّح المتخفي مقارنةً بالوضع العادي.

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

حدث pushsubscriptionchange عند إعادة الاشتراك

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

قواعد التوقّع: إضافة prefetchCache وprerenderCache إلى عنوان Clear-Site-Data

قيمتان جديدتان لعنوان Clear-Site-Data لمساعدة المطوّرين في استهداف مسح ذاكرة التخزين المؤقت الخاصة بالعرض المُسبَق والجلب المسبق: prefetchCache وprerenderCache. يمكن إرسال هذه الرموز في أي طلبات، ولا يلزم إرسالها في طلب المستند (على سبيل المثال، يمكن إرجاعها عند إضافة منتج إلى سلة التسوّق أو عند تسجيل الدخول والخروج من خلال استجابات طلبات البيانات من واجهة برمجة التطبيقات لمحو التخمينات بشأن تغيير الحالة).

قواعد التوقّع: حقل target_hint

يوسّع ذلك بنية قواعد التوقّع للسماح للمطوّرين بتحديد الحقل target_hint. يوفّر هذا الحقل تلميحًا للإشارة إلى عنصر مستهدف قابل للتصفّح سيتم تفعيل الصفحة المعروضة مُسبقًا فيه في النهاية. عند تحديد _blank كتلميح، يمكن تفعيل صفحة معروضة مُسبقًا لصفحة قابلة للتنقّل تم فتحها بواسطة window.open(). الحقل غير متاح للتحميل المسبق.

سياسة "المصدر نفسه" الصارمة لواجهة برمجة التطبيقات Storage Access API

تعدّل هذه السمة دلالات Storage Access API لتتّبع بدقة سياسة المصدر نفسه، وذلك فيما يتعلّق بالأمان. أي أنّ استخدام document.requestStorageAccess() في إطار لا يرفق ملفات تعريف الارتباط تلقائيًا إلا بالطلبات الموجّهة إلى مصدر إطار iframe (وليس الموقع الإلكتروني).

Summarizer API

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

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

Language Detector API

واجهة برمجة تطبيقات JavaScript لاكتشاف اللغة المستخدَمة في نص معيّن، مع مستويات ثقة. يُعدّ اكتشاف اللغة مكمّلاً مهمًا للترجمة، ويمكن استخدامه مع Translator API. على سبيل المثال، يمكنك تلقّي بيانات أدخلها المستخدم بلغة غير معروفة، وتحديد اللغة، ثم ترجمة النص إلى لغة مستهدَفة معيّنة. مع أنّ المتصفّحات غالبًا ما تتضمّن ميزات رصد اللغة، إلا أنّ هذه الميزة توفّر للمطوّرين على الويب الإمكانات نفسها من خلال واجهة برمجة تطبيقات JavaScript، ما يكمّل واجهة برمجة تطبيقات الترجمة.

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

يمكنك الاطّلاع على مزيد من المعلومات في مقالة التعرّف على اللغة المستخدَمة باستخدام الذكاء الاصطناعي المضمّن.

Translator API

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

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

إضافات نطاق تطبيقات الويب

تضيف هذه السمة حقل "scope_extensions" في بيان تطبيق الويب الذي يتيح لتطبيقات الويب توسيع نطاقها ليشمل مصادر أخرى. يتيح ذلك عرض المواقع الإلكترونية التي تتحكّم في نطاقات فرعية ونطاقات علوية متعددة كتطبيق ويب واحد، ويتطلّب إدراج المصادر للتأكّد من الربط بتطبيق الويب باستخدام ملف إعداد .well-known/web-app-origin-association.

Web serial عبر البلوتوث على Android

تتيح هذه الميزة لصفحات الويب وتطبيقات الويب الاتصال بالمنافذ التسلسلية عبر البلوتوث على أجهزة Android. يتيح Chrome على Android الآن استخدام Web Serial API عبر Bluetooth RFCOMM. يتم تفعيل سياسات المؤسسة الحالية (DefaultSerialGuardSetting وSerialAllowAllPortsForUrls وSerialAllowUsbDevicesForUrls وSerialAskForUrls وSerialBlockedForUrls) على المنصات الأخرى في حالات future_on لنظام التشغيل Android. سيتم تفعيل جميع السياسات باستثناء SerialAllowUsbDevicesForUrls بعد تفعيل الميزة. سيتم تفعيل SerialAllowUsbDevicesForUrls في إصدار مستقبلي بعد أن يوفّر نظام التشغيل Android إمكانية استخدام منافذ تسلسلية سلكية على مستوى النظام.

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

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

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

إيقاف إزالة النطاق غير المتزامن نهائيًا في إضافات Media Source

منذ فترة طويلة، تم تغيير معيار Media Source لعدم السماح بالسلوكيات المحدّدة بشكل غامض التي تتضمّن عمليات إزالة غير متزامنة للنطاق:

  • لم يعُد SourceBuffer.abort() يوقف عمليات SourceBuffer.remove().
  • لم يعُد بإمكان الإعداد MediaSource.duration اقتطاع الوسائط المخزّنة مؤقتًا حاليًا.

سيتم الآن طرح استثناءات في كلتا الحالتين.

إزالة خيار SwiftShader البديل

تم إيقاف إمكانية الرجوع تلقائيًا إلى WebGL المستند إلى برنامج العرض SwiftShader، وسيتعذّر إنشاء سياق WebGL بدلاً من الرجوع إلى SwiftShader. تم ذلك لسببَين أساسيَين:

  1. تمثّل SwiftShader خطرًا أمنيًا كبيرًا بسبب تشغيل الرمز البرمجي الذي تم تجميعه في الوقت الفعلي (JIT) في عملية وحدة معالجة الرسومات (GPU) في Chromium.
  2. يواجه المستخدمون تجربة سيئة عند الرجوع من WebGL عالي الأداء المستند إلى وحدة معالجة الرسومات إلى تنفيذ مستند إلى وحدة المعالجة المركزية. لا يمكن للمستخدمين التحكّم في هذا السلوك، كما يصعب وصفه في تقارير الأخطاء.

خلال فترة الإيقاف النهائي، سيظهر تحذير في وحدة تحكّم &quot;أدوات مطوّري البرامج في Chrome&quot; عند إنشاء سياق WebGL واستخدامه مع SwiftShader. سيؤدي اجتياز --enable-unsafe-swiftshader إلى إزالة رسالة التحذير هذه.