Martin Stransky, maintainer dei pacchetti con Firefox in Fedora e RHEL, impegnato nel porting di Firefox per Wayland, ha pubblicato un rapporto con una panoramica degli ultimi progressi nel funzionamento di Firefox in ambienti basati sul protocollo Wayland.
Nei prossimi rilasci di Firefox si prevede di risolvere i problemi osservati nelle build per Wayland relativi agli appunti e alla gestione delle finestre popup. Queste funzionalità non sono state immediately implementate a causa delle differenze nel modo in cui vengono realizzate in X11 e Wayland. Nel primo caso, le difficoltà sono sorte a causa del funzionamento degli appunti in modo asincrono, il che ha richiesto la creazione di uno strato separato per astrarre l'accesso agli appunti Wayland. Questo strato sarà incluso in Firefox 93 e abilitato di default in Firefox 94.
Per quanto riguarda le finestre di dialogo popup, la principale difficoltà era che Wayland richiede il rispetto di una rigorosa gerarchia delle finestre popup, ossia una finestra genitore può creare una finestra figlia con un popup, ma il successivo popup avviato da questa finestra deve essere legato alla finestra figlia originale, formando una catena. In Firefox, ogni finestra poteva generare più popup senza formare una gerarchia. Il problema era che, utilizzando Wayland, la chiusura di uno dei popup richiede la ristrutturazione dell'intera catena di finestre con altri popup, pur essendo frequente avere più popup aperti, poiché menu, suggerimenti, dialoghi di estensioni, richieste di autorizzazione, ecc. sono implementati come popup. La situazione era ulteriormente complicata da difetti in Wayland e GTK, a causa dei quali piccoli cambiamenti potevano portare a varie regressioni. Tuttavia, il codice per la gestione delle finestre popup per Wayland è stato messo a punto e si prevede di includerlo in Firefox 94.
Tra le altre migliorie relative a Wayland si menziona l'aggiunta in Firefox 93 di modifiche legate allo scaling su schermi con DPI diversi, che hanno permesso di eliminare il flickering durante il movimento della finestra verso il bordo dello schermo in configurazioni multi-monitor. In Firefox 95 si prevede di affrontare i problemi che si presentano durante l'uso dell'interfaccia drag & drop, ad esempio, durante la copia di file da fonti esterne a file system locali e durante lo spostamento delle schede.
Nella versione 96 di Firefox, si prevede di portare il porting di Firefox per Wayland a una parità funzionale con la versione per X11, almeno su Fedora nel contesto GNOME. Dopo questo, l'attenzione degli sviluppatori sarà rivolta a perfezionare il funzionamento del processo GPU in ambienti Wayland, nel quale è stato spostato il codice per l'interazione con gli adattatori grafici e che protegge il processo principale del browser da crash in caso di guasti nei driver. Si prevede anche di trasferire nel processo GPU il codice per la decodifica video tramite VAAPI, attualmente in esecuzione nei processi di elaborazione dei contenuti.
In aggiunta, va notato l'inserimento della modalità di isolamento rigoroso dei siti per una piccola percentuale di utenti delle versioni stabili di Firefox, sviluppata nell'ambito del progetto Fission. A differenza della distribuzione casuale delle schede nei processi disponibili (predefinito 8) utilizzata fino ad ora, la modalità di isolamento rigoroso sposta il trattamento di ogni sito in un proprio processo separato, separando non per schede, ma per domini (Public Suffix), consentendo così di isolare ulteriormente i contenuti di script esterni e iframe. Il controllo dell'attivazione della modalità Fission avviene tramite la variabile "fission.autostart=true" in about:config o nella pagina about:preferences#experimental.
La modalità di isolamento rigoroso protegge dagli attacchi tramite canali secondari, come quelli legati a vulnerabilità di tipo Spectre, e riduce la frammentazione della memoria, restituendo la memoria al sistema operativo in modo più efficiente, minimizzando l'impatto della raccolta dei rifiuti e dei calcoli intensivi sulle pagine in altri processi, aumentando l'efficienza della distribuzione del carico su diversi core CPU e migliorando la stabilità (il crash del processo che gestisce un iframe non porterà al crash del sito principale e di altre schede).
Tra i problemi noti che sorgono con l'uso della modalità di isolamento rigoroso, si segnala un aumento significativo del consumo di memoria e dei descrittori di file quando si aprono un gran numero di schede, nonché problemi con alcune estensioni, sparizione dei contenuti degli iframe durante la stampa e l'attivazione della funzione di cattura dello schermo, riduzione dell'efficacia della memorizzazione nella cache dei documenti contenenti iframe, perdita dei contenuti di moduli compilati ma non inviati durante il ripristino della sessione dopo un crash.
Tra le altre modifiche in Firefox si segnala il completamento della migrazione al sistema di localizzazione Fluent, il miglioramento della modalità alto contrasto (High Contrast Mode), l'aggiunta nella pagina about:processes della possibilità di registrare profili di prestazioni del processo con un clic e la rimozione dell'impostazione per ripristinare il vecchio stile di apertura di una nuova scheda, utilizzato fino a Firefox 89.
Fonte: opennet.ru
