Marcina Strańskiego, opiekun pakietu Firefox dla Fedory i RHEL oraz odpowiedzialny za portowanie Firefoksa na Wayland, opublikował raport podsumowujący najnowsze osiągnięcia w Firefoksie w środowiskach Wayland.
W raporcie wspominają, że niektóre funkcje nie mogły zostać zaimplementowane od razu ze względu na różnice w podejściu do implementacji w X11 i Wayland. W pierwszym przypadku trudności wynikały ze schowka Waylanda działającego w trybie asynchronicznym, co wymagało stworzenia osobnej warstwy do abstrakcyjnego dostępu do schowka Waylanda. Określona warstwa zostanie dodana do Firefoksa 93 i będzie domyślnie włączona w Firefoksie 94.
Z szacunkiem do pojawiających się dialogów, główną trudnością było to, czego wymagał Wayland przestrzeganie ścisłego wyskakująca hierarchia, to znaczy, że okno nadrzędne może utworzyć okno potomne z wyskakującym okienkiem, ale następne wyskakujące okienko uruchomione z tego okna musi być połączone z oryginalnym oknem potomnym, tworząc łańcuch. W Firefoksie każde okno mogło generować wiele wyskakujących okienek, które nie tworzyły hierarchii.
Problem polegał na tym, że podczas korzystania z Waylanda zamknięcie jednego z wyskakujących okienek wymaga przebudowania całego łańcucha okien z innymi wyskakującymi okienkami, podczas gdy obecność wielu otwartych wyskakujących okienek nie jest rzadkością, ponieważ wyskakujące okienka są używane do wdrażania okna wyskakujące, menu, powiadomienia, dodatkowe dialogi, prośby o pozwolenie itp.
Sytuację komplikowały także awarie w Wayland i GTK, więc wprowadzanie drobnych zmian może prowadzić do pojawienia się różnych regresji. Jednak kod obsługi wyskakujących okienek dla Waylanda został zmodyfikowany i ma być zawarty w Firefoksie 94.
Wspomniane inne ulepszenia związane z Waylandem obejmują dodanie zmian skalowania 93 DPI w Firefoksie, aby wyeliminować migotanie podczas przesuwania okna na krawędzi ekranu w konfiguracjach wielomonitorowych. W Firefoksie 95 planowane jest rozwiązanie problemów które powstają podczas korzystania z interfejsu „przeciągnij i upuść”, na przykład podczas kopiowania plików ze źródeł zewnętrznych do lokalnych systemów plików oraz podczas przenoszenia kart.
Wraz z uruchomieniem Firefox 96, port Wayland dla Firefoksa, osiągnie ogólną identyczność funkcjonalności z kompilacją X11, przynajmniej w środowisku GNOME Fedora. Odtąd, programiści skupią się na doskonaleniu pracy w środowiskach Wayland procesu GPU, w którym kod jest usuwany w celu interakcji z kartami graficznymi i który chroni główny proces przeglądarki przed awarią w przypadku awarii sterownika.
Planowane jest również wprowadzenie kodu do procesu GPU w celu dekodowania wideo za pomocą interfejsu VAAPI, który jest obecnie wdrażany w procesach przetwarzania treści.
Dodatkowo możemy podkreślić włączenie dla niewielkiego odsetka użytkowników stabilnych gałęzi Firefoksa, ścisły reżim izolacji terenu, opracowany w ramach projektu Rozszczepienie.
W przeciwieństwie do stosowanego dotychczas arbitralnego rozmieszczenia przetwarzania tabulatorów w dostępnej grupie procesów (domyślnie 8), tryb blokady przenosi przetwarzanie każdej witryny do osobnego procesu z podziałem nie na tabulatory, ale na domeny, które pozwalają na dalszą izolację zawartości zewnętrznych skryptów i iframe'ów.
Tryb silnej izolacji chroni przed atakami z kanału bocznego, takie jak te związane z podatnościami klasy Spectre, a także zmniejsza fragmentację pamięci, efektywniej zwraca pamięć do systemu operacyjnego, minimalizuje wpływ garbage collection i intensywnych obliczeń na strony innych procesów oraz poprawia efektywność równoważenia obciążenia, różne Rdzenie procesora i poprawia stabilność (zablokowanie procesu renderowania iframe nie spowoduje przeciągnięcia strony głównej i innych kart razem z nią).
Wśród znanych problemów qktóre powstają, gdy używany jest tryb ścisłej izolacji, zauważalny jest wzrost zużycia pamięci i deskryptorów plików podczas otwierania dużej liczby kart, a także przerwanie pracy niektórych wtyczek, zniknięcie zawartości iframe podczas drukowania i wywoływania funkcji przechwytywania zrzutu ekranu , spadek w wydajności buforowania dokumentów iframe Utrata zawartości wypełnionych, ale nie przesłanych formularzy podczas odzyskiwania sesji po awarii.
źródło: https://mastransky.wordpress.com