Martin Stransky, vedligeholder af Firefox-pakkerne til Fedora og RHEL, som arbejder med porteringen af Firefox til Wayland, har offentliggjort en rapport, der opsummerer de seneste fremskridt inden for Firefox' funktionalitet i miljøer baseret på Wayland-protokollen.
I de kommende versioner af Firefox planlægges det at løse observerede problemer i Wayland-versionerne med udklipsholderen og håndteringen af pop op-vinduer. Disse funktioner kunne ikke straks implementeres på grund af forskelle i tilgangen til deres implementering i X11 og Wayland. I det første tilfælde opstod der vanskeligheder på grund af, at Wayland udklipsholderen fungerer i asynkron tilstand, hvilket krævede oprettelse af et separat lag for at abstrahere adgangen til Wayland-udklipsholderen. Dette lag vil blive tilføjet i Firefox 93 og aktiveres som standard i Firefox 94.
Hvad angår pop op-dialoger, var den primære udfordring, at Wayland kræver en streng hierarki for pop op-vinduer. Det vil sige, at et forældrevindue kan oprette et dattervindue med et pop op, men det pop op, der initieres fra dette vindue, skal knyttes til det oprindelige dattervindue og danne en kæde. I Firefox kunne hvert vindue skabe flere pop op-vinduer, der ikke dannede et hierarki. Problemet var, at når man brugte Wayland, krævede lukning af et af pop op-vinduerne en omstrukturering af hele kæden af vinduer med andre pop op-vinduer, selvom det ikke er ualmindeligt at have flere åbne pop op-vinduer, da menuer, pop op-hints, dialogbokse til udvidelser, tilladelsesanmodninger mv. også er implementeret som pop op-vinduer. Situationen blev også kompliceret af mangler i Wayland og GTK, som kunne medføre, at små ændringer kunne føre til forskellige regressioner. Ikke desto mindre er koden til håndtering af pop op-vinduer til Wayland blevet justeret, og den planlægges at blive inkluderet i Firefox 94.
Andre relevante forbedringer i forbindelse med Wayland inkluderer tilføjelsen i Firefox 93 af ændringer relateret til skalering på skærme med forskellig DPI, hvilket eliminerede flimmer, når vinduet blev flyttet til kanten af skærmen i multi-monitor-konfigurationer. I Firefox 95 planlægges det at tage fat på problemer, der opstår ved brug af drag & drop-grænsefladen, for eksempel ved kopiering af filer fra eksterne kilder til lokale filsystemer og ved flytning af faner.
I Firefox 96 planlægger porten til Wayland at nå en funktionalitetsparitet med X11-udgaven, i det mindste når den bruges i GNOME-miljøet på Fedora. Efter dette vil udviklernes opmærksomhed blive rettet mod at forfine GPU-processen i Wayland-miljøerne, som hylder koden for interaktion med grafiske adaptere og som beskytter hovedbrowserprocessen mod nedbrud ved driverfejl. Derudover planlægges det også at flytte koden til videodekodning ved hjælp af VAAPI, som i øjeblikket kører i indholdshåndteringsprocesserne.
Desuden kan det bemærkes, at en lille procentdel af brugerne på stabile versioner af Firefox får adgang til den strenge isoleringstilstand for websites, der er blevet udviklet inden for Fission-projektet. I modsætning til den hidtil anvendte tilfældige fordeling af fanebladshåndtering på det tilgængelige procespulje (standard 8), placerer isoleringstilstanden behandlingen af hvert website i sin egen separate proces med opdeling baseret på domæner (Public Suffix) snarere end faner, hvilket yderligere isolerer indholdet af eksterne scripts og iframe-blocks. Kontrollen af aktiveringen af Fission-tilstand styres via variablen «fission.autostart=true» i about:config eller på siden about:preferences#experimental.
Den strenge isoleringstilstand beskytter mod angreb via sidekanaler, såsom dem relateret til sårbarheder i Spectre-klassen, og reducerer samtidig hukommelsesfragmentering, mere effektivt returnerer hukommelse til operativsystemet, mindsker indflydelsen fra affaldssamling og intensive beregninger på siderne i andre processer, øger effektiviteten af belastningsfordelingen på forskellige CPU-kerner og forbedrer stabiliteten (nedbrud af processen, der håndterer iframes, vil ikke påvirke hovedsitet og andre faner).
Blandt de kendte problemer, der opstår ved brug af den strenge isoleringstilstand, er der en bemærkelsesværdig stigning i hukommelses- og filbeskriverforbrug ved åbning af mange faner, samt funktionsfejl i nogle tilføjelser, tab af indhold i iframes ved udskrivning og ved brug af screenshot-funktion, sænket effektivitet ved caching af dokumenter med iframes, samt tab af indhold fra udfyldte, men ikke sendte formularer ved sessiongengivelse efter nedbrud.
Bland andet bemærkes afslutningen af migreringen til Fluent lokalisationssystemet, forbedring af højkontrasttilstand, tilføjelse af muligheden for at optage ydelsesprofiler for processer med ét klik i about:processes og fjernelse af indstillingen for at vende tilbage til den gamle stil af åbning af nye faner, som blev brugt før Firefox 89.
Kilde: opennet.ru
