تاريخ النشر: 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 للنصوص البرمجية
غالبًا ما تحتاج تطبيقات الويب المعقدة إلى تتبُّع الموارد الفرعية التي يتم تنزيلها لأغراض الأمان.
على وجه الخصوص، تتطلّب المعايير وأفضل الممارسات القادمة في المجال (مثل PCI-DSS v4) أن تحتفظ تطبيقات الويب بسجلّ لجميع النصوص البرمجية التي يتم تنزيلها وتنفيذها.
تستند هذه الميزة إلى CSP وReporting API للإبلاغ عن عناوين URL والدوالّ المتعلّقة بالتشفير العميق (لبروتوكول CORS/المصدر نفسه) لجميع موارد النصوص البرمجية التي يحمّلها المستند.
نقل يحافظ على حالة نموذج DOM
تُضيف هذه الوظيفة عنصرًا أساسيًا في نموذج DOM (Node.prototype.moveBefore
) يتيح لك نقل العناصر
حول شجرة DOM، بدون إعادة ضبط حالة العنصر.
عند نقل العنصر بدلاً من إزالته وإدراجه، يتم الاحتفاظ بالحالة التالية، مثل ما يلي:
- تظل
<iframe>
عنصرًا محمّلاً. - يظل العنصر النشط هو العنصر الذي يتم التركيز عليه.
- تظل النوافذ المنبثقة ونوافذ الحوار المشروطة ونوافذ الحوار التي تظهر على سطح الشاشة مفتوحة.
- تستمرّ الانتقالات والصور المتحركة في CSS.
عرض سمة attributionsrc
في <area>
يُعدّل عرض سمة attributionsrc
في <area>
بما يتوافق مع سلوك معالجة السمة الحالي، حتى في حال عدم عرضها.
بالإضافة إلى ذلك، من المنطقي أن تتوفّر السمة في <area>
، لأنّ
هذا العنصر هو سطح تنقّل من الدرجة الأولى، ويتوافق Chrome مع ذلك في
السطوح الأخرى من <a>
وwindow.open
.
عرض renderTime
مُعدَّلة من مصادر متعددة في وقت ظهور العناصر وسرعة عرض أكبر محتوى مرئي على الصفحة (بغض النظر عن Timing-Allow-Origin
)
تحتوي إدخالات توقيت العناصر ومقياس LCP على سمة renderTime
، وهي تتماشى مع
الإطار الأول الذي تم فيه عرض صورة أو نص.
يتم حاليًا حظر هذه السمة للصور من مصادر مختلفة من خلال طلب استخدام الرأس
Timing-Allow-Origin
في مورد الصورة. ومع ذلك، من السهل التغلب على هذا القيد (على سبيل المثال، من خلال عرض صورة من مصدر مماثل وصورة من مصدر مختلف في الإطار نفسه).
وبما أنّ هذا الإجراء كان مصدرًا للارتباك، نخطّط بدلاً من ذلك لإزالة هذا القيد، وزيادة أوقات العرض بمقدار 4 مللي ثانية عندما لا يكون المستند معزولاً عن مصادر متعددة. يبدو أنّ هذا الإجراء كافٍ لتجنُّب تسرُّب أي معلومات مفيدة عن وقت فك التشفير للصور من مصادر مختلفة.
التراجع عن responseStart
وتقديم firstResponseHeadersStart
عند تفعيل 103 Early Hints، تحتوي الردود على طابعَين زمنيَّين:
- وقت وصول ميزة Early Hints (103)
- عند وصول العناوين النهائية (مثل 200)
عند طرح الإصدار 115 من Chrome، تم تضمين العلامة
firstInterimResponseStart
للسماح بقياس الطابعَين الزمنيَين، وغيّرنا أيضًا معنى العلامة
responseStart
(التي يستخدمها مقياس الوقت المستغرَق لوصول أول بايت (TTFB)) لتعني
"الرؤوس النهائية". وقد أدّى ذلك إلى حدوث مشكلة في توافق الويب مع المتصفّحات والأدوات التي لم تُجري تغييرًا مشابهًا لهذا المقياس الشائع الاستخدام.
يُلغي الإصدار 133 من Chrome هذا التغيير في responseStart
لحلّ هذه المشكلة المتعلّقة بالتوافق ويقدّم بدلاً من ذلك firstResponseHeadersStart
للسماح للمواقع الإلكترونية بقياس الوقت المستغرَق للوصول إلى الرؤوس النهائية، مع الاحتفاظ بالتعريف الأصلي لوقت الاستجابة للصفحة.
واجهة FileSystemObserver
تُرسِل واجهة FileSystemObserver
إشعارات إلى المواقع الإلكترونية بشأن التغييرات التي تطرأ على نظام الملفات. ترصد المواقع الإلكترونية التغييرات في الملفات والمجلدات التي منحها المستخدم الإذن بالوصول إليها سابقًا، وذلك على جهازه المحلي أو في نظام ملفات الحزمة (المعروف أيضًا باسم "نظام ملفات المصدر الخاص")، ويتم إعلامها بمعلومات التغيير الأساسية، مثل نوع التغيير.
تجميد علامات التبويب في وضع "توفير البطارية"
عندما تكون ميزة "توفير البطارية" مفعّلة، سيجمِّد Chrome "مجموعة سياق التصفّح" التي تم إخفاؤها وإيقافها لمدة تزيد عن خمس دقائق إذا تجاوزت أي مجموعة فرعية من الإطارات المنشأة من المصدر نفسه ضمنها الحدّ الأقصى لاستخدام وحدة المعالجة المركزية، ما لم يكن:
- توفّر وظيفة مؤتمرات الصوت أو الفيديو (يتم رصدها من خلال تحديد عملية تسجيل الميكروفون أو الكاميرا أو الشاشة/النافذة/علامة التبويب أو RTCPeerConnection مع قناة RTCDataChannel "مفتوحة" أو MediaStreamTrack "مباشر").
- تتحكّم في جهاز خارجي (يتم رصده باستخدام WebUSB أو Web Bluetooth أو WebHID أو Web Serial).
- يحافظ على قفل ويب أو اتصال IndexedDB يحظر تحديث إصدار أو معاملة على اتصال مختلف.
يتمثل التجميد في إيقاف التنفيذ مؤقتًا. ويتم تحديده رسميًا في واجهة برمجة التطبيقات Page Lifecycle API.
سيتم ضبط الحدّ الأقصى لاستخدام وحدة المعالجة المركزية لتجميد 10% تقريبًا من علامات التبويب التي تعمل في الخلفية عندما تكون ميزة "توفير البطارية" مفعّلة.
خرائط استيراد متعددة
يجب حاليًا تحميل خرائط الاستيراد قبل أيّ وحدة ES، ولا يمكن أن تتوفّر سوى خريطة استيراد واحدة لكل مستند. وهذا يجعلها هشة وقد يكون من الصعب استخدامها في سيناريوهات الحياة الواقعية: أي وحدة يتم تحميلها قبلها تؤدي إلى تعطُّل التطبيق بالكامل، وفي التطبيقات التي تحتوي على العديد من الوحدات، تصبح هذه الوحدات موردًا كبيرًا يتسبب في حدوث عمليات حظر، لأنّه يجب تحميل الخريطة الكاملة لجميع الوحدات المحتملة أولاً.
تتيح هذه الميزة استخدام خرائط استيراد متعددة لكل مستند، وذلك من خلال دمجها بطريقة متسقة ومحدّدة.
رؤوس الوصول إلى مساحة التخزين
يوفّر طريقة بديلة لعمليات التضمين التي تمّت مصادقتها للموافقة على ملفّات ملفّات تعريف الارتباط غير المقسّمة. تشير هذه العناوين إلى ما إذا كانت ملفات تعريف الارتباط غير المقسّمة (أو يمكن) تضمينها في طلب شبكة معيّن، وتسمح للخوادم بتفعيل Permissions (أذونات) "الوصول إلى مساحة التخزين" التي سبق أن تم منحها. من خلال منح بديلٍ لتنشيط إذن "الوصول إلى مساحة التخزين"، يمكن استخدام موارد غير إطار iframe، ويمكن تقليل وقت الاستجابة للإدراج الذي تمّت مصادقته.
إتاحة إنشاء ClipboardItem
باستخدام Promise<DOMString>
إنّ دالة ClipboardItem
، وهي الإدخال لدالة الحافظة غير المتزامنة write()
، پذیرت الآن قيم السلاسل بالإضافة إلى ملفات Blob في الدالة الإنشائية.
يمكن أن يكون ClipboardItemData
ملفًا بتنسيق Blob أو سلسلة أو وعدًا يتم حلّه ليصبح
إما ملفًا بتنسيق Blob أو سلسلة.
WebAssembly Memory64
يضيف اقتراح memory64 دعمًا لذاكرات WebAssembly الخطية التي يزيد حجمها عن 2^32 بت. لا يقدّم هذا الإصدار أي تعليمات جديدة، بل يمدّد التعليمات الحالية للسماح بفهرسات 64 بت للذاكرة والجداول.
Web Authentication API: طريقة PublicKeyCredential getClientCapabilities()
تتيح لك طريقة 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>
التي تبلغ مدتها خمس دقائق
في السابق، عند جلب مورد مسبقًا باستخدام <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
إلى أي تأثير الآن. تمت إزالة هذه الصفحة لأنّها متكررة مع "تجربة التشغيل الأول" التي يتم تفعيلها على منصات الكمبيوتر المكتبي.