Plan poprawy wsparcia Wayland w Firefox

Martin Stransky, maintainers of the Firefox packages in Fedora and RHEL, who is engaged in porting Firefox for Wayland, published a report summarizing the latest achievements in the functioning of Firefox in Wayland-based environments.

Upcoming releases of Firefox aim to address the observed issues in the Wayland builds regarding clipboard management and popup handling. These features could not be implemented immediately due to the differences in their implementation approaches in X11 and Wayland. In the first case, difficulties arose because the Wayland clipboard operates in an asynchronous mode, which required the creation of a separate layer to abstract access to the Wayland clipboard. This layer will be added in Firefox 93 and will be enabled by default in Firefox 94.

As for popup dialogues, the main difficulty was that Wayland requires strict adherence to the hierarchy of popup windows, i.e., a parent window can create a child window with a popup, but a subsequent popup initiated from this window must be linked to the original child window, forming a chain. In Firefox, each window could generate multiple popups that did not form a hierarchy. The problem was that when using Wayland, closing one of the popups required reconstructing the entire chain of windows with other popups, especially because having several open popups is not uncommon, as menus, tooltips, extension dialogues, permission requests, etc., are implemented as popups. The situation was further complicated by shortcomings in Wayland and GTK, where even small changes could lead to various regressions. Nevertheless, the code for handling popups for Wayland has been debugged and is planned to be included in Firefox 94.

Other improvements related to Wayland include the addition in Firefox 93 of changes associated with scaling on screens with different DPI, which eliminated flickering when moving a window to the edge of the screen in multi-monitor configurations. In Firefox 95, it is planned to address the issues arising when using the drag&drop interface, for example, when copying files from external sources to local file systems and when moving tabs.

W wydaniu Firefox 96 zespół odpowiedzialny za port Firefox dla Wayland planuje doprowadzić go do ogólnej parytetu funkcjonalności z wersją dla X11, przynajmniej w przypadku działania w środowisku GNOME na Fedora. Po tym programiści skupią się na doskonaleniu działania procesu GPU w środowiskach Wayland, w którym wyodrębniony został kod do interakcji z kartami graficznymi, co chroni główny proces przeglądarki przed awarią w przypadku problemów z sterownikami. Do procesu GPU planuje się również przenieść kod do dekodowania wideo przy użyciu VAAPI, który obecnie działa w procesach przetwarzania treści.

Dodatkowo można zauważyć włączenie dla niewielkiego procenta użytkowników stabilnych wersji Firefox trybu ścisłej izolacji witryn, rozwijanego w ramach projektu Fission. W przeciwieństwie do dotychczas stosowanego losowego przydzielania przetwarzania kart po dostępnej puli procesów (domyślnie 8), tryb ścisłej izolacji przenosi przetwarzanie każdej witryny do oddzielnego procesu z podziałem nie na karty, ale na domeny (Public Suffix), co pozwala dodatkowo izolować treść zewnętrznych skryptów i bloków iframe. Włączenie trybu Fission odbywa się poprzez zmienną „fission.autostart=true” w about:config lub na stronie about:preferences#experimental.

Tryb ścisłej izolacji pozwala ochronić się przed atakami pośrednimi, na przykład związanymi z lukami klasy Spectre, a także zmniejsza fragmentację pamięci, bardziej efektywnie zwracając pamięć systemowi operacyjnemu, minimalizuje wpływ zbierania śmieci i intensywnych obliczeń na strony w innych procesach, zwiększa efektywność rozkładu obciążenia na różne rdzenie CPU i podnosi stabilność (awaria procesu obsługującego iframe nie pociągnie za sobą głównej witryny i innych kart).

Wśród znanych problemów związanych z używaniem trybu ścisłej izolacji zauważalne jest znaczne zwiększenie zużycia pamięci i deskryptorów plików przy otwieraniu dużej liczby kart, a także zakłócenia w działaniu niektórych dodatków, znikanie treści iframe podczas drukowania i korzystania z funkcji zapisania zrzutu ekranu, zmniejszenie efektywności buforowania dokumentów z iframe, utrata treści wypełnionych, ale nie wysłanych formularzy podczas przywracania sesji po awarii.

Wśród innych zmian w Firefoxie wyróżnia się zakończenie migracji do systemu lokalizacji Fluent, poprawa trybu wysokiego kontrastu (High Contrast Mode), dodanie w about:processes opcji nagrywania profili wydajności procesu jednym kliknięciem oraz usunięcie ustawienia, które pozwalało na powrót do starego stylu wyświetlania strony otwierania nowej karty, używanego przed Firefoxem 89.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster