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

كشفت Google النقاب عن إصدار متصفح الويب Chrome 90. وفي الوقت نفسه، يتوفر إصدار مستقر لمشروع Chromium المجاني، والذي يعمل كأساس لمتصفح Chrome. يتميز متصفح Chrome باستخدام شعارات Google، ووجود نظام لإرسال الإشعارات في حالة حدوث عطل، ووحدات لتشغيل محتوى الفيديو المحمي (DRM)، ونظام تثبيت التحديثات تلقائيًا، ونقل معلمات RLZ عند البحث. من المقرر إطلاق الإصدار التالي من Chrome 91 في 25 مايو.

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

  • يتم تمكين كافة المستخدمين من فتح المواقع عبر HTTPS بشكل افتراضي عند كتابة أسماء المضيفين في شريط العناوين. على سبيل المثال، عند إدخال المضيف example.com، سيتم فتح الموقع https://example.com افتراضيًا، وإذا ظهرت مشاكل عند الفتح، فسيتم إعادته إلى http://example.com. للتحكم في استخدام الإعداد الافتراضي "https://"، يُقترح الإعداد "chrome://flags#omnibox-default-typed-navigations-to-https".
  • أصبح من الممكن الآن تعيين تسميات مختلفة للنوافذ لفصلها بشكل مرئي في لوحة سطح المكتب. سيؤدي دعم تغيير اسم النافذة إلى تبسيط تنظيم العمل عند استخدام نوافذ متصفح منفصلة لمهام مختلفة، على سبيل المثال، عند فتح نوافذ منفصلة لمهام العمل والاهتمامات الشخصية والترفيه والمواد المؤجلة وما إلى ذلك. يتم تغيير الاسم من خلال عنصر "إضافة عنوان نافذة" في قائمة السياق التي تظهر عند النقر بزر الماوس الأيمن على منطقة فارغة في شريط علامات التبويب. بعد تغيير الاسم في لوحة التطبيق، بدلاً من اسم الموقع من علامة التبويب النشطة، يتم عرض الاسم المحدد، والذي يمكن أن يكون مفيدًا عند فتح نفس المواقع في نوافذ مختلفة مرتبطة بحسابات منفصلة. يتم الاحتفاظ بالربط بين الجلسات وبعد إعادة التشغيل ستتم استعادة النوافذ بالأسماء المحددة.
    إصدار الكروم 90
  • تمت إضافة القدرة على إخفاء "قائمة القراءة" دون الحاجة إلى تغيير الإعدادات في "chrome://flags" ("chrome://flags#read-later"). للإخفاء، يمكنك الآن استخدام خيار "إظهار قائمة القراءة" الموجود أسفل قائمة السياق التي تظهر عند النقر بزر الماوس الأيمن على شريط الإشارات المرجعية. دعنا نذكرك أنه في الإصدار الأخير، عندما ينقر بعض المستخدمين على العلامة النجمية في شريط العناوين، بالإضافة إلى زر "إضافة إشارة مرجعية"، يظهر زر ثانٍ "إضافة إلى قائمة القراءة"، وفي الزاوية اليمنى من القائمة في لوحة الإشارات المرجعية، تظهر قائمة "قائمة القراءة"، والتي تسرد جميع الصفحات التي تمت إضافتها مسبقًا إلى القائمة. عند فتح صفحة من القائمة، يتم وضع علامة "مقروءة" عليها. يمكن أيضًا وضع علامة يدويًا على الصفحات الموجودة في القائمة كمقروءة أو غير مقروءة، أو إزالتها من القائمة.
  • تمت إضافة دعم لتجزئة الشبكة للحماية من أساليب تتبع تحركات المستخدم بين المواقع بناءً على تخزين المعرفات في مناطق غير مخصصة للتخزين الدائم للمعلومات ("Supercookies"). نظرًا لأنه يتم تخزين الموارد المخزنة مؤقتًا في مساحة اسم مشتركة، بغض النظر عن المجال الأصلي، يمكن لموقع واحد تحديد أن موقعًا آخر يقوم بتحميل الموارد عن طريق التحقق مما إذا كان هذا المورد موجودًا في ذاكرة التخزين المؤقت. تعتمد الحماية على استخدام تجزئة الشبكة (Network Partitioning)، وجوهرها هو إضافة ربط إضافي للسجلات إلى ذاكرات التخزين المؤقتة المشتركة بالمجال الذي يتم فتح الصفحة الرئيسية منه، مما يحد من تغطية ذاكرة التخزين المؤقت للبرامج النصية لتتبع الحركة فقط إلى الموقع الحالي (لن يتمكن البرنامج النصي من iframe من التحقق مما إذا كان قد تم تنزيل المورد من موقع آخر). سعر التجزئة هو انخفاض في كفاءة التخزين المؤقت، مما يؤدي إلى زيادة طفيفة في وقت تحميل الصفحة (الحد الأقصى بنسبة 1.32٪، ولكن بالنسبة لـ 80٪ من المواقع بنسبة 0.09-0.75٪).
  • تم تجديد القائمة السوداء لمنافذ الشبكة التي تم حظر إرسال طلبات HTTP وHTTPS وFTP من أجل الحماية من هجمات تدفق NAT، والتي تسمح، عند فتح صفحة ويب أعدها المهاجم خصيصًا في المتصفح، بإنشاء شبكة الاتصال من خادم المهاجم إلى أي منفذ UDP أو TCP على نظام المستخدم، على الرغم من استخدام نطاق العناوين الداخلي (192.168.xx، 10.xxx). تمت إضافة 554 (بروتوكول RTSP) و10080 (المستخدم في النسخة الاحتياطية لـ Amanda وVMWare vCenter) إلى قائمة المنافذ المحظورة. في السابق، كانت المنافذ 69، 137، 161، 554، 1719، 1720، 1723، 5060، 5061 و6566 ​​محظورة بالفعل.
  • تمت إضافة دعم أولي لفتح مستندات PDF باستخدام نماذج XFA في المتصفح.
  • بالنسبة لبعض المستخدمين، تم تنشيط قسم إعدادات جديد "إعدادات Chrome > الخصوصية والأمان > حماية الخصوصية"، والذي يسمح لك بإدارة معلمات FLoC API، بهدف تحديد فئة اهتمامات المستخدم دون تحديد هوية فردية ودون الرجوع إلى تاريخ زيارة مواقع محددة.
  • يتم الآن عرض إشعار أكثر وضوحًا مع قائمة الإجراءات المسموح بها عندما يتصل المستخدم بملف تعريف تم تمكين الإدارة المركزية له.
  • جعل واجهة طلب الأذونات أقل تدخلاً. يتم الآن حظر الطلبات التي من المحتمل أن يرفضها المستخدم تلقائيًا باستخدام المؤشر المقابل المعروض في شريط العناوين، والذي يمكن للمستخدم من خلاله الانتقال إلى الواجهة لإدارة الأذونات على أساس كل موقع.
    إصدار الكروم 90
  • تم تضمين دعم ملحقات Intel CET (تقنية فرض التحكم في التدفق من Intel) لحماية الأجهزة من عمليات الاستغلال التي تم إنشاؤها باستخدام تقنيات البرمجة الموجهة نحو العودة (ROP، البرمجة الموجهة نحو العودة).
  • يستمر العمل على نقل المتصفح لاستخدام المصطلحات الشاملة. تمت إعادة تسمية ملف "master_preferences" إلى "initial_preferences" لتجنب إيذاء مشاعر المستخدمين الذين يعتبرون كلمة "master" بمثابة تلميح حول العبودية السابقة لأسلافهم. للحفاظ على التوافق، سيظل دعم "master_preferences" في المتصفح لبعض الوقت. في السابق، كان المتصفح قد تخلص بالفعل من استخدام الكلمات "القائمة البيضاء" و"القائمة السوداء" و"الأصلي".
  • في إصدار Android، عند تمكين وضع توفير حركة المرور "Lite"، يتم تقليل معدل البت عند تنزيل الفيديو عند الاتصال عبر شبكات مشغلي الهاتف المحمول، مما سيقلل من تكاليف المستخدمين الذين تم تمكين التعريفات المستندة إلى حركة المرور. يوفر الوضع "Lite" أيضًا ضغطًا للصور المطلوبة من الموارد المتاحة للجمهور (لا تتطلب المصادقة) عبر HTTPS.
  • تمت إضافة برنامج تشفير تنسيق الفيديو AV1، والذي تم تحسينه خصيصًا للاستخدام في مؤتمرات الفيديو استنادًا إلى بروتوكول WebRTC. يتيح استخدام AV1 في مؤتمرات الفيديو إمكانية زيادة كفاءة الضغط وتوفير القدرة على البث على القنوات ذات النطاق الترددي الذي يبلغ 30 كيلوبت/ثانية.
  • في JavaScript، تقوم كائنات Array وString وTypedArrays بتنفيذ طريقة at()، والتي تسمح لك باستخدام الفهرسة النسبية (يتم تحديد الموضع النسبي على أنه فهرس المصفوفة)، بما في ذلك تحديد القيم السالبة المتعلقة بالنهاية (على سبيل المثال، "arr.at(-1)" سيُرجع العنصر الأخير في المصفوفة).
  • أضافت جافا سكريبت خاصية ".indices" للتعبيرات العادية، والتي تحتوي على مصفوفة بمواضع البداية والنهاية لمجموعات من التطابقات. يتم ملء الخاصية فقط عند تنفيذ التعبير العادي بالعلامة "/d". const re = /(a)(b)/d; const m = re.exec('ab'); console.log(m.indices[0]); // 0 — جميع المجموعات المطابقة // → [0, 2] console.log(m.indices[1]); // 1 هي المجموعة الأولى من التطابقات // → [0, 1] console.log(m.indices[2]); // 2 - المجموعة الثانية من المباريات // → [1، 2]
  • تم تحسين أداء الخصائص "super" (على سبيل المثال، super.x) التي تم تمكين ذاكرة التخزين المؤقت المضمنة لها. أصبح أداء استخدام "super" قريبًا من أداء الوصول إلى الخصائص العادية.
  • لقد تم تسريع استدعاء وظائف WebAssembly من JavaScript بشكل كبير بسبب استخدام النشر المضمن. يظل هذا التحسين تجريبيًا في الوقت الحالي ويتطلب التشغيل باستخدام علامة "-turbo-inline-js-wasm-calls".
  • تمت إضافة WebXR Depth Sensing API، والتي تتيح لك تحديد المسافة بين الكائنات الموجودة في بيئة المستخدم وجهاز المستخدم، على سبيل المثال، لإنشاء تطبيقات واقع معزز أكثر واقعية. دعنا نذكرك أن WebXR API يسمح لك بتوحيد العمل مع فئات مختلفة من أجهزة الواقع الافتراضي، بدءًا من الخوذات الثابتة ثلاثية الأبعاد وحتى الحلول المعتمدة على الأجهزة المحمولة.
  • تم تثبيت ميزة تقدير الإضاءة WebXR AR، مما يسمح لجلسات WebXR AR بتحديد معلمات الإضاءة المحيطة لمنح النماذج مظهرًا أكثر طبيعية وتكاملًا أفضل مع بيئة المستخدم.
  • يضيف وضع Origin Trials (الميزات التجريبية التي تتطلب تنشيطًا منفصلاً) العديد من واجهات برمجة التطبيقات الجديدة التي تقتصر حاليًا على نظام Android الأساسي. تتضمن تجربة الأصل القدرة على العمل مع واجهة برمجة التطبيقات المحددة من التطبيقات التي تم تنزيلها من المضيف المحلي أو 127.0.0.1، أو بعد التسجيل واستلام رمز خاص صالح لفترة محدودة لموقع معين.
    • طريقة getCurrentBrowsingContextMedia()، التي تجعل من الممكن التقاط دفق فيديو MediaStream يعكس محتويات علامة التبويب الحالية. على عكس طريقة getDisplayMedia() المماثلة، عند استدعاء getCurrentBrowsingContextMedia()، يتم تقديم مربع حوار بسيط للمستخدم لتأكيد أو حظر عملية نقل الفيديو بمحتوى علامة التبويب.
    • واجهة برمجة تطبيقات Streams القابلة للإدراج، والتي تسمح لك بمعالجة تدفقات الوسائط الأولية المنقولة عبر واجهة برمجة تطبيقات MediaStreamTrack، مثل بيانات الكاميرا والميكروفون، أو نتائج التقاط الشاشة، أو بيانات فك تشفير برنامج الترميز المتوسط. تُستخدم واجهات WebCodec لتقديم الإطارات الأولية ويتم إنشاء دفق مشابه لما تنشئه WebRTC Insertable Streams API استنادًا إلى RTCPeerConnections. على الجانب العملي، تسمح واجهة برمجة التطبيقات الجديدة بوظائف مثل تطبيق تقنيات التعلم الآلي لتحديد الكائنات أو التعليق عليها في الوقت الفعلي، أو إضافة تأثيرات مثل قص الخلفية قبل التشفير أو بعد فك التشفير بواسطة برنامج الترميز.
    • القدرة على تجميع الموارد في حزم (Web Bundle) لتنظيم تحميل أكثر كفاءة لعدد كبير من الملفات المصاحبة (أنماط CSS، وJavaScript، والصور، وiframes). من بين أوجه القصور في الدعم الحالي لحزم ملفات JavaScript (webpack)، والتي تحاول Web Bundle التخلص منها: يمكن أن تنتهي الحزمة نفسها، ولكن ليس الأجزاء المكونة لها، في ذاكرة التخزين المؤقت HTTP؛ لا يمكن أن يبدأ التجميع والتنفيذ إلا بعد تنزيل الحزمة بالكامل؛ يجب ترميز الموارد الإضافية مثل CSS والصور في شكل سلاسل JavaScript، مما يزيد الحجم ويتطلب خطوة تحليل أخرى.
    • دعم معالجة الاستثناءات في WebAssembly.
  • تم تثبيت Declarative Shadow DOM API لإنشاء فروع جذرية جديدة في Shadow DOM، على سبيل المثال لفصل نمط عنصر خارجي مستورد وفرع DOM الفرعي المرتبط به عن المستند الرئيسي. تتيح لك واجهة برمجة التطبيقات التعريفية المقترحة استخدام HTML فقط لإلغاء تثبيت فروع DOM دون الحاجة إلى كتابة كود JavaScript.
  • خاصية نسبة العرض إلى الارتفاع في CSS، والتي تسمح لك بربط نسبة العرض إلى الارتفاع بشكل صريح بأي عنصر (لحساب الحجم المفقود تلقائيًا عند تحديد الارتفاع أو العرض فقط)، تنفذ القدرة على استيفاء القيم أثناء الرسوم المتحركة (الانتقال السلس من واحد نسبة العرض إلى الارتفاع إلى أخرى).
  • تمت إضافة القدرة على عكس حالة عناصر HTML المخصصة في CSS من خلال الفئة الزائفة ":state()". يتم تنفيذ الوظيفة عن طريق القياس مع قدرة عناصر HTML القياسية على تغيير حالتها اعتمادًا على تفاعل المستخدم.
  • خاصية "المظهر" في CSS تدعم الآن القيمة "تلقائي"، التي يتم تعيينها افتراضيًا لـ و وعلى منصة أندرويد بالإضافة إلى ذلك , , , و .
  • تمت إضافة دعم قيمة "clip" إلى خاصية CSS "overflow"، عند ضبطها، يتم قص المحتوى الذي يمتد إلى ما بعد الكتلة إلى حد تجاوز الكتلة المسموح به دون إمكانية التمرير. يتم تعيين القيمة التي تحدد المدى الذي يمكن أن يمتد به المحتوى إلى ما وراء الحدود الفعلية للمربع قبل بدء القطع عبر خاصية CSS الجديدة "overflow-clip-margin". بالمقارنة مع "التجاوز: مخفي"، فإن استخدام "التجاوز: مقطع" يسمح بأداء أفضل.
    إصدار الكروم 90إصدار الكروم 90
  • تم استبدال رأس HTTP لسياسة الميزات برأس سياسة أذونات جديد للتحكم في تفويض الأذونات وتمكين الميزات المتقدمة، والذي يتضمن دعم قيم الحقول المنظمة (على سبيل المثال، يمكنك الآن تحديد "سياسة الأذونات: تحديد الموقع الجغرافي" =()" بدلاً من "الميزة- السياسة: تحديد الموقع الجغرافي 'لا شيء'").
  • حماية معززة ضد استخدام مخازن البروتوكول المؤقتة للهجمات الناجمة عن التنفيذ التخميني للتعليمات في المعالجات. يتم تنفيذ الحماية عن طريق إضافة نوع MIME "application/x-protobuffer" إلى قائمة أنواع MIME التي لم يتم التعرف عليها مطلقًا، والتي تتم معالجتها من خلال آلية Cross-Origin-Read-Blocking. في السابق، كان نوع MIME "application/x-protobuf" مدرجًا بالفعل في قائمة مماثلة، ولكن تم استبعاد "application/x-protobuffer".
  • تطبق واجهة برمجة تطبيقات الوصول إلى نظام الملفات القدرة على تغيير الموضع الحالي في الملف إلى ما بعد نهايته، وملء الفجوة الناتجة بالأصفار أثناء الكتابة اللاحقة من خلال استدعاء FileSystemWritableFileStream.write(). تتيح لك هذه الميزة إنشاء ملفات متفرقة بمساحات فارغة وتبسط بشكل كبير تنظيم الكتابة إلى تدفقات الملفات مع الوصول غير المنظم لكتل ​​البيانات (على سبيل المثال، يتم ممارسة ذلك في BitTorrent).
  • تمت إضافة مُنشئ StaticRange مع تنفيذ أنواع النطاقات خفيفة الوزن التي لا تتطلب تحديث جميع الكائنات المرتبطة في كل مرة تتغير فيها شجرة DOM.
  • تم تنفيذ القدرة على تحديد معلمات العرض والارتفاع للعناصر المحدد داخل العنصر . تتيح لك هذه الميزة حساب نسبة العرض إلى الارتفاع للعناصر ، قياسا على كيفية القيام بذلك , و .
  • تمت إزالة الدعم غير القياسي لقنوات بيانات RTP من WebRTC، ويوصى باستخدام قنوات البيانات المستندة إلى SCTP بدلاً من ذلك.
  • تقوم خصائص navigator.plugins وnavigator.mimeTypes الآن بإرجاع قيمة فارغة دائمًا (بعد انتهاء دعم Flash، لم تعد هناك حاجة إلى هذه الخصائص).
  • تم إجراء جزء كبير من التحسينات الصغيرة على الأدوات المخصصة لمطوري الويب وتمت إضافة أداة جديدة لتصحيح أخطاء CSS، flexbox.
    إصدار الكروم 90

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

بشكل منفصل، يمكن الإشارة إلى أنه بالأمس، بعد تشكيل الإصدار التصحيحي 89.0.4389.128، ولكن قبل إصدار Chrome 90، تم نشر استغلال آخر، والذي استخدم ثغرة أمنية جديدة لمدة 0 يوم لم يتم إصلاحها في Chrome 89.0.4389.128 . ليس من الواضح حتى الآن ما إذا كان قد تم إصلاح هذه المشكلة في Chrome 90. كما في الحالة الأولى، يغطي الاستغلال ثغرة أمنية واحدة فقط ولا يحتوي على تعليمات برمجية لتجاوز عزل وضع الحماية (عند تشغيل Chrome مع علامة "--no-sandbox" ، يحدث الاستغلال عندما يسمح لك فتح صفحة ويب على نظام Windows الأساسي بتشغيل برنامج "المفكرة". تؤثر الثغرة الأمنية المرتبطة بالاستغلال الجديد على تقنية WebAssembly.

المصدر: opennet.ru

إضافة تعليق