Färdkarta för att förbättra Wayland-stödet i Firefox

Martin Stransky, en Firefox-pakethållare för Fedora och RHEL som porterar Firefox till Wayland, publicerade en rapport som granskade den senaste utvecklingen i Firefox som körs i Wayland-protokollbaserade miljöer.

I de kommande versionerna av Firefox är det planerat att lösa problemen som observerats i builds för Wayland med urklipp och hantering av popup-fönster. Dessa funktioner kunde inte implementeras omedelbart på grund av skillnader i tillvägagångssätt för deras implementering i X11 och Wayland. I det första fallet uppstod svårigheter på grund av att Wayland urklipp kördes asynkront, vilket krävde att man skapade ett separat lager för att abstrahera åtkomst till Wayland urklipp. Det angivna lagret kommer att läggas till Firefox 93 och aktiveras som standard i Firefox 94.

När det gäller popup-dialoger var den största svårigheten att Wayland kräver en strikt hierarki av popup-fönster, d.v.s. ett överordnat fönster kan skapa ett underordnat fönster med en popup, men nästa popup som initieras från det fönstret måste binda till det ursprungliga underordnade fönstret och bilda en kedja. I Firefox kunde varje fönster skapa flera popup-fönster som inte bildade en hierarki. Problemet var att när man använder Wayland krävs det att man bygger om hela kedjan av fönster med andra popup-fönster för att stänga ett av popup-fönster, trots att förekomsten av flera öppna popup-fönster inte är ovanligt, eftersom menyer och popup-fönster är implementerade i form av popup-verktygstips, tilläggsdialoger, behörighetsförfrågningar, etc. Situationen komplicerades också av brister i Wayland och GTK, på grund av vilka små förändringar kunde leda till olika regressioner. Koden för att hantera popup-fönster för Wayland har dock felsökts och är planerad att inkluderas i Firefox 94.

Andra Wayland-relaterade förbättringar inkluderar tillägget av 93 skalningsändringar i Firefox på olika DPI-skärmar, vilket eliminerar flimmer när ett fönster flyttas till kanten av skärmen i flerskärmskonfigurationer. Firefox 95 planerar att ta itu med problem som uppstår när man använder dra&släpp-gränssnittet, till exempel när man kopierar filer från externa källor till lokala filer och när man flyttar flikar.

Med lanseringen av Firefox 96 planeras Firefox-porten för Wayland att bringas till övergripande funktionalitet med X11-bygget, åtminstone när det körs i Fedoras GNOME-miljö. Efter detta kommer utvecklarnas uppmärksamhet att riktas mot att finslipa arbetet i Wayland-miljöer av GPU-processen, som innehåller kod för att interagera med grafikadaptrar och som skyddar huvudwebbläsarprocessen från att krascha i händelse av drivrutinsfel. GPU-processen är också planerad att inkludera kod för videoavkodning med VAAPI, som för närvarande körs i processer för innehållsbehandling.

Dessutom kan vi notera införandet av ett strikt läge för platsisolering, utvecklat som en del av Fission-projektet, för en liten andel av användarna av de stabila grenarna av Firefox. I motsats till den godtyckliga fördelningen av flikbearbetning över den tillgängliga processpoolen (8 som standard), som hittills använts, placerar isoleringslinjeläget bearbetningen av varje plats i sin egen separata process, separerad inte av flikar, utan av domän (Public Suffix), som tillåter ytterligare isoleringsinnehåll av externa skript och iframe-block. Aktivering av Fission-läge styrs genom variabeln "fission.autostart=true" i about:config eller på sidan about:preferences#experimental.

Strikt isoleringsläge hjälper till att skydda mot sidokanalattacker, såsom de som är associerade med Spectre-sårbarheter, och minskar även minnesfragmentering, återför minnet mer effektivt till operativsystemet, minimerar inverkan av sophämtning och intensiva beräkningar på sidor i andra processer, och ökar effektiviteten för belastningsfördelning över olika CPU-kärnor och ökar stabiliteten (kraschen av processen som bearbetar iframen kommer inte att påverka huvudsidan och andra flikar).

Bland de kända problemen som uppstår när man använder det strikta isoleringsläget, finns det en märkbar ökning av minnes- och filbeskrivningskonsumtion när man öppnar ett stort antal flikar, såväl som störningar i arbetet med vissa tillägg, försvinnande av iframe-innehåll när skriva ut och anropa inspelningsfunktionen för skärmdump, minskad effektivitet i cachelagring av dokument från iframe, Förlust av innehåll i ifyllda men inte inskickade formulär när en session återställs efter en krasch.

Andra förändringar i Firefox inkluderar slutförandet av migreringen till Fluent-lokaliseringssystemet, förbättringar av High Contrast Mode, tillägget av möjligheten att spela in processprestandaprofiler med ett klick till about:processes, och borttagningen av en inställning för att återställa den gamla stil på den nya fliksidan som användes före Firefox 89.

Källa: opennet.ru

Lägg en kommentar