إخفاء CSS والقواعد المريحة لتداخل CSS، وإنشاء أنماط أكورديون باستخدام العنصر <details>
، وهو الإجراء enterpictureinpicture
لواجهة برمجة التطبيقات لجلسة الوسائط.
ما لم يُذكر خلاف ذلك، تنطبق التغييرات على أحدث إصدار قناة تجريبية من Chrome لأنظمة التشغيل Android وChromeOS وLinux وmacOS وWindows. تعرّف على مزيد من المعلومات حول الميزات المذكورة هنا من خلال الروابط المتوفرة أو من القائمة على chromestatus.com. يتوفّر Chrome 120 كإصدار تجريبي اعتبارًا من 1 تشرين الثاني (نوفمبر) 2023. يمكنك تنزيل أحدث إصدار من Google.com لجهاز كمبيوتر سطح المكتب أو من "متجر Google Play" على أجهزة Android.
CSS
يوفّر هذا الإصدار سبع ميزات CSS جديدة.
بنية <image>
لصفحات الأنماط المتتالية (CSS) للمواقع المخصَّصة المسجَّلة
يتيح استخدام بنية <image>
للمواقع المخصَّصة المسجَّلة في @property
أو registerProperty()
. يمكن استخدام بنية <image>
لحصر قيم السمة المخصّصة على قيم url()
والصور المنشأة مثل التدرجات.
بنية <transform-function>
و<transform-list>
لصفحات الأنماط المتتالية (CSS) للمواقع المخصَّصة المسجَّلة
يتيح استخدام بنيتَي <transform-function>
و<transform-list>
للمواقع المخصّصة المسجّلة في @property
أو registerProperty()
.
يمكن استخدام البنية لتقييد قيم السمة المخصّصة لتمثيل التحويلات. وهذا بدوره يجعل من الممكن استخدام الانتقالات والرسوم المتحركة مباشرة على هذه الخصائص المخصصة المسجلة.
الاستعلامات عن الوسائط: ميزة البرمجة النصية
يتم استخدام ميزة وسائط البرمجة النصية للاستعلام عمّا إذا كانت لغات البرمجة النصية، مثل JavaScript، متاحة في المستند الحالي. الخيارات الصالحة هي "مُفعّلة" و"أولية فقط" و"بدون". ومع ذلك، "المبدئي فقط" لا تتطابق أبدًا داخل المتصفح.
محدِّد الفئة الزائفة (:dir())
يُطابق محدِّد الفئة الزائفة في CSS :dir()
العناصر بناءً على الاتجاهات التي يتم تحديدها استنادًا إلى سمة HTML dir.
:dir(ltr)
يطابق اتجاه النص من اليسار إلى اليمين.
يطابق :dir(rtl)
العناصر التي تبدأ اتجاه النص من اليمين إلى اليسار.
ولا تعادل أدوات اختيار السمات [dir]
لأنها تتطابق مع الاتجاهات المكتسَبة من كيان أصل باستخدام السمة dir
، ولأنه يتطابق مع الاتجاه المحسوب من استخدام dir=auto
(الذي يحدد الاتجاه من الحرف الأول في النص ذي الاتجاه القوي).
الدوال الأُسيّة في CSS
لإضافة الدوال الأُسيّة في CSS: pow()
وsqrt()
وhypot()
وlog()
وexp()
من قيم CSS ومواصفات الوحدات من المستوى 4.
إخفاء صفحات الأنماط المتتالية (CSS)
يتم استخدام CSS mask
والسمات ذات الصلة، مثل mask-image
وmask-mode
، لإخفاء عنصر (جزئيًا أو كليًا) عن طريق إخفاء الصورة أو اقتصاصها عند نقاط معيّنة.
تلغي هذه الميزة سمات -webkit-mask*
وتجعلها متوافقة مع المواصفات الحالية. ويشمل ذلك mask-image
وmask-mode
وmask-repeat
وmask-position
وmask-clip
وmask-origin
وmask-size
وmask-composite
، بالإضافة إلى اختصار mask
. يمكن استخدام مراجع mask-image
المحلية، ويتطابق التسلسل الآن مع المواصفات، وتتطابق القيم المقبولة الآن مع المواصفات (على سبيل المثال، add
بدلاً من source-over
لـ mask-composite
).
تداخل CSS مريح
يسمح هذا التغيير في تنفيذ تداخل CSS لقواعد الأنماط المتداخلة بالبدء بعنصر، على سبيل المثال h1
، بدلاً من اشتراط ظهور الرمز &
في المقدمة، أو التفافها في is()
. المثال التالي صالح الآن في المواصفات ويعمل في Chrome 120.
.card {
h1 {
/* h1 does not start with a symbol */
}
}
HTML
نمط أكورديون باستخدام سمة الاسم على <details>
تتيح هذه الميزة إنشاء قوائم أكورديون باستخدام سلسلة من عناصر HTML <details>
. تضيف سمة الاسم إلى العنصر <details>
. عند استخدام هذه السمة، تشكِّل مجموعة متعددة عناصر <details>
تحمل الاسم نفسه. يمكن فتح عنصر واحد كحدّ أقصى في المجموعة الواحدة.
واجهات برمجة تطبيقات الويب
السماح بنقل ArrayBuffer إلى VideoFrame وAudioData وEcodedVideoChunk وEcodedAudioChunk ومكوّنات ImageDecoder
سيتيح ذلك فصل المخازن المؤقتة للمصفوفة واستخدام المخازن المقابلة لها داخل VideoFrame وImageDecoder وEcodedVideoChunk وEncodedAudioChunk و AudioData بدون نسخة.
واجهة برمجة تطبيقات تحميل الخط في CSS FontFaceSet: طريقة check()
تتحقّق الطريقة check()
في FontFaceSet
مما إذا كان من الممكن عرض النص باستخدام الخطوط المحدّدة بدون محاولة استخدام الخطوط في FontFaceSet
التي لم يكتمل تحميلها. ويتيح ذلك للمستخدمين استخدام الخط بأمان بدون بدء استبدال الخط لاحقًا.
إغلاق الطلبات و CloseWatcher
طلبات الإغلاق هي مفهوم جديد يشمل طلبات المستخدمين بإغلاق عنصر مفتوح حاليًا باستخدام مفتاح Esc على الكمبيوتر المكتبي أو إيماءة أو زر الرجوع في نظام التشغيل Android. ويتضمّن دمجهما في Chrome تغييرَين:
CloseWatcher
، وهي واجهة برمجة تطبيقات جديدة للاستماع إلى الطلبات المغلقة والاستجابة لها بشكل مباشر.- تتم الترقية إلى
<dialog>
وpopover=""
لاستخدام إطار عمل إغلاق الطلب الجديد، حتى تستجيب لزر الرجوع في Android.
العاملون المخصصون وواجهة برمجة التطبيقات Storage Access
سيكتسب العاملون المخصّصون حالة الوصول إلى مساحة التخزين للسياق الرئيسي. وبالتالي، إذا حصل مستند على إذن بالوصول إلى مساحة التخزين عبر document.requestStorageAccess()
، ثم أنشأ عاملًا مخصّصًا، سيحصل العامل أيضًا على إذن بالوصول إلى مساحة التخزين (وسيمكنه الوصول إلى ملفات تعريف الارتباط غير المقسَّمة).
FedCM: واجهة برمجة تطبيقات الخطأ وAutoSelectedFlag API
واجهات برمجة تطبيقات مخصَّصة لمساعدة المطوّرين والمستخدمين في فهم مسار المصادقة بشكل أفضل يتم تشغيل واجهتَي برمجة التطبيقات بعد منح إذن المستخدِم لتسجيل الدخول إلى موقع إلكتروني أو تطبيق (في هذا السياق يُعرف باسم جهة اعتماد (RP)) باستخدام موفّر هوية. بمعنى آخر، بعد أن ينقر المستخدم على الزر متابعة باسم.
في حال تعذُّر محاولة تسجيل دخول المستخدم، باستخدام واجهة برمجة التطبيقات Notification API، يمكن لموفِّر الهوية مشاركة الأسباب مع المتصفّح لإبقاء المستخدمين ومطوّري البرامج المحظورة على اطّلاع بالمستجدات.
باستخدام AutoSelectedFlag API، بإمكان كل من موفِّر الهوية ومطوّري البرامج المحظورة الحصول على فهم أفضل لتجربة المستخدم الخاصة بتسجيل الدخول وتقييم الأداء ومقاييس الشرائح وفقًا لذلك.
يمكنك الاطّلاع على مزيد من المعلومات في مشاركة مدونة Chrome 120 التابعة لـ FedCM.
تحديثات وظائف ميزة Fenced Frames
يتوفّر خيار تنسيق إضافي لوحدات ماكرو حجم الإعلانات Protected Audience في واجهة Protected Audience API ضمن "مبادرة حماية الخصوصية". تتيح لك ميزة الموافقة استخدام وحدات الماكرو لتحديد حجم الإعلان الذي يفوز بالمزاد في عنوان URL للإعلان، على سبيل المثال:
https://ad.com?width={/%AD_WIDTH%}&height={/%AD_HEIGHT%}
لتحقيق اتّساق أكبر مع أنواع وحدات الماكرو الأخرى في Protected Audience، مثل تلك المستخدَمة في deprecatedReplaceInURN
وregisterAdMacro()
، سنضيف في Chrome 120 إمكانية استخدام ${AD_WIDTH} و ${AD_HEIGHT} كتنسيق لوحدات الماكرو بالإضافة إلى التنسيق الحالي.
وبذلك سيتم إرسال الإشارات التلقائية إلى جميع عناوين URL المسجَّلة. في السابق، كانت الوجهات المحددة عند الاتصال بـ setReportEventDataForAutomaticBeacons()
فقط تتلقى إشارات آلية، حتى إذا كانت هذه الوجهة تُسمى registerAdBeacon()
لـ reserved.top_navigation
في العمل الصغير. وبالتالي، فإن أي وجهة تستدعي registerAdBeacon()
للنطاق reserved.top_navigation
ستحصل على إشارة آلية، ولكن الوجهات المحددة في setReportEventDataForAutomaticBeacons()
فقط ستحصل على بيانات المرشد التلقائية مع المرشد. ستحدد الآن المعلمة once
في setReportEventDataForAutomaticBeacons()
ما إذا كان سيتم إرسال البيانات مرة واحدة، بدلاً من تحديد ما إذا كان قد تم إرسال المرشد بالكامل مرة واحدة أم لا.
هامش تمرير مراقب التقاطع
تسمح أداة "مراقبة التقاطع" scrollMargin
للمطوّرين بمراقبة الأهداف داخل حاويات التمرير المدمجة التي يتم اقتصاصها حاليًا بواسطة حاويات التمرير. ويتم ذلك من خلال توسيع مستطيل قاطع الحاوية بمقدار scrollMargin
عند حساب التقاطع.
تقارير انتهاك سياسة الأذونات
يؤدي ذلك إلى دمج واجهة برمجة التطبيقات لسياسة الأذونات مع واجهة برمجة التطبيقات Reporting API، ما يسمح للمطوّرين على الويب بضبط نقاط النهاية التي سيتم إرسال تقارير انتهاك سياسة الأذونات إليها، ما يسمح لمالكي المواقع الإلكترونية بالاطّلاع على الحالات التي يتم فيها طلب ميزات غير مسموح بها على صفحاتهم في الحقل.
ويتضمّن أيضًا عنوان Permissions-Policy-Report-Only
الذي يتيح إرسال التقارير استنادًا إلى سياسة مقترَحة (تشبه Content-Security-Policy-Report-Only
) حتى يمكن تقييم تغييرات السياسة بحثًا عن أي أعطال محتمَلة قبل تنفيذها في وضع الفرض العادي.
واجهة برمجة التطبيقات لجلسات الوسائط: إجراء واحد (enterpictureinpicture
)
يضيف إجراء enterpictureinpicture
إلى واجهة برمجة التطبيقات لجلسات الوسائط. يمكن لمواقع الويب تسجيل معالج إجراء يمكن استخدامه لفتح نافذة "نافذة ضمن النافذة" أو "مستند ضمن النافذة".
تعرَّف على مزيد من المعلومات في نافذة ضمن النافذة التلقائية لتطبيقات الويب.
التوافق مع WebGPU f16
تسمح باستخدام نوع النقطة العائمة نصف الدقة f16 في أدوات تظليل WebGPU (WGSL).
يمكن للمطوّرين استخدام Shader-f16 الميزة من مواصفات WebGPU و"f16" من مواصفات WGSL للوصول إلى متغيرات النقطة العائمة 16 بت وواجهات برمجة التطبيقات في أدوات التظليل.
MediaCapabilities: طلب بحث عن إتاحة النطاق العالي الديناميكية (HDR) مع decodingInfo()
تعمل هذه السياسة على توسيع واجهة برمجة التطبيقات Media Capability API للسماح برصد توافق عرض النطاق العالي الديناميكية من خلال ثلاثة حقول جديدة لقاموس VideoConfiguration، وهي: hdrMetadataType
وcolorGamut
وtransferFunction
. ينفِّذ Chrome خوارزميات خاصة به لتحديد النغمات، وبالتالي ستظهر دائمًا القيمة "صحيح" للبيانات الوصفية الثابتة بتنسيق HDR10 (smpteSt2086). لا تتوفّر حاليًا البيانات الوصفية الديناميكية بتنسيق HDR10+ (smpteSt2094-10) وتقنية Dolby Vision (smpteSt2094-40)، وبالتالي سيتم عرضها بقيمة "خطأ". نتوقّع إضافة بيانات وصفية ديناميكية في المستقبل، لذا ستتيح واجهة برمجة التطبيقات هذه للمطوّرين اختيار المحتوى المناسب للمستخدمين الذين يقدّمون خدمات الدعم.
إحصاءات MediaStreamTrack (فيديو)
واجهة برمجة تطبيقات تعرض عدّادات الإطارات (تم إرسالها أو تجاهلها أو المجموع) الخاصة بفيديو MediaStreamTracks من النوع نفسه سيغطّي إطلاق ميزة منفصلة في Chrome إحصاءات الصوت.
واجهة برمجة تطبيقات التجميع الخاص: اختيار منسق التجميع
تعديل على واجهة برمجة التطبيقات Private Aggregation API من أجل توفير آلية لاختيار المنسّق المطلوب استخدامه لتشفير حمولة البيانات (من القائمة المسموح بها التي يحدّدها المورّد) يتم اختيار الخدمة من خلال خيار إضافي في طلبات مساحة التخزين المشتركة run()
وselectURL()
، وفي مكالمات Protected Audience API وrunAdAuction()
وjoinAdInterestGroup()
. يتماشى النهج الواسع النطاق إلى حد كبير مع منهج Attribution Reporting API.
واجهة برمجة التطبيقات لحالة تسجيل الدخول في FedCM
تتيح واجهة برمجة تطبيقات حالة تسجيل الدخول (المعروفة سابقًا باسم "واجهة برمجة تطبيقات حالة تسجيل الدخول لموفِّر الهوية") لموفِّري الهوية إرسال إشارة إلى المتصفِّح عندما يسجِّل المستخدمون الدخول أو الخروج.
يستخدم FedCM هذه الطريقة لمعالجة هجوم التوقيت الصامت، ما يتيح له العمل بدون استخدام ملفات تعريف الارتباط التابعة لجهة خارجية تمامًا.
وقد تصبح واجهة برمجة التطبيقات هذه متاحة في المستقبل في المزيد من حالات الاستخدام.
يمكنك الاطّلاع على مزيد من المعلومات في مشاركة مدوّنة الإعلان.
عرض الانتقالات: جعل معاودة الاتصال غير قابلة للقيم الفارغة
يأخذ الاستدعاء startViewTransition
حاليًا نوع استدعاء اختياري قابل للقيم الفارغة مع قيمة تلقائية فارغة: startViewTransition(optional UpdateCallback? callback = null)
.
تغيّر هذه الميزة هذا النوع ليكون نوعًا غير قابل للقيم الفارغة: startViewTransition(optional UpdateCallback callback)
.
تغليف المفتاح X25519Kyber768 لبروتوكول أمان طبقة النقل (TLS)
يمكنك حماية زيارات بروتوكول أمان طبقة النقل (TLS) الحالية في Chrome من تحليل التشفير الكمي في المستقبل من خلال نشر خوارزمية خوارزمية Kyber768 للاتفاق على المفتاح المقاوم للكمّية. وهي عبارة عن اتفاقية رئيسية مختلطة من X25519 + Kyber768 تستند إلى معيار مجموعة مهندسي شبكة الإنترنت (IETF). ولا تدخل هذه المواصفات والإطلاق في نطاق W3C. سيتم إطلاق اتفاقية المفتاح هذه كتشفير TLS، ويجب أن تكون شفافة للمستخدمين.
مراحل التجربة والتقييم قيد التقدم
في Chrome 120، يمكنك تفعيل تجارب المصادر الجديدة التالية.
"الأولوية" عنوان طلب HTTP
تضيف هذه الميزة عنوان طلب priority
لجميع طلبات HTTP مع معلومات الأولوية للطلب في وقت إرساله.
نظام RFC 9218 (نظام تحديد الأولويات القابلة للتوسّع HTTP) يحدد "الأولوية" عنوان طلب HTTP يمكن استخدامه للإشارة إلى أولوية الطلب للمصادر (والوسطاء). كما أنها تحدد عمليات التفاوض والإطارات على مستوى البروتوكول لكل من HTTP/2 وHTTP/3 للحصول على معلومات الأولوية نفسها. لا يمكن أن يشير العنوان إلى الأولوية الأولية للمورد إلا عند طلبه أول مرة، بينما تسمح الآليات المستندة إلى الإطار بتعديل الأولوية بعد تنفيذه. يمكن أن يعمل العنوان من البداية إلى النهاية لخوادم المصدر (وتوفير آلية تُلغي المصدر الأولوية في حال التعرّف عليه من قِبل الوسطاء)، بينما تقتصر الإطارات على مستوى الرابط. هذه الميزة مخصّصة تحديدًا لإتاحة نظام تحديد الأولويات استنادًا إلى العناوين.
توسيع مساحة تخزين الوصول إلى واجهة برمجة التطبيقات (SAA) للتخزين بدون ملفات تعريف الارتباط
نقترح إضافة واجهة برمجة تطبيقات Storage Access (متوافقة مع الأنظمة القديمة) للسماح بالوصول إلى مساحة تخزين غير مقسّمة (ملفات تعريف الارتباط وغير ملفات تعريف الارتباط) في سياق تابع لجهة خارجية.
إذن "الوصول إلى الشبكة الخاصة" تخفيف المحتوى المختلَط
تقدّم هذه الميزة خيارًا جديدًا لـ fetch()
للإشارة إلى أنّ أسماء المطوّرين متاحة على شبكة محلية ليس لها أسماء فريدة عامة، وبالتالي لا يمكنها الحصول على شهادات بروتوكول أمان طبقة النقل (TLS). التحدث إلى مثل هذا الجهاز، وهي ميزة جديدة تتحكم فيها بموجب السياسة لحظر كل موقع والوصول إلى هذه الإمكانية، وعناوين جديدة لاستجابة الطلب المبدئي للخادم لتوفير بيانات وصفية إضافية.
الاشتراك في مرحلة التجربة والتقييم في طلب إذن الوصول إلى الشبكة الخاصة
وصول غير محدود إلى Performance.measureUserAgentSpecificMemory()
تم تحديد Performance.measureUserAgentSpecificMemory() لتكون متاحة فقط في البيئات المعزولة من مصادر متعددة (خلف بروتوكول COOP/COEP). تزيل هذه الميزة قيد COOP/COEP للسماح باختبارات الانحدار وقياس التأثير عندما لا تكون قادرة على نشر COOP/COEP بشكل كامل. يُرجى العِلم أنّه لا يمكن استخدام Performance.memory (واجهة برمجة التطبيقات القديمة) لهذا الغرض لأنّه لم يسبق تفعيله على العاملين.
performance.measureUserAgentSpecificMemory()
تضيف الميزة الوظيفة performance.measureUserAgentSpecificMemory()
التي تقدِّر استخدام الذاكرة لصفحة الويب. يجب حظر الوصول من نطاقات أخرى للموقع الإلكتروني لاستخدام واجهة برمجة التطبيقات.
عمليات الإيقاف وعمليات الإزالة
يوضِّح هذا الإصدار من متصفّح Chrome عمليات الإيقاف وعمليات الإزالة المُدرجة أدناه. يمكنك زيارة ChromeStatus.com للاطّلاع على قوائم بعمليات الإيقاف المخططة وعمليات الإيقاف الحالية وعمليات الإزالة السابقة.
يؤدي هذا الإصدار من Chrome إلى إيقاف ميزة واحدة نهائيًا.
إيقاف توافق Theora نهائيًا وإزالته
بسبب المخاطر الأمنية الطارئة، سيتم إيقاف متصفِّح Chrome نهائيًا وإزالته من برنامج ترميز الفيديو Theora في متصفِّح Chrome على أجهزة الكمبيوتر المكتبي. لم يعُد الاستخدام المنخفض (والذي غالبًا ما يكون غير صحيح) لـ Theora يبرّر دعم معظم المستخدمين.
يزيل هذا الإصدار من Chrome ميزتين.
إزالة البيانات: عنوان URL بتنسيق SVGUseElement
قد يؤدي تعيين data: URL في SVGUseElement إلى حدوث XSS. وأدى ذلك أيضًا إلى تجاوز ميزة "الأنواع الموثوق بها". لهذا السبب، نخطّط لإيقافه نهائيًا وإزالته.
إلغاء فرض السياسة العامة ذات المصدر نفسه في CSPEE
يؤدي هذا الخيار إلى إزالة معالجة خاصة لإطارات iframe ذات المصدر نفسه من عملية تنفيذ سياسة أمان المحتوى (CSP). يساعد ذلك في تحقيق توافق مع طريقة فرض "تنفيذ سياسة CSP" المضمّنة على إطارات iframe من مصادر متعددة وإطارات iframe نفسها.