خريطة طريق لتحسين دعم Wayland في Firefox

نشر مارتن سترانسكي، مشرف حزمة Firefox لـ Fedora وRHEL الذي ينقل Firefox إلى Wayland، تقريرًا يستعرض آخر التطورات في Firefox الذي يعمل في البيئات المستندة إلى بروتوكول Wayland.

في الإصدارات القادمة من Firefox، من المخطط حل المشكلات التي تمت ملاحظتها في تصميمات Wayland مع الحافظة والتعامل مع النوافذ المنبثقة. لا يمكن تنفيذ هذه الميزات على الفور بسبب الاختلافات في طريقة تنفيذها في X11 وWayland. في الحالة الأولى، نشأت صعوبات بسبب تشغيل حافظة Wayland بشكل غير متزامن، الأمر الذي تطلب إنشاء طبقة منفصلة لتجريد الوصول إلى حافظة Wayland. ستتم إضافة الطبقة المحددة إلى Firefox 93 وتمكينها افتراضيًا في Firefox 94.

فيما يتعلق بمربعات الحوار المنبثقة، كانت الصعوبة الرئيسية هي أن Wayland يتطلب تسلسلًا هرميًا صارمًا للنوافذ المنبثقة، أي. يمكن للنافذة الأصلية إنشاء نافذة فرعية بها نافذة منبثقة، ولكن النافذة المنبثقة التالية التي يتم بدء تشغيلها من تلك النافذة يجب أن ترتبط بالنافذة الفرعية الأصلية، وتشكل سلسلة. في Firefox، يمكن أن تنتج كل نافذة عدة نوافذ منبثقة لا تشكل تسلسلاً هرميًا. كانت المشكلة أنه عند استخدام Wayland، فإن إغلاق إحدى النوافذ المنبثقة يتطلب إعادة بناء سلسلة النوافذ بأكملها مع النوافذ المنبثقة الأخرى، على الرغم من حقيقة أن وجود العديد من النوافذ المنبثقة المفتوحة ليس أمرًا غير شائع، حيث يتم تنفيذ القوائم والنوافذ المنبثقة في شكل تلميحات أدوات النوافذ المنبثقة، ومربعات حوار الوظائف الإضافية، وطلبات الأذونات، وما إلى ذلك. كان الوضع معقدًا أيضًا بسبب عيوب Wayland وGTK، والتي قد تؤدي التغييرات الصغيرة بسببها إلى تراجعات مختلفة. ومع ذلك، فقد تم تصحيح التعليمات البرمجية الخاصة بالتعامل مع النوافذ المنبثقة لـ Wayland ومن المقرر تضمينها في Firefox 94.

تتضمن التحسينات الأخرى المتعلقة بـ Wayland إضافة 93 تغييرًا في القياس إلى Firefox على شاشات DPI المختلفة، مما يزيل الوميض عند تحريك النافذة إلى حافة الشاشة في تكوينات الشاشات المتعددة. يخطط Firefox 95 لمعالجة المشكلات التي تنشأ عند استخدام واجهة السحب والإفلات، على سبيل المثال، عند نسخ الملفات من مصادر خارجية إلى ملفات محلية وعند نقل علامات التبويب.

مع إصدار Firefox 96، تم التخطيط لمنفذ Firefox الخاص بـ Wayland لتحقيق التكافؤ الشامل في الوظائف مع إصدار X11، على الأقل عند التشغيل في بيئة GNOME لـ Fedora. بعد ذلك، سيتم تحويل اهتمام المطورين إلى صقل العمل في بيئات Wayland لعملية GPU، والتي تحتوي على تعليمات برمجية للتفاعل مع محولات الرسومات والتي تحمي عملية المتصفح الرئيسية من التعطل في حالة فشل برنامج التشغيل. ومن المخطط أيضًا أن تتضمن عملية GPU رمزًا لفك تشفير الفيديو باستخدام VAAPI، والذي يتم تشغيله حاليًا في عمليات معالجة المحتوى.

بالإضافة إلى ذلك، يمكننا ملاحظة تضمين وضع عزل الموقع الصارم، الذي تم تطويره كجزء من مشروع Fission، لنسبة صغيرة من مستخدمي الفروع المستقرة لمتصفح Firefox. على النقيض من التوزيع التعسفي المستخدم حاليًا لمعالجة علامات التبويب عبر مجموعة العمليات المتاحة (8 افتراضيًا)، يضع وضع خط العزل معالجة كل موقع في عملية منفصلة خاصة به، مفصولة ليس بعلامات تبويب، بل حسب المجال (اللاحقة العامة) )، والذي يسمح بمحتويات عزل إضافية للنصوص البرمجية الخارجية وكتل iframe. يتم التحكم في تمكين وضع الانشطار من خلال المتغير "fission.autostart=true" في about:config أو على صفحة about:preferences#experimental.

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

ومن المشاكل المعروفة التي تنشأ عند استخدام وضع العزل الصارم، هناك زيادة ملحوظة في استهلاك الذاكرة واصف الملف عند فتح عدد كبير من علامات التبويب، وكذلك تعطيل عمل بعض الوظائف الإضافية، واختفاء محتوى iframe عند طباعة واستدعاء وظيفة تسجيل لقطة الشاشة، وانخفاض كفاءة التخزين المؤقت للمستندات من iframe، وفقدان محتويات النماذج المكتملة ولكن التي لم يتم إرسالها عند استعادة الجلسة بعد التعطل.

تتضمن التغييرات الأخرى في Firefox إكمال الترحيل إلى نظام الترجمة Fluent، وتحسينات على وضع التباين العالي، وإضافة القدرة على تسجيل ملفات تعريف أداء العملية بنقرة واحدة إلى about:processes، وإزالة الإعداد لإرجاع القديم نمط صفحة علامة التبويب الجديدة التي تم استخدامها قبل Firefox 89.

المصدر: opennet.ru

إضافة تعليق