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

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

CSS

يضيف هذا الإصدار ميزتَين جديدتَين في CSS ويُعدّل ثلاث ميزات.

دالة interpolate-size property وcalc-size() في CSS

تسمح خاصية CSS interpolate-size للصفحة بتفعيل الرسوم المتحركة و الانتقالات للكلمات الرئيسية لتحديد الحجم في CSS، مثل auto وmin-content و fit-content، في الحالات التي يمكن فيها إضافة رسوم متحركة إلى هذه الكلمات الرئيسية.

دالة CSS calc-size() هي دالة CSS مشابهة لدالة calc()، إلا أنّها تتيح أيضًا إجراء عمليات على كلمة رئيسية واحدة متوافقة للحجم. في الوقت الحالي، تشمل الكلمات الرئيسية المتوافقة مع المقاس كلاً من auto وmin-content وmax-content و fit-content. تشمل الكلمات الرئيسية الأخرى المتعلّقة بالحجم التي قد تكون متاحة في المستقبل stretch (متوفّرة حاليًا كبادئة -webkit-fill-available) و contain. تُستخدَم هذه الدالة لتمثيل القيم في منتصف الرسوم المتحرّكة المسموح بها من خلال السمة interpolate-size.

إعادة تسمية موضع إشارة CSS من inset-area إلى position-area

قرّرت مجموعة CSSWG إعادة تسمية هذه السمة من inset-area إلى position-area. يتم شحن الإصدار 129 من Chrome مع position-area، وسيتمّ إزالة اسم inset-area في إصدار مستقبلي.

موضع عنصر الربط في CSS: غير مُغلف inset-area()

تستبدل الدالة inset-area() بقيَم منطقة التوسيع مباشرةً ضمن position-try-fallbacks. على سبيل المثال، بدلاً من position-try-fallbacks:inset-area(top) استخدِم position-try-fallbacks:top.

تعديل فلتر الخلفية في CSS لاستخدام وضع edgeMode المرآة

تطبِّق سمة CSS‏ backdrop-filter فلترًا واحدًا أو أكثر على الخلفية لعنصر معيّن. الخلفية هي المحتوى المرسوم الذي يظهر خلف العنصر. من الفلاتر الشائعة التمويه الذي يتيح للمصمّمين إنشاء مربّعات حوار "زجاج مثبّت" والعناصر المركّبة للفيديو ورؤوس التنقّل الشفافة وغير ذلك.

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

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

إتاحة تنسيق Blob في قنوات بيانات WebRTC

ينفِّذ RTCDataChannel.send(Blob)، ويمكن للحدث onMessage الآن تلقّي بيانات من النوع Blob اختياريًا باستخدام السمة binaryType.

بالإضافة إلى السماح بإرسال سلاسل وArrayBuffers، يمكنك الآن اختيار إرسال Blob بدلاً من ذلك طالما أنّ حجمه أقل من حجم النقل SCTP maxMessageSize كما هو موضّح في مواصفات WebRTC.

عند ضبط السمة binaryType على "blob"، ستكون سمة بيانات الحدث onMessage من النوع Blob بدلاً من النوع ArrayBuffer المتاح حاليًا.

أوامر إضافة WebDriver لقياس الضغط

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

Intl.DurationFormat

توفّر طريقة لتنسيق المدّات، على سبيل المثال "ساعة واحدة و40 دقيقة و30 ثانية"، والتي تتوافق مع لغات متعددة.

Private Aggregation API: دمج المساهمات من جهة العميل

تعديل Private Aggregation API لدمج مساهمات الرسم البياني الشريطي مع الحزمة نفسها ورقم تعريف الفلترة قبل تضمينها في حمولة التشفير للتقرير القابل للتجميع

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

scheduler.yield()

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

Web Authentication API: طرق تسلسل JSON

تتيح طُرق WebAuthn PublicKeyCredential.toJSON() وparseCreationOptionsFromJSON() وparseRequestOptionsFromJSON() للمطوّرين تسلسل استجابة WebAuthn إلى عنصر JSON أو عكس تسلسل عنصر طلب WebAuthn من تمثيله بتنسيق JSON.

توافق WebGPU مع النطاق العالي الديناميكية (HDR)

تُضيف مَعلمات ربط الدرجات اللونية إلى إعدادات لوحة WebGPU، وتُضيف خيارَي standard (السلوك الحالي الذي يفرض قيودًا على المحتوى ضمن نطاق SDR للشاشة) كخيار تلقائي، وextended (عدم فرض هذا القيود) كسلوك جديد. يتيح ذلك لمحتوى WebGPU استخدام النطاق الكامل للشاشة.

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

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

واجهة FileSystemObserver

تُرسِل واجهة FileSystemObserver إشعارًا إلى المواقع الإلكترونية بشأن التغييرات التي تطرأ على نظام الملفات. ترصد المواقع الإلكترونية التغييرات في الملفات والأدلة على جهاز المستخدم (على النحو المحدّد في WICG/file-system-access) أو في نظام ملفات الحزمة (على النحو المحدّد في fs.spec.whatwg.org)، ويتم إعلامها بمعلومات التغيير الأساسية، مثل نوع التغيير.

التسجيل في الفترة التجريبية لمصدر FileSystemObserver

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

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

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

إيقاف 0.0.0.0 نهائيًا للوصول إلى الشبكة الخاصة

سيحظر Chrome الوصول إلى عنوان IP 0.0.0.0 قبل طرح ميزة "الوصول إلى الشبكة الخاصة" (PNA) بالكامل.

سيتوقف Chrome نهائيًا عن السماح بالوصول المباشر إلى نقاط نهاية الشبكة الخاصة من المواقع الإلكترونية العامة كجزء من مواصفات الوصول إلى الشبكة الخاصة. تُعتبر الخدمات التي تستمع إلى localhost (127.0.0.0/8) خاصةً وفقًا للمواصفات. يمكن تجاوز حماية PNA في Chrome باستخدام عنوان IP0.0.0.0 للوصول إلى الخدمات التي تستمع إلى المضيف المحلي على نظامَي التشغيل macOS و Linux.

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

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

إزالة الوسيطة includeShadowRoots في DOMParser

كانت وسيطة includeShadowRoots وسيطة لم يتم توحيده مطلقًا للدالة DOMParser.parseFromString()، والتي كانت مخصّصة للسماح بتحليل إلزامي لمحتوى HTML الذي يحتوي على نموذج shadow DOM التعريفي. تم طرح هذه الميزة في Chrome 90 كجزء من الإصدار الأولي من نموذج shadow DOM التعريفي.

والآن بعد أن أصبح لدينا إصدار موحّد من هذه الميزة باستخدام الطريقتَين setHTMLUnsafe() وparseHTMLUnsafe()، ستتم إزالة الوسيطة غير العادية includeShadowRoots. يجب تعديل الرمز على النحو التالي:

بدلاً من ذلك:

((new DOMParser()).parseFromString(html,'text/html',{includeShadowRoots: true});

الاستخدام:

Document.parseHTMLUnsafe(html);

إزالة تسلسل نموذج shadow DOM التعريفي غير العادي

يتضمّن النموذج الأولي لتنفيذ نموذج shadow DOM التعريفي طريقة تُسمى getInnerHTML() تُستخدَم لتسلسل أشجار DOM التي تحتوي على جذور الظل. لم يتمّ توحيد هذا الجزء من النموذج الأولي مع بقية عناصر نموذج Shadow DOM الوصفي، وبدلاً من ذلك، تمّ تصميم عنصر بديل له، وهو getHTML().

لذلك، تتم إزالة الطريقة القديمة getInnerHTML() من Chrome الآن، ويجب استخدام getHTML() كبديل عنها، وسيصبح متاحًا قريبًا للاستخدام على جميع المتصفحات.

إزالة PointerEvent.getCoalescedEvents() من السياقات غير الآمنة

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

نحن بصدد إزالتها الآن من السياقات غير الآمنة لأنّه تبيّن أنّ معدّل استخدام Chrome في السياقات غير الآمنة منخفض جدًا.