Veikart for å forbedre Wayland-støtten i Firefox

Martin Stransky, en Firefox-pakkevedlikeholder for Fedora og RHEL som porterer Firefox til Wayland, publiserte en rapport som gjennomgikk den siste utviklingen i Firefox som kjører i Wayland-protokollbaserte miljøer.

I de kommende utgivelsene av Firefox er det planlagt å løse problemene som er observert i builds for Wayland med utklippstavlen og håndtering av popup-vinduer. Disse funksjonene kunne ikke implementeres umiddelbart på grunn av forskjeller i tilnærmingen til implementeringen i X11 og Wayland. I det første tilfellet oppsto det vanskeligheter på grunn av at Wayland-utklippstavlen kjørte asynkront, noe som krevde opprettelse av et eget lag for å abstrahere tilgang til Wayland-utklippstavlen. Det angitte laget vil bli lagt til Firefox 93 og aktivert som standard i Firefox 94.

Når det gjelder popup-dialoger, var hovedproblemet at Wayland krever et strengt hierarki av popup-vinduer, dvs. et overordnet vindu kan opprette et underordnet vindu med en popup, men neste popup som startes fra det vinduet må binde seg til det opprinnelige underordnede vinduet, og danne en kjede. I Firefox kunne hvert vindu skape flere popup-vinduer som ikke dannet et hierarki. Problemet var at når man bruker Wayland, krever lukking av en av popup-vinduene at man gjenoppbygger hele kjeden av vinduer med andre popup-vinduer, til tross for at tilstedeværelsen av flere åpne popup-vinduer ikke er uvanlig, siden menyer og popup-vinduer er implementert i form av popup-verktøytips, tilleggsdialoger, tillatelsesforespørsler, etc. Situasjonen ble også komplisert av feil i Wayland og GTK, på grunn av hvilke små endringer kunne føre til ulike regresjoner. Koden for håndtering av popup-vinduer for Wayland har imidlertid blitt feilsøkt og er planlagt inkludert i Firefox 94.

Andre Wayland-relaterte forbedringer inkluderer tillegg av 93 skaleringsendringer til Firefox på forskjellige DPI-skjermer, som eliminerer flimring når du flytter et vindu til kanten av skjermen i flerskjermskonfigurasjoner. Firefox 95 planlegger å løse problemer som oppstår ved bruk av dra-og-slipp-grensesnittet, for eksempel ved kopiering av filer fra eksterne kilder til lokale filer og ved flytting av faner.

Med utgivelsen av Firefox 96 er Firefox-porten for Wayland planlagt å bringes til generell funksjonalitetsparitet med X11-bygget, i det minste når den kjøres i GNOME-miljøet til Fedora. Etter dette vil utviklernes oppmerksomhet bli byttet til å finpusse arbeidet i Wayland-miljøer av GPU-prosessen, som inneholder kode for samhandling med grafikkadaptere og som beskytter hovednettleserprosessen fra å krasjer i tilfelle driverfeil. GPU-prosessen er også planlagt å inkludere kode for videodekoding ved bruk av VAAPI, som for tiden kjøres i innholdsbehandlingsprosesser.

I tillegg kan vi merke oss inkluderingen av en streng områdeisolasjonsmodus, utviklet som en del av Fission-prosjektet, for en liten prosentandel av brukerne av de stabile grenene til Firefox. I motsetning til den for tiden brukte vilkårlige distribusjonen av tabulatorbehandling på tvers av den tilgjengelige gruppen av prosesser (8 som standard), plasserer isolasjonslinjemodusen behandlingen av hvert nettsted i sin egen separate prosess, ikke atskilt med faner, men etter domene (offentlig suffiks ), som gir mulighet for ytterligere isolasjonsinnhold av eksterne skript og iframe-blokker. Aktivering av Fission-modus styres gjennom "fission.autostart=true"-variabelen i about:config eller på about:preferences#experimental-siden.

Strengt isolasjonsmodus bidrar til å beskytte mot sidekanalangrep, slik som de som er forbundet med Spectre-sårbarheter, og reduserer også minnefragmentering, returnerer minne mer effektivt til operativsystemet, minimerer innvirkningen av søppelinnsamling og intensive beregninger på sider i andre prosesser, og øker effektiviteten av lastfordeling på tvers av forskjellige CPU-kjerner og øker stabiliteten (krasj i prosessen som behandler iframen vil ikke påvirke hovedsiden og andre faner).

Blant de kjente problemene som oppstår når du bruker den strenge isolasjonsmodusen, er det en merkbar økning i minne- og fildeskriptorforbruk når du åpner et stort antall faner, samt forstyrrelse av arbeidet til noen tillegg, forsvinning av iframe-innhold når utskrift og oppkalling av skjermbildeopptaksfunksjonen, redusert effektivitet av caching av dokumenter fra iframe, Tap av innhold i utfylte, men ikke innsendte skjemaer når en økt gjenopprettes etter en krasj.

Andre endringer i Firefox inkluderer fullføringen av migreringen til Fluent-lokaliseringssystemet, forbedringer av High Contrast Mode, tillegg av muligheten til å registrere prosessytelsesprofiler med ett klikk til about:processes, og fjerning av en innstilling for å returnere den gamle stilen til den åpne nye fanesiden som ble brukt før Firefox 89.

Kilde: opennet.ru

Legg til en kommentar