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

متصفح الجوجل مقدم إصدار متصفح الويب الكروم 74... معا متاح إصدار مستقر لمشروع مجاني الكروم، وهو أساس Chrome. متصفح كروم مختلف استخدام شعارات Google، والقدرة على تنزيل وحدة Flash عند الطلب، ووجود نظام لإرسال الإشعارات في حالة حدوث عطل، ووحدات لتشغيل محتوى الفيديو المحمي، ونظام لتثبيت التحديثات تلقائيًا ونقلها أثناء البحث معلمات RLZ. من المقرر إطلاق الإصدار التالي من Chrome 75 في الرابع من يونيو.

رئيسي التغييرات в الكروم 74:

  • عند حدوث الحدث onUnload، والذي يتم استدعاؤه عند إغلاق الصفحة، الآن تدخين عرض النوافذ المنبثقة (تم حظر استدعاء window.open())، مما سيحمي المستخدمين من الاضطرار إلى فتح صفحات إعلانية بعد إغلاق المواقع المشكوك فيها؛
  • في محرك جافا سكريبت مُنفّذ وضع جديد JIT أقل (علامة "—jitless")، مما يجعل من الممكن تنفيذ JavaScript دون استخدام JIT (يتم استخدام المترجم فقط) ودون تخصيص ذاكرة قابلة للتنفيذ أثناء تنفيذ التعليمات البرمجية. يمكن أن يكون تعطيل JIT مفيدًا لتحسين الأمان عند العمل مع تطبيقات الويب التي يحتمل أن تكون خطرة، وكذلك لضمان البناء على الأنظمة الأساسية التي تحظر استخدام JIT (على سبيل المثال، iOS وبعض أجهزة التلفزيون الذكية ووحدات التحكم في الألعاب. عند تعطيل JIT، سيتم تنفيذ JavaScript) انخفض الأداء بنسبة 40% في اختبار Speedometer 2.0 و80% في اختبار Web Tooling Benchmark، ولكن عند محاكاة العمل باستخدام YouTube، لم يكن هناك سوى انخفاض في الأداء بنسبة 6%، بينما انخفض استهلاك الذاكرة قليلاً بنسبة 1.7% فقط؛
  • يقدم V8 أيضًا جزءًا كبيرًا من التحسينات الجديدة. على سبيل المثال، تم تسريع تنفيذ استدعاءات الوظائف التي لا يتوافق فيها عدد المعلمات التي تم تمريرها فعليًا مع عدد الوسائط المحددة عند تعريف الوظيفة بنسبة 60%. تم تسريع الوصول إلى خصائص DOM باستخدام وظيفة get، مما كان له تأثير إيجابي على أداء إطار العمل Angular. تم تسريع تحليل JavaScript: أدى تحسين وحدة فك ترميز UTF-8 إلى زيادة أداء المحلل اللغوي في وضع الدفق (التحليل أثناء التحميل) بنسبة 8%، وأدى التخلص من عمليات إلغاء البيانات المكررة غير الضرورية إلى زيادة أخرى بنسبة 10.5%؛
  • لقد تم العمل على تقليل استهلاك الذاكرة لمحرك JavaScript.
    تمت إضافة رمز لمسح ذاكرة التخزين المؤقت للرمز الثانوي، والتي تشغل حوالي 15% من إجمالي حجم الكومة. تمت إضافة مرحلة إلى أداة تجميع البيانات المهملة لطرد الكود الثانوي الذي يتم تجميعه بشكل غير متكرر من ذاكرة التخزين المؤقت للوظائف المستخدمة أو الوظائف التي يتم استدعاؤها فقط عند التهيئة. يتم اتخاذ قرار التنظيف بناءً على عدادات جديدة تأخذ في الاعتبار آخر مرة تم فيها الوصول إلى الرمز الثانوي. أدى هذا التغيير إلى تقليل استهلاك الذاكرة بنسبة 5-15% دون التأثير سلبًا على الأداء. بالإضافة إلى ذلك، يستبعد مترجم الكود الثانوي إنشاء تعليمات برمجية غير مستخدمة بشكل واضح، على سبيل المثال، والتي تتبع الإرجاع أو الكسر (إذا لم يكن هناك انتقال سريع إليها)؛

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

  • لتجميع الويب مُنفّذ دعم الخيوط والعمليات الذرية (API WebAssembly Threads وWebAssembly Atomics)؛
  • للتسليم المنفصل للبرامج النصية، تمت إضافة دعم للرأس "#!"، والذي يحدد تشغيل المترجم. على سبيل المثال، كما هو الحال مع لغات البرمجة النصية الأخرى، قد يبدو ملف JavaScript كما يلي:

    #!/usr/bin/env العقدة
    console.log(42);

  • تمت إضافة استعلام وسائط جديد إلى CSS "يفضل انخفاض الحركة"، مما يسمح للموقع بتحديد حالة الإعدادات في نظام التشغيل المتعلقة بتعطيل التأثيرات المتحركة. باستخدام الطلب المقترح، صاحب الموقع علبة معرفة أن المستخدم قام بتعطيل التأثيرات المتحركة وكذلك تعطيل ميزات الرسوم المتحركة المختلفة في الموقع، على سبيل المثال، إزالة تأثير الاهتزاز للأزرار المستخدمة لجذب الانتباه؛
  • بالإضافة إلى القدرة على تحديد الحقول العامة المقدمة في Chrome 72 تم تنفيذ الدعم وضع علامة على الحقول باعتبارها خاصة، وبعد ذلك سيتم فتح الوصول إلى قيمها فقط داخل الفصل الدراسي. لوضع علامة على حقل كخاص، قم بإضافة علامة "#" قبل اسم الحقل. كما هو الحال مع الحقول العامة، لا تتطلب الخصائص الخاصة الاستخدام الصريح للمنشئ.
  • تمت إضافة رأس HTTP لسياسة الميزات، والذي يسمح لك بالتحكم في سلوك واجهة برمجة التطبيقات (API) وتمكين ميزات معينة (على سبيل المثال، يمكنك تمكين وضع التشغيل المتزامن لـ XMLHttpRequest أو تعطيل Geolocation API). واجهة برمجة تطبيقات جافا سكريبت للسيطرة على نشاط بعض الفرص. بالنسبة للمطورين، هناك طريقتان جديدتان document.featurePolicy وframe.featurePolicy، تقدمان ثلاث وظائف:
    AllowFeatures() للحصول على قائمة بالميزات المسموح بها للنطاق الحالي، وallowFeature() للتحقق بشكل انتقائي مما إذا كانت ميزات محددة ممكّنة، وgetAllowlistForFeature() لإرجاع قائمة بالمجالات التي يُسمح لها بميزة محددة في الصفحة الحالية؛

  • تمت إضافة دعم تجريبي ("chrome://flags#enable-text-fragment-anchor") للوضع التمرير إلى النص، والذي يسمح لك بتكوين روابط لكلمات أو عبارات فردية، دون تحديد تسميات صريحة في المستند باستخدام علامة "اسم" أو خاصية "id". لإرسال رابط، يتم تقديم معلمة خاصة "#targetText="، حيث يمكنك تحديد النص للانتقال. يُسمح بتحديد قناع يتضمن عبارات تشير إلى بداية ونهاية الجزء باستخدام فاصلة كفاصل بينها (على سبيل المثال، "example.com#targetText=start%20words, end%20words");
  • تمت إضافة خيار إلى منشئ AudioContext معدل العينة، والذي يسمح لك بتعيين معدل أخذ العينات لعمليات الصوت عبر Web Audio API؛
  • تمت إضافة دعم الطبقة الدولية.اللغة، والذي يوفر طرقًا لتحليل ومعالجة معلمات اللغة والمنطقة والنمط التي تحددها اللغة، بالإضافة إلى قراءة وكتابة علامات امتداد Unicode، وحفظ إعدادات الإعدادات المحلية للمستخدم بتنسيق متسلسل؛
  • تقنية تبادلات HTTP الموقعة (SXG) تم توسيعه بأدوات لـ إعلام موزعي المحتوى حول الأخطاء في تنزيل المحتوى الموقع، مثل مشاكل التحقق من الشهادة. تتم معالجة الأخطاء من خلال ملحقات API تسجيل أخطاء الشبكة. أذكر أن SXG يسمح يسمح مالك أحد المواقع، باستخدام التوقيع الرقمي، بوضع صفحات معينة على موقع آخر، وبعد ذلك، إذا تم الوصول إلى هذه الصفحات من موقع ثانٍ، فسيُظهر المتصفح للمستخدم عنوان URL الخاص بالموقع الأصلي، على الرغم من الحقيقة أنه تم تحميل الصفحة من مضيف مختلف؛
  • تمت إضافة طريقة إلى فئة TextEncoder ترميز إلى ()، والذي يسمح لك بكتابة سلسلة مشفرة مباشرة في المخزن المؤقت المخصص مسبقًا. تعد طريقة encodeInto () بديلاً عالي الأداء لطريقة encode () التي تتطلب إجراء عملية تخصيص المخزن المؤقت في كل مرة يتم الوصول إليها.
  • في عامل الخدمة مؤمن تخزين استدعاء Client.postMessage() مؤقتًا حتى يصبح المستند جاهزًا. سيتم تعليق الرسائل المرسلة عبر client.postMessage() حتى يتم رفع الحدث DOMContentLoaded، أو تعيين onmessage، أو استدعاء startMessages()؛
  • كما هو مطلوب في مواصفات انتقالات CSS مضاف أحداث Transitionrun وtransitioncancel وtransitionstart وtransitionend التي يتم إنشاؤها عند وضع انتقال CSS في قائمة الانتظار أو إلغائه أو بدء تنفيذه أو انتهائه.
  • عند تحديد ترميز أحرف غير صحيح عبر overrideMimeType() أو نوع MIME لطلب XMLHttpRequest، فإنه يعود الآن إلى UTF-8 بدلاً من Latin-1؛
  • تم إهمال خاصية "السماح بالتنزيلات دون تنشيط المستخدم"، والتي كان من الممكن من خلالها تنزيل الملفات تلقائيًا عند معالجة إطارات iframe، وستتم إزالتها في إصدار مستقبلي. في المستقبل، سيتم حظر بدء تنزيل الملفات دون اتخاذ إجراء صريح من قبل المستخدم، حيث تم استخدامه بشكل نشط لإساءة الاستخدام وفرض التنزيلات وإدراج أجزاء من البرامج الضارة على كمبيوتر المستخدم. سيُطلب من المستخدم النقر على نفس الصفحة لبدء التنزيل. كان من المقرر في الأصل إزالة الخاصية في Chrome 74، ولكن الإزالة كانت كذلك مؤجل حتى كروم 76.
  • يتم تقديم سمة داكنة اختيارية لتصميم الواجهة لنظام التشغيل Windows (في الإصدار السابق، تم إعداد سمة داكنة لنظام التشغيل macOS). وبما أن التصميم الداكن مطابق تقريبًا للتصميم في وضع التصفح المتخفي، فقد تمت إضافة مؤشر خاص بدلاً من أيقونة ملف تعريف المستخدم لتسليط الضوء على وضع التشغيل الخاص؛
  • تمت إضافة فرصة لمستخدمي الشركات إدارة سحابة متصفح Chrome لإدارة إعدادات متصفح المستخدم من خلال وحدة تحكم المشرف في Google؛

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

بالإضافة إلى الابتكارات وإصلاحات الأخطاء ، يزيل الإصدار الجديد 39 نقاط ضعف. تم تحديد العديد من نقاط الضعف نتيجة لأدوات الاختبار الآلي العنوان, مطهر الذاكرة, سلامة تدفق التحكم, ليبفوزر и AFL. لم يتم تحديد أي مشكلات حرجة من شأنها أن تسمح بتجاوز جميع مستويات حماية المتصفح وتنفيذ التعليمات البرمجية على النظام خارج بيئة وضع الحماية. كجزء من برنامج دفع مكافآت نقدية لاكتشاف الثغرات الأمنية للإصدار الحالي، دفعت جوجل 19 جائزة بقيمة 26837 دولارًا أمريكيًا (أربع جوائز بقيمة 3000 دولار أمريكي، وأربع جوائز بقيمة 2000 دولار أمريكي، وجائزة واحدة بقيمة 1337 دولارًا أمريكيًا، وأربع جوائز بقيمة 1000 دولار أمريكي، وثلاث جوائز بقيمة 500 دولار أمريكي). لم يتم تحديد حجم المكافآت الأربعة بعد.

المصدر: opennet.ru

إضافة تعليق