È stato rilasciato il browser web Firefox 94. Inoltre, è stata formata un'aggiornamento per i rami con supporto a lungo termine — 91.3.0. Il ramo Firefox 95 è passato in fase di beta testing, il cui rilascio è previsto per il 7 dicembre.
Novità principali:
- È stata implementata una nuova pagina di servizio «about:unloads» sulla quale l'utente può forzare il caricamento dalla memoria delle schede più pesanti, senza chiuderle (il contenuto sarà ricaricato quando si passa alla scheda). Nella pagina «about:unloads», le schede esistenti sono elencate in ordine di priorità di espulsione in caso di carenza di memoria. La priorità nella lista è determinata in base al tempo di accesso alla scheda, non in base alle risorse consumate. Premendo il pulsante Unload, la prima scheda nella lista sarà espulsa dalla memoria, la seconda al successivo clic, e così via. Non è possibile espellere una scheda a scelta.

- Al primo avvio dopo l'installazione dell'aggiornamento, si avvia una nuova interfaccia per la selezione di sei temi stagionali colorati, per i quali sono proposti tre livelli di applicazione della tonalità scura, che influenzano la visualizzazione in tonalità scure dell'area dei contenuti, delle pannelli e della barra di commutazione delle schede.

- È stata proposta una modalità di isolamento rigoroso dei siti, sviluppata nell'ambito del progetto Fission. A differenza della distribuzione casuale delle schede tra il pool di processi disponibile (di default 8) utilizzata fino ad ora, la modalità di isolamento rigoroso assegna il trattamento di ciascun sito a un processo separato, separando non per schede, ma per domini (Public Suffix). La modalità non è attivata per tutti gli utenti; per disattivarla o attivarla è possibile utilizzare la pagina «about:preferences#experimental» o l'impostazione «fission.autostart» in about:config.
La nuova modalità offre una protezione più affidabile contro gli attacchi di tipo Spectre, riduce la frammentazione della memoria, consente di isolare ulteriormente il contenuto degli script esterni e dei blocchi iframe, restituisce la memoria al sistema operativo in modo più efficace, minimizza l'impatto della raccolta dei rifiuti e dei calcoli intensivi sulle pagine in altri processi, aumenta l'efficienza della distribuzione del carico su diversi core della CPU e migliora la stabilità (un crash del processo che gestisce l'iframe non trascina giù il sito principale e altre schede). Il costo è un aumento complessivo del consumo di memoria con un numero elevato di siti aperti.
- Agli utenti viene offerto il componente aggiuntivo Multi-Account Containers con l'implementazione del concetto di contenitori contestuali, che possono essere utilizzati per un'isolamento flessibile di siti arbitrari. I contenitori offrono la possibilità di isolare diversi tipi di contenuto senza creare profili separati, consentendo di separare le informazioni di vari gruppi di pagine. Ad esempio, è possibile creare aree separate e isolate l'una dall'altra per comunicazione personale, lavoro, shopping e operazioni bancarie, oppure organizzare l'uso simultaneo di diversi account utente su un unico sito. Ogni contenitore utilizza memorie separate per Cookies, Local Storage API, indexedDB, cache e contenuto OriginAttributes. Inoltre, utilizzando Mozilla VPN è possibile utilizzare diversi server VPN per ciascun contenitore.

- È stata rimossa la richiesta di conferma dell'operazione quando si esce dal browser o si chiude la finestra tramite il menu e i pulsanti di chiusura della finestra. In altre parole, un errato clic sul pulsante «[x]» nell'intestazione della finestra porta ora alla chiusura di tutte le schede, comprese quelle con moduli di modifica aperti, senza mostrare un avviso in anticipo. Dopo il ripristino della sessione, i dati nei web-moduli non andranno persi. Cliccando Ctrl+Q continua ad apparire l'avviso. In impostazioni, questo comportamento può essere modificato (pannello Generale/ sezione Schede/ parametro «Conferma prima di chiudere più schede»).

- Nelle versioni per la piattaforma Linux per gli ambienti grafici che utilizzano il protocollo X11, è abilitato di default un nuovo backend di rendering, che si distingue per l'uso dell'EGL per l'output della grafica dell'interfaccia invece del GLX. Il backend supporta i driver OpenGL open source Mesa 21.x e i driver proprietari NVIDIA 470.x. I driver OpenGL proprietari di AMD non sono ancora supportati. L'uso di EGL risolve i problemi con i driver gfx e consente di ampliare la gamma di dispositivi per cui è disponibile l'accelerazione video e WebGL. Il nuovo backend è stato preparato attraverso la separazione del backend DMABUF, originariamente creato per Wayland e che consente di inviare direttamente i frame alla memoria GPU, che può essere riflessa nel framebuffer EGL e renderizzata come texture durante il rendering degli elementi della pagina web.
- Nelle versioni per Linux è abilitato di default un layer che risolve i problemi con il clipboard negli ambienti basati sul protocollo Wayland. È inclusa anche una modifica relativa alla gestione delle finestre popup negli ambienti basati sul protocollo Wayland. Wayland richiede il rispetto di una rigorosa gerarchia delle finestre popup, ossia una finestra principale può creare una finestra secondaria con un popup, ma il successivo popup avviato da questa finestra deve essere collegato alla finestra secondaria originale, formando una catena. In Firefox, invece, ogni finestra può generare più popup che non formano una gerarchia. Il problema risiedeva nel fatto che, utilizzando Wayland, la chiusura di uno dei popup richiede la ricostruzione dell'intera catena di finestre con altri popup, considerando che avere più popup aperti non è raro, poiché i menu, i suggerimenti contestuali, le finestre di dialogo delle estensioni, le richieste di autorizzazione, ecc. sono implementati come popup.
- Le sovraccarichi per l'uso delle API performance.mark() e performance.measure() sono stati ridotti con un numero maggiore di metriche analizzate.
- Il comportamento di rendering durante il caricamento delle pagine è stato modificato per migliorare le prestazioni di caricamento "caldo" delle pagine già aperte in modalità di severa isolamento.
- Per accelerare il caricamento delle pagine, è stato aumentato il priorità di caricamento e visualizzazione delle immagini.
- Nel motore JavaScript, il consumo di memoria è leggermente diminuito e le prestazioni nell'iterazione delle proprietà sono state migliorate.
- Sono state migliorate le operazioni di pianificazione delle chiamate al garbage collector, riducendo i tempi di caricamento delle pagine in alcuni test.
- Ridotto il carico sulla CPU durante il polling dei socket per la gestione delle connessioni HTTPS.
- Accelerata l'inizializzazione del deposito e ridotto il tempo di avvio iniziale grazie a una diminuzione delle operazioni di input/output nel thread principale.
- Alla chiusura degli strumenti per sviluppatori è garantito il rilascio di una maggiore quantità di memoria rispetto a prima.
- Nella regola CSS @import è stata aggiunta il supporto per la funzione layer(), che restituisce le definizioni del livello di cascata specificato tramite la regola @layer.
- Nella funzione structuredClone() è stata implementata la supporto per la copiatura di oggetti complessi JavaScript.
- Per i moduli è stato implementato l'attributo 'enterkeyhint', che consente di definire il comportamento quando si preme il tasto Enter sulla tastiera virtuale.
- Implementato il metodo HTMLScriptElement.supports(), che permette di verificare se il browser supporta determinati tipi di script, come i moduli JavaScript o i classici script.
- Aggiunta la proprietà ShadowRoot.delegatesFocus per verificare l'impostazione della proprietà delegatesFocus in un Shadow DOM separato.
- Sulla piattaforma Windows, invece di richiedere all'utente l'installazione degli aggiornamenti, il browser ora si aggiorna in background alla chiusura. Nel contesto di Windows 11 è stato implementato il supporto per il nuovo sistema di menu (Snap Layouts).
- Nelle build per macOS è stato attivato un mode a basso consumo energetico per i video a schermo intero.
- Nella versione per la piattaforma Android:
- Semplificato il ritorno ai contenuti precedentemente visualizzati e chiusi: nella nuova homepage di base è stata fornita la possibilità di visualizzare le schede recentemente chiuse, i segnalibri aggiunti, le richieste di ricerca e le raccomandazioni del servizio Pocket.
- È stata fornita la possibilità di personalizzare il contenuto visualizzato sulla homepage. Ad esempio, è possibile impostare la visualizzazione delle liste dei siti più visitati, delle schede recentemente aperte, dei segnalibri recentemente salvati, delle richieste di ricerca e delle raccomandazioni di Pocket.
- Aggiunto il supporto per spostare le schede inattive da tempo in una sezione separata Inactive Tabs, per non affollare la barra principale delle schede. Le schede inattive vengono collocate in Inactive Tabs se non sono state aperte per più di 2 settimane. Questo comportamento può essere disattivato nelle impostazioni 'Settings->Tabs->Move old Tabs to inactive.'
- Espansa l'euristica nella generazione di raccomandazioni durante la digitazione nella barra degli indirizzi.

Oltre alle novità e alle correzioni di errori, in Firefox 94 sono state risolte 16 vulnerabilità, delle quali 10 segnalate come pericolose. 5 vulnerabilità sono dovute a problemi di gestione della memoria, come buffer overflow e accesso a aree di memoria già liberate. Potenzialmente, questi problemi potrebbero portare all'esecuzione di codice malevolo aprendo pagine appositamente formulate.
Fonte: opennet.ru





