Мартин Странски, разработчик пакета Firefox для Fedora и RHEL, который также отвечает за перенос Firefox для Wayland, опубликовал отчет, обобщающий последние разработки Firefox в средах Wayland.
В отчете упоминается, что некоторые функции не удалось реализовать сразу из-за различий в подходах к реализации в X11 и Wayland. В первом случае трудности возникли из-за того, что буфер обмена Wayland работал в асинхронном режиме, что требовало создания отдельного слоя для абстрактного доступа к буферу обмена Wayland. Указанный слой будет добавлен в Firefox 93 и будет включен по умолчанию в Firefox 94.
Что касается возникали диалоги, основная сложность заключалась в том, что Вэйланд требовал соблюдение строгого всплывающая иерархиято есть родительское окно может создать дочернее окно со всплывающим окном, но следующее всплывающее окно, запущенное из этого окна, должно быть связано с исходным дочерним окном, образуя цепочку. В Firefox каждое окно могло генерировать несколько всплывающих окон, не образующих иерархии.
Проблема заключалась в том, что при использовании Wayland для закрытия одного из всплывающих окон требуется перестроить всю цепочку окон с другими всплывающими окнами, тогда как наличие нескольких открытых всплывающих окон не является редкостью, поскольку всплывающие окна используются для развертывания окна, всплывающие окна, меню, уведомления, дополнительные диалоги, запросы разрешений и т. д.
Ситуация осложнялась также сбоями в Wayland и GTK, поэтому внесение небольших изменений могло привести к появлению различных регрессий. Однако всплывающий код для Wayland был изменен и, как ожидается, будет включен в Firefox 94.
Упомянутые другие улучшения, связанные с Wayland включить в Firefox изменение масштабирования 93 точек на дюйм, чтобы исключить мерцание при перемещении окна. на краю экрана в настройках с несколькими мониторами. В Firefox 95 планируется устранить проблемы которые возникают при использовании интерфейса перетаскивания, например, при копировании файлов из внешних источников в локальные файловые системы и при перемещении вкладок.
С запуском Firefox 96, порт Firefox на Wayland, достигнет общего паритета функциональности со сборкой X1.1, по крайней мере, при работе в среде GNOME Fedora. После этого разработчики сосредоточатся на совершенствовании работы в среде Wayland от процесса графического процессора, что исключает код для взаимодействия с графическими адаптерами и защищает основной процесс браузера от сбоев в случае сбоев драйверов.
Также планируется добавить код в процесс GPU для декодирования видео с помощью VAAPI, который в настоящее время внедряется в процессы обработки контента.
Кроме того, мы можем выделить включение для небольшого процента пользователей стабильных веток Firefox, режим строгой изоляции площадки, разработанный в рамках проекта «Деление».
В отличие от произвольного распределения обработки вкладок в доступной группе процессов (8 по умолчанию), которое использовалось до сих пор, режим блокировки перемещает обработку каждого сайта в свой отдельный процесс с разделением не по вкладкам, а по доменам, которые позволяют дополнительно изолировать содержимое внешних скриптов и фреймов.
Режим сильной изоляции защищает от атак по сторонним каналам, например, связанные с уязвимостями класса Spectre, а также снижает фрагментацию памяти, более эффективно возвращает память операционной системе, сводит к минимуму влияние сборки мусора и интенсивных вычислений на страницы других процессов и повышает эффективность балансировки нагрузки, различные ядра ЦП и повышают стабильность (блокировка процесса, который отображает iframe, не приведет к перетаскиванию основного сайта и других вкладок вместе с ним).
Среди известных проблем qкоторые возникают, когда используется режим строгой изоляции, наблюдается заметное увеличение потребления памяти и файлового дескриптора при открытии большого количества вкладок, а также прерывание работы некоторых плагинов, исчезновение содержимого iframe при печати и вызове функции для захвата скриншота, уменьшение в эффективности кэширования документов iframe. Потеря содержимого заполненных, но не отправленных форм при восстановлении сеанса после сбоя.
источник: https://mastransky.wordpress.com