إصدار الكروم 101

كشفت Google عن إصدار متصفح الويب Chrome 101. وفي الوقت نفسه، يتوفر إصدار مستقر لمشروع Chromium المجاني، والذي يعمل كأساس لمتصفح Chrome. يختلف متصفح Chrome عن Chromium في استخدام شعارات Google، ووجود نظام لإرسال الإشعارات في حالة حدوث عطل، ووحدات تشغيل محتوى فيديو محمي ضد النسخ (DRM)، ونظام تثبيت التحديثات تلقائيًا، وتمكين عزل Sandbox بشكل دائم وتوفير مفاتيح لواجهة برمجة تطبيقات Google وإرسال RLZ- عند البحث عن المعلمات. بالنسبة لأولئك الذين يحتاجون إلى مزيد من الوقت للتحديث، يوجد فرع ممتد ثابت منفصل، يتبعه 8 أسابيع، والذي يشكل تحديثًا للإصدار السابق من Chrome 100. ومن المقرر إصدار الإصدار التالي من Chrome 102 في 24 مايو.

التغييرات الرئيسية في Chrome 101:

  • تمت إضافة وظيفة البحث الجانبي، والتي تجعل من الممكن عرض نتائج البحث في الشريط الجانبي في نفس الوقت مع عرض صفحة أخرى (في نافذة واحدة، يمكنك رؤية محتويات الصفحة ونتيجة الوصول إلى محرك البحث في نفس الوقت). بعد الانتقال إلى أحد المواقع من إحدى صفحات نتائج البحث في جوجل، تظهر أيقونة بحرف “G” أمام حقل الإدخال في شريط العناوين، وعند الضغط عليها تفتح لوحة جانبية بها نتائج بحث سابق البحث الذي تم. افتراضيًا، لا يتم تمكين الوظيفة على جميع الأنظمة، ولتمكينها، يمكنك استخدام الإعداد "chrome://flags/#side-search".
    إصدار الكروم 101
  • ينفذ شريط عناوين المربع متعدد الاستخدامات العرض المسبق لمحتوى التوصيات المقدمة أثناء الكتابة. في السابق، لتسريع عملية النقل من شريط العناوين، تم تحميل التوصيات الأكثر احتمالية للانتقال دون انتظار نقر المستخدم، باستخدام استدعاء الجلب المسبق. الآن، بالإضافة إلى التحميل، يتم عرضها أيضًا في المخزن المؤقت (بما في ذلك تنفيذ البرامج النصية وتشكيل شجرة DOM)، مما يسمح بالعرض الفوري للتوصيات بعد النقر. للتحكم في العرض التنبؤي، قم بإعداد الإعدادات "chrome://flags/#enable-prerender2" و"chrome://flags/#omnibox-trigger-for-prerender2" و"chrome://flags/#search-suggestion-for" -" مقترحة.prerender2".
  • تم اقتطاع المعلومات الموجودة في رأس User-Agent HTTP ومعلمات JavaScript navigator.userAgent وnavigator.appVersion وnavigator.platform. يحتوي الرأس فقط على معلومات حول اسم المتصفح، وإصدار المتصفح المهم (يتم استبدال مكونات إصدار MINOR.BUILD.PATCH بـ 0.0.0)، والنظام الأساسي ونوع الجهاز (هاتف محمول، كمبيوتر شخصي، جهاز لوحي). للحصول على بيانات إضافية، مثل الإصدار الدقيق وبيانات النظام الأساسي الموسعة، يجب عليك استخدام واجهة برمجة تطبيقات User Agent Client Hints API. بالنسبة للمواقع التي ليس لديها ما يكفي من المعلومات الجديدة وليست جاهزة بعد للتبديل إلى تلميحات عميل وكيل المستخدم، حتى مايو 2023، ستتاح لها الفرصة لإعادة وكيل المستخدم الكامل.
  • تم تغيير سلوك وظيفة setTimeout عند تمرير وسيطة صفرية، والتي تحدد تأخير المكالمة. بدءًا من Chrome 101، عند تحديد "setTimeout(..., 0)" سيتم استدعاء الرمز على الفور، دون تأخير قدره 1 مللي ثانية كما هو مطلوب في المواصفات. بالنسبة لمكالمات setTimeout المتداخلة المتكررة، يتم تطبيق تأخير قدره 4 مللي ثانية.
  • يدعم الإصدار الخاص بنظام Android طلب أذونات لعرض الإشعارات (في Android 13، لعرض الإشعارات، يجب أن يكون لدى التطبيق إذن "POST_NOTIFICATIONS"، والذي بدونه سيتم حظر إرسال الإشعارات). عند تشغيل Chrome في بيئة Android 13، سيطالبك المتصفح الآن بالحصول على أذونات الإشعارات.
  • تمت إزالة القدرة على استخدام WebSQL API في البرامج النصية لجهات خارجية. افتراضيًا، تم تمكين حظر WebSQL في البرامج النصية التي لم يتم تحميلها من الموقع الحالي في Chrome 97، ولكن تم ترك خيار لتعطيل هذا السلوك. يزيل Chrome 101 هذا الخيار. في المستقبل، نخطط للتخلص التدريجي من دعم WebSQL تمامًا، بغض النظر عن سياق الاستخدام. يوصى باستخدام واجهات برمجة تطبيقات تخزين الويب وقاعدة البيانات المفهرسة بدلاً من WebSQL. يعتمد محرك WebSQL على كود SQLite ويمكن للمهاجمين استخدامه لاستغلال الثغرات الأمنية في SQLite.
  • تمت إزالة أسماء سياسات المؤسسة (chrome://policy) التي تحتوي على مصطلحات غير شاملة. بدءًا من Chrome 86، تم اقتراح سياسات بديلة لهذه السياسات التي تستخدم مصطلحات شاملة. تمت إزالة مصطلحات مثل "القائمة البيضاء" و"القائمة السوداء" و"الأصلي" و"الرئيسي". على سبيل المثال، تمت إعادة تسمية سياسة URLBlacklist إلى URLBlocklist، وAutoplayWhitelist إلى AutoplayAllowlist، وNativePrinters إلى Printers.
  • في وضع Origin Trials (الميزات التجريبية التي تتطلب تنشيطًا منفصلاً)، بدأ اختبار واجهة برمجة تطبيقات إدارة بيانات الاعتماد الموحدة (FedCM) حتى الآن فقط في التجميعات الخاصة بمنصة Android، والتي تتيح لك إنشاء خدمات هوية موحدة تضمن الخصوصية والعمل دون تقاطع - آليات تتبع الموقع، مثل معالجة ملفات تعريف الارتباط التابعة لجهات خارجية. تتضمن تجربة الأصل القدرة على العمل مع واجهة برمجة التطبيقات المحددة من التطبيقات التي تم تنزيلها من المضيف المحلي أو 127.0.0.1، أو بعد التسجيل واستلام رمز خاص صالح لفترة محدودة لموقع معين.
  • تم تثبيت آلية تلميحات الأولوية وتقديمها للجميع، مما يسمح لك بتعيين أهمية مورد معين تم تنزيله عن طريق تحديد سمة "الأهمية" الإضافية في علامات مثل iframe وimg وlink. يمكن أن تأخذ السمة القيم "تلقائي" و"منخفض" و"عالي"، مما يؤثر على الترتيب الذي يقوم به المتصفح بتحميل الموارد الخارجية.
  • تمت إضافة خاصية AudioContext.outputLatency والتي من خلالها يمكنك معرفة معلومات حول التأخير المتوقع قبل إخراج الصوت (التأخير بين طلب الصوت وبدء معالجة البيانات المستلمة بواسطة جهاز إخراج الصوت).
  • تمت إضافة خاصية Font-Palette CSS وقاعدة @font-palette-values ​​​​، مما يسمح لك بتحديد لوحة من خط لون أو تحديد لوحة الألوان الخاصة بك. على سبيل المثال، يمكن استخدام هذه الوظيفة لمطابقة خطوط الأحرف الملونة أو الرموز التعبيرية مع لون المحتوى، أو لتمكين الوضع الداكن أو الفاتح للخط.
  • تمت إضافة وظيفة hwb() CSS، والتي توفر طريقة بديلة لتحديد ألوان sRGB بتنسيق HWB (Hue، Whiteness، Blackness)، على غرار تنسيق HSL (Hue، Saturation، Lightness)، ولكنها أسهل للإدراك البشري.
  • في طريقة window.open()، يتم الآن التعامل مع تحديد خاصية النافذة المنبثقة في سطر windowFeatures، دون تعيين قيمة (أي عند تحديد نافذة منبثقة ببساطة بدلاً من نافذة منبثقة = صحيح) على أنه تمكين فتح نافذة منبثقة مصغرة (مشابهة لـ " popup=true") بدلاً من تعيين القيمة الافتراضية "false"، والتي كانت غير منطقية ومضللة للمطورين.
  • أضافت واجهة برمجة تطبيقات MediaCapabilities، التي توفر معلومات حول إمكانيات الجهاز والمتصفح لفك تشفير محتوى الوسائط المتعددة (برامج الترميز المدعومة وملفات التعريف ومعدلات البت والدقة)، دعمًا لتدفقات WebRTC.
  • تم اقتراح إصدار ثالث من واجهة برمجة التطبيقات لتأكيد الدفع الآمن، مما يوفر أدوات لتأكيد إضافي لمعاملة الدفع التي يتم تنفيذها. يضيف الإصدار الجديد دعمًا للمعرفات التي تتطلب إدخال البيانات، وتعريف رمز للإشارة إلى فشل التحقق، وخاصية payeeName الاختيارية.
  • تمت إضافة طريقة ننسى () إلى USBDevice API لإلغاء الأذونات التي منحها المستخدم مسبقًا للوصول إلى جهاز USB. بالإضافة إلى ذلك، أصبحت مثيلات USBConfiguration وUSBInterface وUSBAlternateInterface وUSBEndpoint متساوية الآن في ظل المقارنة الصارمة ("==="، أشر إلى نفس الكائن) إذا تم إرجاعها لنفس كائن USBDevice.
  • تم إجراء تحسينات على الأدوات لمطوري الويب. يتم توفير القدرة على استيراد وتصدير إجراءات المستخدم المسجلة بتنسيق JSON (مثال). تم تحسين حساب وعرض الخصائص الخاصة في وحدة تحكم الويب وواجهة عرض التعليمات البرمجية. تمت إضافة دعم للعمل مع نموذج الألوان HWB. تمت إضافة القدرة على عرض الطبقات المتتالية المحددة باستخدام قاعدة @layer في لوحة CSS.
    إصدار الكروم 101

بالإضافة إلى الابتكارات وإصلاحات الأخطاء، يزيل الإصدار الجديد 30 نقطة ضعف. تم التعرف على العديد من نقاط الضعف نتيجة للاختبار الآلي باستخدام أدوات AddressSanitizer وMemorySanitizer وControl Flow Integrity وLibFuzzer وAFL. لم يتم تحديد أي مشكلات حرجة من شأنها أن تسمح بتجاوز جميع مستويات حماية المتصفح وتنفيذ التعليمات البرمجية على النظام خارج بيئة وضع الحماية. كجزء من برنامج المكافآت النقدية لاكتشاف الثغرات الأمنية للإصدار الحالي، دفعت جوجل 25 جائزة بقيمة 81 ألف دولار (جائزة واحدة بقيمة 10000 دولار، ثلاث جوائز بقيمة 7500 دولار، ثلاث جوائز بقيمة 7000 دولار، جائزة واحدة بقيمة 6000 دولار، جائزتان بقيمة 5000 دولار، أربع جوائز بقيمة 2000 دولار، ثلاث جوائز 1000 دولار وجائزة واحدة بقيمة 500 دولار). لم يتم تحديد حجم المكافآت الستة بعد.

المصدر: opennet.ru

إضافة تعليق