Roadmap per migliorare il supporto Wayland in Firefox

Martin Stransky, un manutentore del pacchetto Firefox per Fedora e RHEL che sta portando Firefox su Wayland, ha pubblicato un rapporto che esamina gli ultimi sviluppi di Firefox in esecuzione in ambienti basati sul protocollo Wayland.

Nelle prossime versioni di Firefox, si prevede di risolvere i problemi osservati nelle build per Wayland con gli appunti e la gestione dei popup. Queste funzionalità non possono essere implementate immediatamente a causa delle differenze nell'approccio alla loro implementazione in X11 e Wayland. Nel primo caso, sono sorte difficoltà a causa del funzionamento asincrono degli appunti di Wayland, che richiedeva la creazione di un livello separato per astrarre l'accesso agli appunti di Wayland. Il livello specificato verrà aggiunto a Firefox 93 e abilitato per impostazione predefinita in Firefox 94.

Per quanto riguarda le finestre di dialogo pop-up, la difficoltà principale era che Wayland richiede una rigida gerarchia di finestre pop-up, ad es. una finestra madre può creare una finestra figlia con un popup, ma il popup successivo avviato da quella finestra deve legarsi alla finestra figlia originale, formando una catena. In Firefox, ogni finestra poteva generare diversi popup che non formavano una gerarchia. Il problema era che quando si utilizza Wayland, per chiudere uno dei popup è necessario ricostruire l'intera catena di finestre con altri popup, nonostante la presenza di diversi popup aperti non sia rara, poiché menu e popup sono implementati sotto forma di popup di descrizioni comandi, finestre di dialogo di componenti aggiuntivi, richieste di autorizzazione, ecc. La situazione era complicata anche dai difetti di Wayland e GTK, a causa dei quali piccoli cambiamenti potevano portare a varie regressioni. Tuttavia, è stato eseguito il debug del codice per la gestione dei popup per Wayland e se ne prevede l'inclusione in Firefox 94.

Altri miglioramenti relativi a Wayland includono l'aggiunta di 93 modifiche di ridimensionamento a Firefox su diversi schermi DPI, che eliminano lo sfarfallio quando si sposta una finestra sul bordo dello schermo in configurazioni multi-monitor. Firefox 95 intende risolvere i problemi che sorgono quando si utilizza l'interfaccia drag&drop, ad esempio quando si copiano file da fonti esterne a file locali e quando si spostano le schede.

Con il rilascio di Firefox 96, si prevede che il port di Firefox per Wayland venga portato alla parità complessiva di funzionalità con la build X11, almeno quando viene eseguito nell'ambiente GNOME di Fedora. Successivamente, l'attenzione degli sviluppatori si sposterà sull'affinamento del lavoro negli ambienti Wayland del processo GPU, che contiene codice per interagire con gli adattatori grafici e che protegge il processo del browser principale dal crash in caso di guasti del driver. Si prevede che il processo GPU includa anche il codice per la decodifica video utilizzando VAAPI, attualmente eseguito nei processi di elaborazione dei contenuti.

Inoltre, possiamo notare l'inclusione di una rigorosa modalità di isolamento del sito, sviluppata nell'ambito del progetto Fission, per una piccola percentuale di utenti dei rami stabili di Firefox. In contrasto con la distribuzione arbitraria dell'elaborazione delle schede nel pool di processi disponibile (8 per impostazione predefinita), utilizzata finora, la modalità della linea di isolamento colloca l'elaborazione di ciascun sito nel proprio processo separato, separato non dalle schede, ma dal dominio (Public Suffisso), che consente un ulteriore isolamento dei contenuti di script esterni e blocchi iframe. L'abilitazione della modalità Fissione è controllata tramite la variabile "fission.autostart=true" in about:config o nella pagina about:preferences#experimental.

La modalità di isolamento rigoroso aiuta a proteggere dagli attacchi side-channel, come quelli associati alle vulnerabilità Spectre, e riduce inoltre la frammentazione della memoria, restituisce la memoria in modo più efficiente al sistema operativo, riduce al minimo l'impatto della garbage collection e dei calcoli intensivi sulle pagine in altri processi e aumenta l'efficienza della distribuzione del carico tra i diversi core della CPU e aumenta la stabilità (il crash del processo di elaborazione dell'iframe non influirà sul sito principale e sulle altre schede).

Tra i problemi noti che sorgono quando si utilizza la modalità di isolamento rigoroso, vi è un notevole aumento del consumo di memoria e di descrittori di file quando si aprono un gran numero di schede, nonché l'interruzione del lavoro di alcuni componenti aggiuntivi, la scomparsa del contenuto iframe quando stampa e richiamo della funzione di registrazione degli screenshot, ridotta efficienza della memorizzazione nella cache dei documenti da iframe, perdita di contenuto dei moduli completati ma non inviati quando una sessione viene ripristinata dopo un arresto anomalo.

Altre modifiche in Firefox includono il completamento della migrazione al sistema di localizzazione Fluent, miglioramenti alla modalità a contrasto elevato, l'aggiunta della possibilità di registrare i profili delle prestazioni dei processi con un clic su about:processes e la rimozione di un'impostazione per ripristinare la vecchia stile della pagina Nuova scheda aperta utilizzata prima di Firefox 89.

Fonte: opennet.ru

Aggiungi un commento