GTK3-порт Firefox успешно запущен в окружении Wayland

Эмилио Посуэло (Emilio Pozuelo), участвующий в работе по адаптации Firefox для работы с GTK3+ сообщил об успешном запуске экспериментального GTK3-порта Firefox в окружении композитного сервера Weston, развиваемого проектом Wayland. Говорится, что в коде Firefox остаётся много привязок к X11, большинство из которых уже были отделены в блоки »#ifdef MOZ_X11». При организации запуска под управлением Wayland/Weston код Firefox был дополнительно почищен и снабжён рядом «хаков» для обхода возникших проблем. В частности, в текущем виде при запуске Firefox в Weston наблюдаются проблемы с клавиатурой и не полностью отображаются элементы интерфейса. Тем не менее, то, что Firefox стартует без крахов является хорошим стартом на пути к созданию полноценного порта.

0_1403706128.png Кроме того, Эмилио рассказал о проблемах в процессе портирования Firefox на GTK3+ и способах их решения. Например, одной из самых неприятных проблем была необходимость одновременной загрузки GTK2+ и GTK3+, которая была обусловлена тем, что плагины, такие как Flash, остаются привязанными к GTK2+, в то время как сам браузер уже может использовать GTK3+. Данная проблема была решена через создание специальной прослойки libmozgtk.so, используемой между libxul и GTK+. Прослойка ссылается на GTK3+, но одновременно предоставляет набор символов, специфичных для GTK2+. Одновременно доступна противоположная прослойка libmozgtk2.so, которая ссылается на GTK2+, но одновременно предоставляет набор символов, специфичных для GTK3+. При работе Firefox используется libmozgtk.so, а при запуске плагина процесс plugin-container через LD_PRELOAD=libmozgtk2.so использует второй вариант прослойки. Так как libmozgtk2.so и libmozgtk.so предоставляют идентичный набор символов, их использование с единой библиотекой libxul.so не создаёт проблем.

©  OpenNet