Načrt za izboljšanje podpore za Wayland v Firefoxu

Martin Stransky, vzdrževalec paketov Firefox za Fedora in RHEL, ki Firefox prenaša na Wayland, je objavil poročilo o najnovejšem razvoju Firefoxa, ki deluje v okoljih, ki temeljijo na protokolu Wayland.

V prihajajočih izdajah Firefoxa je načrtovana rešitev težav, opaženih v različicah za Wayland, z odložiščem in ravnanjem s pojavnimi okni. Teh funkcij ni bilo mogoče takoj implementirati zaradi razlik v pristopu k njihovi implementaciji v X11 in Wayland. V prvem primeru so se težave pojavile zaradi asinhronega delovanja odložišča Wayland, kar je zahtevalo ustvarjanje ločene plasti za abstrahiranje dostopa do odložišča Wayland. Navedena plast bo dodana v Firefox 93 in privzeto omogočena v Firefoxu 94.

V zvezi s pojavnimi pogovornimi okni je bila glavna težava ta, da Wayland zahteva strogo hierarhijo pojavnih oken, tj. nadrejeno okno lahko ustvari podrejeno okno s pojavnim oknom, vendar se mora naslednje pojavno okno, sproženo iz tega okna, povezati z izvirnim podrejenim oknom in tvoriti verigo. V Firefoxu lahko vsako okno ustvari več pojavnih oken, ki niso tvorila hierarhije. Težava je bila v tem, da pri uporabi Waylanda zapiranje enega od pojavnih oken zahteva ponovno izgradnjo celotne verige oken z drugimi pojavnimi okni, kljub dejstvu, da prisotnost več odprtih pojavnih oken ni neobičajna, saj so meniji in pojavna okna implementirani v obliki pojavna okna, opisi orodij, pogovorna okna dodatkov, zahteve za dovoljenja itd. Situacijo so zapletle tudi napake v Waylandu in GTK, zaradi katerih so majhne spremembe lahko povzročile različne regresije. Vendar je bila koda za obravnavanje pojavnih oken za Wayland odpravljena in je načrtovana za vključitev v Firefox 94.

Druge izboljšave, povezane z Waylandom, vključujejo dodajanje 93 sprememb skaliranja v Firefox na različnih zaslonih DPI, ki odpravljajo utripanje pri premikanju okna na rob zaslona v konfiguracijah z več monitorji. Firefox 95 načrtuje reševanje težav, ki se pojavijo pri uporabi vmesnika povleci in spusti, na primer pri kopiranju datotek iz zunanjih virov v lokalne datoteke in pri premikanju zavihkov.

Z izdajo Firefoxa 96 je načrtovano, da bo vrata Firefoxa za Wayland v celoti enakovredna funkcionalnosti z gradnjo X11, vsaj pri izvajanju v okolju GNOME Fedore. Po tem bo pozornost razvijalcev preusmerjena na izpopolnjevanje dela v okoljih Wayland procesa GPU, ki vsebuje kodo za interakcijo z grafičnimi adapterji in ki ščiti glavni proces brskalnika pred zrušitvijo v primeru okvar gonilnika. Proces GPU naj bi vključeval tudi kodo za video dekodiranje z uporabo VAAPI, ki se trenutno izvaja v procesih obdelave vsebine.

Poleg tega lahko opazimo vključitev načina stroge izolacije spletnega mesta, razvitega kot del projekta Fission, za majhen odstotek uporabnikov stabilnih vej Firefoxa. V nasprotju s poljubno porazdelitvijo obdelave zavihkov po razpoložljivem področju procesov (privzeto 8), ki se je uporabljala do zdaj, način izolacijske črte postavi obdelavo vsakega mesta v svoj ločen proces, ki ni ločen z zavihki, temveč z domeno (javno Suffix), ki omogoča dodatno izolacijo vsebine zunanjih skriptov in blokov iframe. Omogočanje načina Fission se nadzira s spremenljivko »fission.autostart=true« v about:config ali na strani about:preferences#experimental.

Način stroge izolacije pomaga zaščititi pred napadi po stranskih kanalih, kot so tisti, povezani z ranljivostmi Spectre, poleg tega pa zmanjša fragmentacijo pomnilnika, učinkoviteje vrne pomnilnik operacijskemu sistemu, zmanjša vpliv zbiranja smeti in intenzivnih izračunov na strani v drugih procesih ter poveča učinkovitost porazdelitve obremenitve med različnimi jedri CPU in poveča stabilnost (zrušitev procesa, ki obdeluje iframe, ne bo vplivala na glavno spletno mesto in druge zavihke).

Med znanimi težavami, ki se pojavijo pri uporabi načina stroge izolacije, je opazno povečanje porabe pomnilnika in deskriptorja datotek pri odpiranju velikega števila zavihkov, pa tudi motnje v delovanju nekaterih dodatkov, izginotje vsebine iframe, ko tiskanje in priklic funkcije za snemanje posnetkov zaslona, ​​zmanjšana učinkovitost predpomnjenja dokumentov iz iframe, izguba vsebine izpolnjenih, a ne oddanih obrazcev, ko se seja obnovi po zrušitvi.

Druge spremembe v Firefoxu vključujejo dokončanje selitve na lokalizacijski sistem Fluent, izboljšave načina visokega kontrasta, dodajanje možnosti snemanja profilov uspešnosti procesov z enim klikom v about:processes in odstranitev nastavitve za vrnitev starega slog strani z novim zavihkom, ki je bil uporabljen pred Firefoxom 89.

Vir: opennet.ru

Dodaj komentar