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

تعمل قواعد إخفاء CSS والقواعد المريحة لتداخل CSS على إنشاء أنماط أكورديون باستخدام العنصر <details>، وهو الإجراء enterpictureinpicture لواجهة برمجة تطبيقات Media Session API.

ما لم يذكر خلاف ذلك، تنطبق التغييرات الموضحة على أحدث إصدار من قناة Chrome التجريبية لأنظمة التشغيل Android وChromeOS وLinux وmacOS وWindows. تعرَّف على مزيد من المعلومات عن الميزات المذكورة هنا من خلال الروابط المتوفّرة أو من القائمة على chromestatus.com، علمًا بأنّ Chrome 120 هو إصدار تجريبي اعتبارًا من 1 تشرين الثاني (نوفمبر) 2023. يمكنك تنزيل آخر الأخبار من Google.com لأجهزة الكمبيوتر المكتبي أو من "متجر Google Play" على أجهزة Android.

CSS

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

بنية CSS <image> للخصائص المخصّصة المسجّلة

يتوافق مع استخدام بنية <image> للخصائص المخصّصة المسجّلة في @property أو registerProperty(). يمكن استخدام بنية <image> لحصر قيم السمة المخصّصة على قيم url() والصور التي يتم إنشاؤها مثل التدرجات.

بنية CSS <transform-function> و<transform-list> للخصائص المخصّصة المسجّلة

يتوافق مع استخدام التركيبات <transform-function> و<transform-list> للخصائص المخصّصة المسجّلة في @property أو registerProperty().

ويمكن استخدام البنية لتقييد قيم الخاصية المخصصة لتمثيل التحويلات. ويتيح ذلك أيضًا استخدام الانتقالات والصور المتحركة مباشرةً على هذه الخصائص المخصصة المسجَّلة.

استعلامات الوسائط: ميزة البرمجة النصية

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

أداة اختيار الفئة pseudo-class (dir())

أداة الاختيار من الفئة الزائفة في CSS :dir() تتطابق مع العناصر استنادًا إلى الاتجاه الذي يتم تحديده استنادًا إلى سمة dir في HTML.

تتطابق السمة :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(). المثال التالي صالح الآن في المواصفات ويعمل في الإصدار 120 من Chrome.

.card {
  h1 {
    /* h1 does not start with a symbol */
  }
}

HTML

نمط أكورديون باستخدام سمة الاسم على <details>

تتيح هذه الميزة إمكانية إنشاء قوائم أكورديون باستخدام تسلسل عناصر HTML <details>. تضيف سمة الاسم إلى العنصر <details>. عند استخدام هذه السمة، تشكِّل عناصر <details> متعددة تحمل الاسم نفسه مجموعةً. يمكن فتح عنصر واحد على الأكثر في المجموعة دفعة واحدة.

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

السماح بنقل ArrayBuffer إلى أدوات الإنشاء في VideoFrame وAudioData وEncodedVideoChunk وEncoded AudioChunk وImageDecoder

سيؤدي ذلك إلى فصل المخازن المؤقتة للصفيف واستخدام المخازن المؤقتة المقابلة داخل VideoFrame وImageDecoder وEncodedVideoChunk وEncodedAudioChunk و AudioData بدون نسخة.

CSS Font Download API FontFaceSet: طريقة () check()

وتتحقّق الطريقة check() في FontFaceSet مما إذا كان من الممكن عرض النص باستخدام الخطوط المحدّدة بدون محاولة استخدام الخطوط في FontFaceSet التي لم تكتمل عملية التحميل. وهذا يسمح للمستخدمين باستخدام الخط بأمان دون أن يؤدي لاحقًا إلى استبدال الخط.

إغلاق الطلبات وClosewatcher

طلبات الإغلاق هي مفهوم جديد يشمل طلبات المستخدمين لإغلاق تطبيق مفتوح حاليًا باستخدام مفتاح Esc على الكمبيوتر المكتبي أو زر الرجوع أو إيماءة الرجوع على Android. ولدمجها في Chrome، هناك تغييران:

  • CloseWatcher، واجهة برمجة تطبيقات جديدة للاستماع مباشرةً إلى طلبات الإغلاق والردّ عليها
  • تتم الترقية إلى <dialog> وpopover="" لاستخدام إطار العمل الجديد لطلب الإغلاق، بحيث يستجيبان لزر الرجوع في Android.

العاملون المخصّصون وواجهة برمجة التطبيقات Storage Access API

سيكتسب العاملون المتخصصون حالة الوصول إلى مساحة التخزين للسياق الرئيسي. وبالتالي، إذا حصل مستند على إذن الوصول إلى مساحة التخزين من خلال document.requestStorageAccess()، ثم أنشأ موظفًا مخصَّصًا، سيتمكّن العامل أيضًا من الوصول إلى مساحة التخزين (والوصول إلى ملفات تعريف الارتباط غير المقسَّمة).

FedCM: واجهة برمجة التطبيقات للخطأ وواجهة برمجة التطبيقات AutoSelectedFlag

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

باستخدام واجهة برمجة التطبيقات error API، في حال تعذّرت محاولة تسجيل دخول مستخدم، يمكن لموفِّر الهوية مشاركة الأسباب مع المتصفِّح لإبقاء كل من المستخدمين ومطوّري البرامج المحظورة على أحدث المعلومات.

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

يمكنك الاطّلاع على مزيد من المعلومات في مشاركة مدونة FedCM Chrome 120.

إشعارات وظائف 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 بت وواجهات برمجة التطبيقات في أدوات التظليل.

إمكانات الوسائط: إتاحة طلب البحث بنطاق عالي الديناميكية باستخدام decodingInfo()

تعمل هذه السياسة على توسيع نطاق واجهة برمجة التطبيقات لإمكانات الوسائط للسماح برصد إتاحة عرض النطاق العالي الديناميكية (HDR) من خلال ثلاثة حقول جديدة في قاموس VideoConfiguration: hdrMetadataType وcolorGamut وtransferFunction. ينفّذ Chrome خوارزميات تعيين تدرّج الألوان الخاصة به، لذا ستعرض دائمًا القيمة "صحيح" للبيانات الوصفية الثابتة للنطاق HDR10 (smpteSt2086). لا تتوفّر البيانات الوصفية الديناميكية للنطاقَين HDR10+ (smpteSt2094-10) وDolby Vision (smpteSt2094-40) حاليًا، لذا سيتم عرض القيمة "خطأ". ونتوقع إتاحة البيانات الوصفية الديناميكية في المستقبل، لذا ستسمح واجهة برمجة التطبيقات هذه للمطوّرين باختيار المحتوى المناسب للمستخدمين الذين يمكنهم تقديم الدعم.

إحصاءات MediaStreamTrack (فيديو)

واجهة برمجة تطبيقات تعرض عدّادات الإطارات (التي تم إرسالها أو تجاهلها أو إجماليها) لـ MediaStreamTracks من نوع الفيديو. ستتم تغطية إحصاءات الصوت من خلال إطلاق ميزة منفصلة في Chrome.

واجهة برمجة التطبيقات الخاصة للتجميع الخاص: اختيار منسّق التجميع

التعديل على واجهة برمجة تطبيقات التجميع الخاص لتوفير آلية لاختيار المنسّق المطلوب استخدامه لتشفير الحمولات (من القائمة المسموح بها التي يحدّدها المورّد). يتم اختيار الخدمة من خلال خيار إضافي في run() وselectURL() مكالمات SharedStorage، وفي مكالمات "الجمهور المحمي" في runAdAuction() وjoinAdInterestGroup(). يتوافق هذا المنهج الواسع إلى حد كبير مع نهج Attribution Reporting API.

واجهة برمجة التطبيقات لحالة تسجيل الدخول في برنامج FedCM

تسمح واجهة برمجة تطبيقات حالة تسجيل الدخول (المعروفة سابقًا باسم IdP Sign-in Status 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'

تضيف هذه الميزة عنوان طلب priority لجميع طلبات HTTP مع توفير معلومات الأولوية للطلب في وقت إرساله.

يحدّد RFC 9218 (نظام الأولويات القابلة للامتداد لبروتوكول HTTP) عنوان طلب HTTP "الأولوية" الذي يجب استخدامه لإرسال إشارة بأولوية طلب للمصادر (والوسطاء). كما أنه يحدد عمليات التفاوض والإطارات على مستوى البروتوكول لبروتوكول HTTP/2 وHTTP/3 لنقل معلومات الأولوية نفسها. لا يمكن أن يشير العنوان إلا إلى الأولوية الأولية لأحد الموارد عند طلبه لأول مرة، بينما تسمح الآليات المستندة إلى الإطار بتعديل الأولوية بعد حدوثها. ويمكن أن يعمل الرأس من البداية إلى النهاية لخوادم المصدر (وأن يوفر آلية للأصل لتجاوز الأولوية إذا تعرّف عليها الوسطاء) بينما تقتصر الإطارات على العمل على مستوى الرابط. تم تصميم هذه الميزة خصيصًا لدعم نظام تحديد الأولويات المستند إلى العنوان.

نقترح تمديد مدة واجهة برمجة التطبيقات Storage Access API (متوافقة مع الأنظمة القديمة) للسماح بالوصول إلى مساحة تخزين غير مقسَّمة (ملفات تعريف الارتباط وغير ملفات تعريف الارتباط) في سياق تابع لجهة خارجية.

إذن الوصول إلى الشبكة الخاصة لتسهيل عرض المحتوى المختلط

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

اشترِك في مرحلة التجربة والتقييم في "طلب إذن الوصول إلى الشبكة الخاصة".

وصول غير محدود إلى 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 من المصدر نفسه.