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

تاريخ النشر: 15 كانون الثاني (يناير) 2024

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

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

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

دالة attr() المتقدّمة في CSS

تنفيذ الإضافة إلى attr() المحدّدة في المستوى 5 من CSS، والتي تسمح بأنواع أخرى غير <string> واستخدامها في جميع خصائص CSS (بالإضافة إلى التوافق الحالي مع العنصر الاصطناعي content)

اطّلِع على مزيد من المعلومات في مقالة ترقية خدمة مقارنة الأسعار attr().

الفئة الصورية :open في CSS

تتطابق الفئة الزائفة :open مع <dialog> و<details> عندما يكونان في حالتهما المفتوحة، وتتطابق مع <select> و<input> عندما يكونان في أوضاع تتضمّن أداة اختيار وتكون أداة الاختيار ظاهرة.

طلبات حاويات حالة الانتقال في CSS

استخدِم طلبات البحث عن الحاويات لتنسيق العناصر المشتقة من الحاويات استنادًا إلى حالة التمرير.

حاوية طلب البحث هي إما حاوية لفائف أو عنصر يتأثر بموضع لفائف حاوية لفائف. يمكن الاستعلام عن الحالات التالية:

  • stuck: حاوية ذات موضع ثابت ملتصقة بإحدى حواف مربع التمرير
  • snapped: يتم حاليًا تثبيت حاوية محاذية لميزة "التمرير السريع" أفقيًا أو عموديًا.
  • scrollable: ما إذا كان يمكن الانتقال في حاوية لفائف التمرير في اتجاه تم الاستعلام عنه

يتيح container-type: scroll-state جديد إمكانية الاستعلام عن الحاويات.

#sticky {
  position: sticky;
  container-type: scroll-state;
}

@container scroll-state(stuck: top) {
  #sticky-child {
    font-size: 75%;
  }
}

اطّلِع على مزيد من المعلومات في CSS scroll-state().

text-box وtext-box-trim وtext-box-edge من CSS

لتحقيق التوازن الأمثل لمحتوى النص، تتيح السمتَان text-box-trim و text-box-edge، بالإضافة إلى السمة المختصرة text-box، التحكّم بشكل أدق في المحاذاة العمودية للنص.

تحدِّد السمة text-box-trim الجوانب التي يجب اقتصاصها، سواء من الأعلى أو الأسفل، ويحدِّد السمة text-box-edge كيفية اقتصاص الحافة.

تتيح لك هذه السمات التحكّم في المسافة الرأسية بدقة باستخدام مقاييس الخط. يمكنك الاطّلاع على مزيد من المعلومات في CSS text-box-trim.

قيمة hint للسمة popover

تحدِّد واجهة برمجة التطبيقات Popover API السلوك لقيمتين للسمة popover: auto وmanual. تصف هذه الميزة قيمة ثالثة، وهي popover=hint. تختلف سلوكيات التلميح عن سلوكيات التلميح التي غالبًا ما تكون مرتبطة بسلوكيات "معلومات توضيحية". يكمن الاختلاف الرئيسي في أنّه يكون hint تابعًا لـ auto عند فتح تجميعات متداخلة من النوافذ المنبثقة. وبالتالي، يمكن فتح نافذة منبثقة hint غير ذات صلة بينما تظل مجموعة حالية من نوافذ منبثقة auto مفتوحة.

يتمثل المثال الأساسي في أنّ أداة اختيار <select> مفتوحة (popover=auto) ويتم عرض تلميح (popover=hint) يتم تشغيله من خلال التمرير بمؤشر الماوس. لا يؤدي هذا الإجراء إلى إغلاق أداة اختيار <select>.

تحسينات على أداة استدعاء النافذة المنبثقة وموضع الربط

تضيف طريقة إلزامية لضبط علاقات المُشغِّل بين النوافذ المنبثقة باستخدام popover.showPopover({source}). تتيح علاقات المُستدعي إنشاء مراجع عناصر الربط الضمنية.

يجب ألا تُعيد النافذة المنبثقة المُدمجة داخل أداة الاستدعاء استدعاؤها.

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

<button popovertarget=foo>Activate
  <div popover id=foo>Clicking me shouldn't close me</div>
</button>

في السابق، كان يحدث ذلك لأنّ النقر على النافذة المنبثقة ينقل الفقاعات إلى <button> ويفعّل أداة الاستدعاء، ما يؤدي إلى إغلاق النافذة المنبثقة. تم الآن تغيير هذا السلوك إلى السلوك المتوقّع.

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

Animation.overallProgress

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

طريقة pause() لعنصر Atomics

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

إعداد تقارير تجزئة CSP للنصوص البرمجية

غالبًا ما تحتاج تطبيقات الويب المعقدة إلى تتبُّع الموارد الفرعية التي يتم تنزيلها لأغراض الأمان.

على وجه الخصوص، تتطلّب معايير المجال وأفضل الممارسات القادمة (مثل الإصدار 4 من معيار أمان بيانات قطاع بطاقات الدفع (PCI-DSS)) أن تحتفظ تطبيقات الويب بسجلّ لجميع النصوص البرمجية التي يتم تنزيلها وتنفيذها.

تستند هذه الميزة إلى CSP وReporting API للإبلاغ عن عناوين URL والدوالّ المتعلّقة بالتشفير العميق (لبروتوكول CORS/المصدر نفسه) لجميع موارد النصوص البرمجية التي يحمّلها المستند.

نقل يحافظ على حالة نموذج DOM

تُضيف هذه الوظيفة عنصرًا أساسيًا في نموذج DOM‏ (Node.prototype.moveBefore) يتيح لك نقل العناصر حول شجرة DOM، بدون إعادة ضبط حالة العنصر.

عند نقل العنصر بدلاً من إزالته وإدراجه، يتم الاحتفاظ بالحالة التالية، مثل ما يلي:

  • تظل <iframe> عنصرًا محمّلاً.
  • يظل العنصر النشط هو العنصر الذي يتم التركيز عليه.
  • تظل النوافذ المنبثقة ونوافذ الحوار المشروطة ونوافذ الحوار التي تظهر على سطح الشاشة مفتوحة.
  • تستمرّ تأثيرات الانتقال والصور المتحركة في CSS.

عرض سمة attributionsrc في <area>

يُعدّل عرض سمة attributionsrc في <area> بما يتوافق مع سلوك معالجة السمة الحالي، حتى في حال عدم عرضها.

بالإضافة إلى ذلك، من المنطقي أن تتوفّر السمة في <area>، لأنّ هذا العنصر هو سطح تنقّل من الدرجة الأولى، ويتوافق Chrome مع ذلك في السطوح الأخرى من <a> وwindow.open.

عرض renderTime مُعدَّلة من مصادر متعددة في وقت ظهور العناصر ومقياس LCP (بغض النظر عن Timing-Allow-Origin)

تحتوي إدخالات توقيت العناصر ومقياس LCP على سمة renderTime، وهي تتماشى مع الإطار الأول الذي تم فيه عرض صورة أو نص.

يتم حاليًا حظر هذه السمة للصور من مصادر مختلفة من خلال طلب استخدام الرأس Timing-Allow-Origin في مورد الصورة. ومع ذلك، من السهل التغلب على هذا القيد (على سبيل المثال، من خلال عرض صورة من مصدر مماثل وصورة من مصدر مختلف في الإطار نفسه).

وبما أنّ هذا الإجراء كان مصدرًا للالتباس، نخطّط بدلاً من ذلك لإزالة هذا القيد، وزيادة أوقات العرض بمقدار 4 مللي ثانية عندما لا يكون المستند معزولاً عن مصادر متعددة. يبدو أنّ هذا الإجراء كافٍ لتجنّب تسرُّب أي معلومات مفيدة عن وقت فك التشفير للصور من مصادر مختلفة.

واجهة FileSystemObserver

تُرسِل واجهة FileSystemObserver إشعارات إلى المواقع الإلكترونية بشأن التغييرات في نظام الملفات. ترصد المواقع الإلكترونية التغييرات في الملفات والمجلدات التي منحها المستخدم الإذن بالوصول إليها سابقًا على جهازه المحلي أو في نظام ملفات الحزمة (المعروف أيضًا باسم نظام ملفات Origin الخاص)، ويتم إعلامها بمعلومات التغيير الأساسية، مثل نوع التغيير.

تجميد الشاشة في وضع "توفير البطارية"

عندما يكون وضع "توفير الطاقة" مفعّلاً، سيجمِّد Chrome "مجموعة سياق التصفّح" التي تم إخفاؤها وإيقافها لمدة تزيد عن خمس دقائق إذا تجاوزت أي مجموعة فرعية من الإطارات المصدر نفسه ضمنها الحدّ الأقصى لاستخدام وحدة المعالجة المركزية، ما لم يكن:

  • توفّر وظيفة مؤتمرات الصوت أو الفيديو (يتم رصدها من خلال تحديد عملية تسجيل الميكروفون أو الكاميرا أو الشاشة/النافذة/علامة التبويب أو RTCPeerConnection مع قناة RTCDataChannel "مفتوحة" أو MediaStreamTrack "مباشر").
  • تتحكّم في جهاز خارجي (يتم رصده باستخدام WebUSB أو Web Bluetooth أو WebHID أو Web Serial).
  • يحافظ على قفل ويب أو اتصال IndexedDB يحظر تحديث إصدار أو معاملة على اتصال مختلف.

يتمثل التجميد في إيقاف التنفيذ مؤقتًا. ويتم تحديده رسميًا في واجهة برمجة التطبيقات Page Lifecycle API.

سيتم ضبط الحدّ الأقصى لاستخدام وحدة المعالجة المركزية لتجميد ‎10% تقريبًا من علامات التبويب في الخلفية عندما يكون وضع "توفير البطارية" مفعَّلاً.

خرائط استيراد متعددة

يجب حاليًا تحميل خرائط الاستيراد قبل أيّ وحدة ES، ولا يمكن أن تتوفّر سوى خريطة استيراد واحدة لكل مستند. وهذا يجعلها هشة وقد يكون من الصعب استخدامها في سيناريوهات الحياة الواقعية: أي وحدة يتم تحميلها قبلها تؤدي إلى تعطُّل التطبيق بالكامل، وفي التطبيقات التي تحتوي على العديد من الوحدات، تصبح هذه الوحدات موردًا كبيرًا يتسبب في حدوث عمليات حظر، لأنّه يجب تحميل الخريطة الكاملة لجميع الوحدات المحتملة أولاً.

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

رؤوس الوصول إلى مساحة التخزين

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

إتاحة إنشاء ClipboardItem باستخدام Promise<DOMString>

إنّ ClipboardItem، وهي الإدخال إلى طريقة الحافظة غير المتزامنة write()، پذیر الآن قيم السلاسل بالإضافة إلى Blobs في الدالة الإنشائية. يمكن أن يكون ClipboardItemData ملفًا بتنسيق Blob أو سلسلة أو وعدًا يتم حلّه ليصبح إما ملفًا بتنسيق Blob أو سلسلة.

WebAssembly Memory64

يضيف اقتراح memory64 دعمًا لذاكرات WebAssembly الخطية التي يزيد حجمها عن 2^32 بت. لا يقدّم هذا الإصدار أي تعليمات جديدة، بل يمدّد التعليمات الحالية للسماح بفهرسات 64 بت للذاكرة والجداول.

​​Web Authentication API: طريقة getClientCapabilities() PublicKeyCredential

تتيح لك طريقة PublicKeyCredential getClientCapabilities() تحديد ميزات WebAuthn المتوافقة مع برنامج العميل الخاص بالمستخدم. تعرض الطريقة قائمة بالإمكانات المتوافقة، ما يتيح للمطوّرين تخصيص تجربتَي مصادقة العميل وسير العمل استنادًا إلى وظائف العميل المحدّدة.

WebGPU: تنسيقات رؤوس تتألف من مكوّن واحد (وunorm8x4-bgra)

إضافة تنسيقات رؤوس إضافية غير متوفّرة في الإصدار الأول من WebGPU بسبب عدم توفّرها أو الإصدارات القديمة من macOS (التي لم تعُد متوافقة مع أي متصفح) تتيح تنسيقات رؤوس العناصر المكونة من مكوّن واحد للتطبيقات طلب البيانات اللازمة فقط، في حين كان عليها في السابق طلب ضعف هذا العدد على الأقل لأنواع البيانات التي تبلغ سعتها 8 و16 بت. يسهّل تنسيق unorm8x4-bgra تحميل ألوان رؤوس العناصر المشفّرة بترميز BGRA مع الاحتفاظ بتأثير التظليل نفسه.

خوارزمية X25519 لواجهة برمجة التطبيقات Web Cryptography API

توفّر خوارزمية X25519 أدوات لإجراء اتفاق على المفتاح باستخدام دالة X25519 المحدّدة في [RFC7748]. يمكن استخدام معرّف الخوارزمية "X25519" في واجهة SubtleCrypto للوصول إلى العمليات التي تم تنفيذها: generateKey و importKey وexportKey وderiveKey وderiveBits.

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

في الإصدار 133 من Chrome، يمكنك الاشتراك في الإصدارات التجريبية الجديدة التالية لميزة "مصدر الإعلان".

إيقاف تجميد الشاشة في وضع "توفير البطارية"

تتيح هذه الفترة التجريبية لإيقاف الميزة للمواقع الإلكترونية إيقاف سلوك التجميد في وضع "توفير البطارية" الذي يتوفّر في الإصدار 133 من Chrome.

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

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

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

إيقاف حد maxInterStageShaderComponents في WebGPU نهائيًا

تم إيقاف maxInterStageShaderComponents limit نهائيًا بسبب مجموعة من العوامل. تاريخ الإزالة المُتوقّع في الإصدار 135 من Chrome

  • التكرار مع maxInterStageShaderVariables: يخدم هذا الحدّ بالفعل هدفًا مشابهًا، وهو التحكّم في مقدار البيانات التي يتم تمريرها بين مراحل shader.
  • الاختلافات البسيطة: على الرغم من وجود اختلافات طفيفة في كيفية احتساب الحدّين ، إلا أنّ هذه الاختلافات بسيطة ويمكن إدارتها بفعالية ضمن الحدّ maxInterStageShaderVariables.
  • التبسيط: تؤدي إزالة maxInterStageShaderComponents إلى تبسيط واجهةshader وخفض مستوى التعقيد للمطوّرين. بدلاً من إدارة حدودَين منفصلَين باختلافات طفيفة، يمكنهم التركيز على maxInterStageShaderVariables الأكثر شمولاً واسمًا مناسبًا.

يزيل هذا الإصدار من Chrome ميزتَين.

في السابق، عند جلب مورد مسبقًا باستخدام <link rel=prefetch>، كان Chrome يتجاهل دلالات ذاكرة التخزين المؤقت (أي max-age وno-cache) للاستخدام الأول خلال خمس دقائق، لتجنُّب إعادة الجلب. يزيل Chrome الآن هذا الإجراء الخاص ويستخدم دلالات ذاكرة التخزين المؤقت العادية لبروتوكول HTTP.

وهذا يعني أنّ مطوّري الويب بحاجة إلى تضمين رؤوس التخزين المؤقت المناسبة (Cache-Control أو Expires) للاستفادة من مزايا <link rel=prefetch>.

ويؤثر ذلك أيضًا في <link rel=prerender> غير العادي.

إزالة بدء صفحة الترحيب في Chrome باستخدام علامات التبويب الأولية للإعدادات المفضّلة

لن يؤثر الآن تضمين chrome://welcome في سمة first_run_tabs في ملف initial_preferences. تمت إزالة هذه الصفحة لأنّها متكررة مع "تجربة التشغيل الأول" التي يتم تفعيلها على منصات الكمبيوتر المكتبي.