È stata rilasciata la versione del browser web Firefox 89. Inoltre, è stato creato un aggiornamento per il ramo a lungo termine 78.11.0. Il ramo Firefox 90 entrerà in fase di beta testing a breve, con il rilascio previsto per il 13 luglio.
Novità principali:
- È stata effettuata una significativa modernizzazione dell'interfaccia. Le icone sono state aggiornate, uniformando lo stile degli elementi e ripensando la palette di colori.
- La disposizione della barra delle schede è cambiata: gli angoli dei pulsanti delle schede sono arrotondati e non si fondono più con la barra nella parte inferiore (effetto pulsante fluttuante). È stata rimossa la separazione visiva delle schede inattive, ma l'area occupata da ciascun pulsante viene evidenziata quando si passa il mouse sulla scheda.

- Il menu è stato ristrutturato. Sono stati rimossi gli elementi raramente utilizzati e obsoleti dal menu principale e dai menu contestuali, per concentrare l'attenzione sulle funzionalità più importanti. Gli elementi rimanenti sono stati raggruppati in base all'importanza e all'uso da parte degli utenti. Per combattere l'accumulo visivo distraente, sono state rimosse le icone accanto agli elementi del menu e sono state mantenute solo le etichette testuali. L'interfaccia per la personalizzazione della barra e gli strumenti per gli sviluppatori web sono stati spostati in un sottomenu separato "Strumenti aggiuntivi" ("More Tools").


- È stato rimosso il menu integrato nella barra degli indirizzi "…" (Page Actions), attraverso il quale era possibile aggiungere un segnalibro, inviare un link a Pocket, fissare una scheda, lavorare con gli appunti e avviare l'invio di materiale tramite email. Le opzioni disponibili attraverso il menu "…" sono state spostate in altre parti dell'interfaccia e sono accessibili nella sezione di personalizzazione della barra; possono essere posizionate singolarmente sulla barra come pulsanti. Ad esempio, il pulsante per aprire l'interfaccia di creazione screenshot è disponibile tramite il menu contestuale che appare facendo clic con il tasto destro del mouse sulla pagina.

- È stata riprogettata la barra laterale a comparsa per la personalizzazione della pagina con un'interfaccia visualizzata all'apertura di una nuova scheda.

- Lo stile delle finestre informative e dei dialoghi modali con avvisi, conferme e richieste è stato modificato e uniformato con gli altri dialoghi. I dialoghi vengono visualizzati con angoli arrotondati e centrati verticalmente.

- Dopo l'aggiornamento, viene visualizzato un suggerimento per impostare Firefox come browser predefinito nel sistema, offrendo la possibilità di scegliere il tema dell'interfaccia. Sono disponibili i seguenti temi: sistema (considera le impostazioni di sistema per la progettazione di finestre, menu e pulsanti), chiaro, scuro e Alpenglow (colorato).





- Nel menu di impostazione dell'aspetto della barra, il pulsante per attivare la modalità compatta di visualizzazione delle barre è nascosto per impostazione predefinita. Per ripristinare l'impostazione in about:config è stato implementato il parametro "browser.compactmode.show". Per gli utenti con la modalità compatta attivata, il parametro sarà attivato automaticamente.
- È stato ridotto il numero di elementi che distraggono l'attenzione degli utenti. Sono stati rimossi avvisi e notifiche superflui.
- Nella barra degli indirizzi è integrata una calcolatrice che consente di calcolare espressioni matematiche date in ordine arbitrario. La calcolatrice è attualmente disattivata per impostazione predefinita e richiede la modifica dell'impostazione suggest.calculator in about:config. In una delle prossime versioni si prevede anche (già aggiunta nelle build notturne en-US) l'aggiunta di un convertitore di unità integrato nella barra degli indirizzi, che permette, ad esempio, di convertire piedi in metri.

- Nelle build per Linux è stata attivata l'uso del motore di composizione WebRender per tutti gli utenti Linux, comprese tutte le interfacce desktop, tutte le versioni di Mesa e i sistemi con driver NVIDIA (in precedenza WebRender era attivato solo per GNOME, KDE e Xfce con driver Intel e AMD). WebRender è scritto in Rust e consente di ottenere un notevole incremento della velocità di rendering e una riduzione del carico della CPU spostando le operazioni di rendering dei contenuti della pagina sulla GPU, eseguite tramite shader nella GPU. Per disattivare WebRender in about:config, è possibile utilizzare l'impostazione "gfx.webrender.enabled" o avviare Firefox con la variabile ambiente MOZ_WEBRENDER=0.
- È attivato per impostazione predefinita il metodo di protezione totale dei Cookie (Total Cookie Protection), che in precedenza si attivava solo quando veniva scelto il rigido regime di blocco dei contenuti indesiderati (strict). Ora, per ogni sito, viene utilizzato un archivio isolato per i Cookie, il che impedisce l'uso dei Cookie per tracciare il movimento tra i siti. Infatti, tutti i Cookie impostati dai blocchi di contenuto di terze parti caricati sul sito ora sono legati al sito principale e non vengono trasferiti quando si accede a tali blocchi da altri siti. Come eccezione, è rimasta la possibilità di trasferimento intersito dei Cookie per servizi non legati al tracciamento degli utenti, ad esempio quelli utilizzati per l'autenticazione unica. Le informazioni sui Cookie bloccati e consentiti tra siti sono visualizzabili nel menu che appare cliccando sull'icona dello scudo nella barra degli indirizzi.

- È stata attivata la seconda versione del meccanismo SmartBlock, progettato per risolvere i problemi sui siti derivanti dal blocco di script esterni in modalità di navigazione privata o durante l'attivazione del rigoroso blocco dei contenuti indesiderati (strict). Tra l'altro, SmartBlock consente di migliorare notevolmente le prestazioni di alcuni siti che risultano lenti a causa dell'impossibilità di caricare il codice degli script per il tracciamento. SmartBlock sostituisce automaticamente gli script di tracciamento con dei 'placeholder' che garantiscono un caricamento corretto del sito. I 'placeholder' sono stati preparati per alcuni script di tracciamento popolare inclusi nell'elenco Disconnect, tra cui script con widget di Facebook, Twitter, Yandex, Vkontakte e Google.
- È stato attivato il supporto per l'estensione TLS DC (Delegated Credentials) per la delega di certificati a vita breve, risolvendo i problemi con i certificati quando si organizza l'accesso a un sito tramite reti di distribuzione dei contenuti. Delegated Credentials introduce una chiave privata intermedia aggiuntiva, la cui durata è limitata a poche ore o giorni (non oltre 7 giorni). Questa chiave è generata sulla base del certificato emesso dall'autorità di certificazione e consente di mantenere segreta la chiave privata del certificato originale dai servizi di distribuzione dei contenuti. Per evitare problemi di accesso dopo la scadenza della chiave intermedia, è prevista una tecnologia di aggiornamento automatico che viene eseguita dal server TLS originale.
- È stata introdotta un'implementazione di elementi di input come interruttori, pulsanti, menu a discesa e campi di testo (input, textarea, button, select) di terze parti (non nativa del sistema), contraddistinta da un design più moderno. L'uso di un'implementazione separata degli elementi del modulo ha anche avuto un impatto positivo sulle prestazioni del rendering delle pagine.
- È stata fornita la possibilità di manipolare il contenuto degli elementi e
- È stato implementato l'API Event Timing per misurare i ritardi degli eventi prima e dopo il caricamento della pagina.
- Aggiunta la proprietà CSS forced-colors per definire se il browser applica sulla pagina una palette di colori limitata dall'utente.
- Nelle proprietà CSS ascent-override, descent-override e line-gap-override è stato aggiunto il descrittore @font-face per riadattare le metriche del font, che può essere utilizzato per uniformare la visualizzazione del font su diversi browser e sistemi operativi, nonché per evitare il shifting del layout della pagina causato da font web.
- Nella funzione CSS image-set(), che consente di scegliere l'immagine da un insieme di opzioni con risoluzioni diverse, è stato implementato il supporto per la funzione type().
- In JavaScript, per impostazione predefinita, è consentito usare la parola chiave await nei moduli a livello superiore, permettendo di integrare più dolcemente le chiamate asincrone nel processo di caricamento dei moduli e di evitare l'imballaggio in una «async function». Ad esempio, invece di (async function() { await Promise.resolve(console.log(‘test’)); }()); ora si può scrivere await Promise.resolve(console.log(‘test’));
- Nei sistemi a 64 bit è consentita la creazione di strutture ArrayBuffers di dimensioni superiori a 2GB (ma non oltre 8GB).
- È stata interrotta la supporto per gli eventi DeviceProximityEvent, UserProximityEvent e DeviceLightEvent, che non sono supportati in altri browser.
- Nella console di ispezione delle pagine è stato migliorato il navigazione tramite tastiera nelle proprietà modificabili del BoxModel.
- Nelle versioni per Windows è stato migliorato l'aspetto dei menu contestuali e accelerato l'avvio del browser.
- Nelle versioni per macOS è stato implementato l'uso di menu contestuali nativi della piattaforma e barre di scorrimento. È stato aggiunto il supporto per un effetto di scrolling oltre l'area visibile (overscroll), che segnala il raggiungimento della fine della pagina. È stata aggiunta la funzione di zoom intelligente, attivabile con un doppio clic. È stato implementato il supporto per un tema scuro. Sono stati risolti i problemi di discrepanza tra la visualizzazione dei colori in CSS e nelle immagini. In modalità a schermo intero è stata fornita la possibilità di nascondere le barre degli strumenti.
Oltre alle novità e alla correzione di errori, in Firefox 89 sono state risolte 16 vulnerabilità, di cui 6 classificate come pericolose. 5 vulnerabilità (raccogliendo sotto CVE-2021-29967) sono causate da problemi di gestione della memoria, come overflow di buffer e accesso a aree di memoria già liberate. Queste problematiche potrebbero potenzialmente consentire l'esecuzione di codice da parte di un attaccante aprendo pagine appositamente realizzate.
Fonte: opennet.ru













