План улучшения поддержки Wayland в Firefox

Материал из Викиновостей, свободного источника новостей

2 октября 2021 года

Мартин Странский (Martin Stransky), мэйнтейнер пакетов с Firefox в Fedora и RHEL, занимающийся портированием Firefox для Wayland, опубликовал отчёт с обзором последних достижений в области работы Firefox в окружениях на базе протокола Wayland.

В ближайших выпусках Firefox планируется решить наблюдаемые в сборках для Wayland проблемы с буфером обмена и обработкой всплывающих окон (popup). Указанные возможности не удавалось сразу воплотить из-за отличий в подходе к их реализации в X11 и Wayland. В первом случае трудности возникли из-за работы буфера обмена Wayland в асинхронном режиме, что потребовало создания отдельной прослойки для абстрагирования доступа к буферу обмена Wayland. Указанная прослойка будет добавлена в состав Firefox 93 и включена по умолчанию в Firefox 94.

Что касается всплывающих диалогов, то основная трудность была в том, что Wayland требует соблюдения строгой иерархии всплывающих окон, т.е. родительское окно может создать дочернее окно с popup-ом, но инициированный из этого окна следующий popup должен привязаться к исходному дочернему окну, образуя цепочку. В Firefox каждое окно могло порождать несколько popup-ов, не образующих иерархию. Проблема заключалась в том, что при использовании Wayland закрытие одного из popup-ов требует перестроения всей цепочки окон с другими popup-ами, при том что наличие нескольких открытых popup-ов не является редкостью, так как в виде popup-ов реализованы меню, всплывающие подсказки, диалоги дополнений, запросы полномочий и т.п. Ситуацию также усложняли недоработки в Wayland и GTK, из-за которых внесение небольших изменений могло привести к появлению различных регрессий. Тем не менее, код для обработки всплывающих окон для Wayland был отлажен и его планируется включить в состав Firefox 94.

Из других связанных с Wayland улучшений упоминается добавление в Firefox 93 изменений, связанных с масштабированием на экранах с разным DPI, которые позволили избавиться от мерцания при перемещении окна к краю экрана в многомониторных конфигурациях. В Firefox 95 планируется разобраться с проблемами, возникающими при использовании интерфейса drag&drop, например, при копирования файлов из внешних источников в локальные ФС и при перемещении вкладок.

В выпуске Firefox 96 порт Firefox для Wayland планируют довести до общего паритета в функциональности со сборкой для X11, по крайней мере при работе в GNOME-окружении Fedora. После этого внимание разработчиков будет переключено на оттачивание работы в окружениях Wayland процесса GPU, в который вынесен код для взаимодействия с графическими адаптерами и который защищает основной процесс браузера от краха в случае сбоев в драйверах. В процесс GPU также планируется вынести код для декодирования видео при помощи VAAPI, который в настоящее время запускается в процессах обработки контента.

Дополнительно можно отметить включение для небольшого процента пользователей стабильных веток Firefox режима строгой изоляции сайтов, развивавшегося в рамках проекта Fission. Режим расширяет применение многопроцессной архитектуры - вместо фиксированного пула процессов, на каждый сайт создаётся отдельный процесс. В отличие от применяемого до настоящего времени произвольного распределения обработки вкладок по доступному пулу процессов для обработки контента (по умолчанию 8), режим строкой изоляции выносит обработку каждого сайта в свой отдельный процесс с разделением не по вкладкам, а по доменам ( Public Suffix), что позволяет дополнительно изолировать содержимое внешних скриптов и iframe-блоков.

Режим строгой изоляции позволяет защититься от атак по сторонним каналам, например, связанными с уязвимостями класса Spectre, а также снижает фрагментацию памяти, более эффективно возвращает память операционной системе, минимизирует влияние сборки мусора и интенсивных вычислений на страницы в других процессах, увеличивает эффективность распределения нагрузки на разные ядра CPU и повышает стабильность (крах процесса, обрабатывающего iframe, не потянет за собой основной сайт и другие вкладки).

Среди известных проблем, возникающих при использовании режима строгой изоляции, отмечается заметное увеличение потребления памяти, соединений X11 и файловых дескриптров при открытии большого числа вкладок, а также нарушение работы некоторых дополнений, пропадание содержимого iframe при печати и вызове функции записи скриншота, снижение эффективности кэширования документов с iframe, потеря содержимого заполненных, но не отправленных форм при восстановлении сеанса после краха. Управление включением режима Fission осуществляется через переменную "fission.autostart=true" в about:config или на странице about:preferences#experimental.

Из других изменений в Firefox отмечается завершение миграции на систему локализации Fluent, улучшение высококонтрастного режима (High Contrast Mode), добавление в about:processes возможности записи профилей производительности процесса в один клик и удаление настройки для возвращения оформления страницы открытия новой вкладки в стиле до Firefox 89.

Источники[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «План улучшения поддержки Wayland в Firefox», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.