È stato rilasciato il web browser Firefox 122 e creata una nuova versione della ramificazione con supporto a lungo termine — 115.7.0. La ramificazione Firefox 123 è passata alla fase di beta testing, con rilascio previsto per il 20 febbraio.
Novità principali in Firefox 122:
- Espanse le funzionalità relative alla visualizzazione delle raccomandazioni durante la digitazione nella barra degli indirizzi. Per alcuni motori di ricerca è stata implementata la possibilità di visualizzare raccomandazioni contenenti immagini e descrizioni testuali. Durante la ricerca di informazioni legate allo sviluppo web, è garantita la visualizzazione tra le raccomandazioni di collegamenti alla documentazione su MDN (Mozilla Developer Network).

- È iniziata la creazione di pacchetti deb pronti per Ubuntu, Debian e Linux Mint. I pacchetti in fase di creazione sono compatibili con le versioni tradizionali di Firefox per Debian e Ubuntu, disponibili per il download negli archivi «.tar.bz2». Durante la creazione dei pacchetti nel compilatore sono state incluse ottimizzazioni aggiuntive e flag per aumentare la sicurezza. È incluso un file .desktop per la creazione di un collegamento sul desktop e nel menu del sistema operativo. Guida all'installazione di Firefox dal repository APT di Mozilla.
- Migliorata la qualità della traduzione delle pagine grazie al sistema di traduzione automatica integrato. Risolti i problemi con la scomparsa delle pagine tradotte e il malfunzionamento dei widget interattivi.
- Per aumentare la protezione contro gli attacchi XSS e migliorare la portabilità tra i browser, sono state sospese le URL «data:» in SVGUseElement.
- Aggiunta una protezione contro la fuga di informazioni sui collegamenti visitati in precedenza, tramite l'analisi del colore dei pixel utilizzando filtri che usano il parametro currentColor. L'output di tali filtri non potrà più essere letto da canvas in SVG, poiché possono essere utilizzati per determinare il colore impostato tramite il selettore «:visited».
- Nelle versioni per macOS è stata aggiunta la supporto per la tecnologia Passkey (uso esclusivo in iCloud Keychain), che consente all'utente di autenticarsi senza password utilizzando identificatori biometrici, come impronte digitali o riconoscimento facciale.
- Implementata la gestione del token di completamento automatico «webauthn». Nei dialoghi di completamento automatico dei moduli è stato implementato un'interfaccia per la connessione tramite Passkey.
- In modalità di navigazione privata, gli script hanno la possibilità di salvare dati tramite l'API Cache per uniformare il comportamento tra modalità privata e normale (le differenze precedenti potevano essere utilizzate per identificare l'operato dell'utente in modalità privata).
- In WebRTC è abilitato di default il supporto per il meccanismo di correzione preventivo degli errori ULPFEC (Uneven Level Protection Forward Error Correction), che consente di ripristinare pacchetti danneggiati o persi. L'uso di ULPFEC permette di migliorare la qualità video per utenti con connessioni instabili.
- È consentito l'uso dell'elemento <hr> all'interno dell'elemento <select> per inserire separatori nelle liste generate sulla base dell'elemento <select>.
- È stata aggiunta la possibilità di utilizzare il metodo showPicker con gli elementi per richiamare programmaticamente l'implementazione del menu a discesa fornita dal browser.
- Le regole di interruzione delle righe per la visualizzazione del testo nelle pagine web sono state allineate agli standard Unicode. Per le lingue asiatiche, come giapponese e cinese, è stata implementata la supporto per la selezione di parole intere con un doppio clic del mouse nel testo.
- È stata inclusa la proprietà CSS offset-position, che definisce la posizione iniziale di un elemento e viene solitamente utilizzata insieme alla proprietà offset-path per determinare il percorso di movimento degli oggetti di animazione.
- Nella proprietà CSS offset-path è stato aggiunto il supporto per la funzione ray(), che definisce un segmento di linea che l'elemento animato deve seguire, oltre ai valori basic-shape e coord-box.
- Nelle proprietà CSS clip-path e offset-path è stato aggiunto il supporto per le funzioni rect() e xywh(), utili per la creazione di figure di base.
- È stato introdotto il supporto per l'animazione dell'attributo SVG viewBox, utilizzando il linguaggio SMIL (Synchronized Multimedia Integration Language), progettato per animare gli elementi SVG.
- Il parser URL, chiamato per i collegamenti con uno schema sconosciuto, è stato modificato in DefaultURI in conformità ai requisiti della specifica.
- È stato abilitato il supporto per i metodi ArrayBuffer.prototype.transfer() e ArrayBuffer.prototype.transferToFixedLength() per trasferire la proprietà della memoria da un ArrayBuffer all'altro. Dopo il trasferimento, il buffer si disconnette dall'area di memoria originale e diventa inutilizzabile. Per controllare lo stato del buffer, si può utilizzare la proprietà ArrayBuffer.prototype.detached.
- È stato implementato l'API LargestContentfulPaint, che fornisce informazioni sul tempo di rendering dell'immagine o del testo più grande prima che l'utente inizi a interagire con la pagina.
- È stata aggiunta la supporto per l'API Screen Wake Lock, che consente a un'applicazione web, ad esempio a un lettore multimediale, di impedire l'attivazione dello screensaver dopo un lungo periodo di inattività dell'utente.
- È stato aggiunto il supporto sperimentale per l'API:
- API del DOM Shadow dichiarativo (attivato tramite dom.webcomponents.shadowdom.declarative.enabled in about:config) per creare nuovi rami radice nel DOM Shadow, ad esempio per separare lo stile di un elemento di terze parti importato e il relativo ramo DOM dal documento principale. L'API dichiarativa proposta permette di staccare i rami DOM utilizzando solo HTML, senza la necessità di scrivere codice JavaScript.
- API Popover (attivato tramite dom.element.popover.enabled in about:config) per creare elementi dell'interfaccia utente che vengono visualizzati sopra altri elementi dell'interfaccia web. Ad esempio, con il nuovo API è possibile creare menu di azioni, visualizzare suggerimenti per la compilazione di moduli, creare interfacce di formazione e implementare la cattura del contenuto. La visualizzazione sopra altri elementi viene effettuata impostando l'attributo "popover", mentre la posizione, la cascata e il focus dell'input vengono gestiti automaticamente. A differenza dell'elemento "dialogo", gli elementi con l'attributo "popover" non utilizzano la modalità modale, supportano eventi e possono essere facilmente annullati.
- Strumenti per la lettura e la scrittura negli appunti (attivati tramite dom.events.asyncClipboard.clipboardItem, dom.events.asyncClipboard.readText e dom.events.asyncClipboard.writeText in about:config), che consentono di utilizzare l'interfaccia ClipboardItem e i metodi read(), readText() e write().
- Oggetto Intl.Segmenter (attivato solo nelle versioni notturne di Firefox) per una segmentazione precisa del testo nelle stringhe tenendo conto della locale, ad esempio per separare le parole in lingue che non utilizzano spazi per la separazione delle parole.
- Negli strumenti per sviluppatori web in modalità ispezione, attualmente quando si modifica un selettore o proprietà, la pressione del tasto Enter conferma l'input e imposta il focus sull'elemento corrispondente, invece di spostare il focus sul campo di input successivo (per spostare il focus sul campo successivo è possibile utilizzare il tasto Tab).
- Nella versione per Android è stata introdotta la possibilità di attivare il meccanismo GPC (Global Privacy Control), che sostituisce l'intestazione "DNT" (Do Not Track) e consente di informare i siti sul divieto di vendita dei dati personali e sul loro utilizzo per monitorare le preferenze o i movimenti tra i siti. È stata data la possibilità di impostare Firefox come programma predefinito per la visualizzazione di PDF. Per aumentare la protezione contro l'identificazione passiva degli utenti, nell'intestazione User-Agent viene sempre impostato "Android 10", indipendentemente dalla versione effettiva della piattaforma.
Oltre alle novità e alla correzione di errori, in Firefox 122 sono state risolte 15 vulnerabilità (5 etichettate come pericolose). 8 vulnerabilità sono causate da problemi di gestione della memoria, come overflow di buffer e accesso a aree di memoria già liberate. Questi problemi potrebbero potenzialmente portare all'esecuzione di codice malevolo durante l'apertura di pagine appositamente formattate.
Inoltre, è stata annunciata la creazione da parte di Mozilla di un servizio separato per monitorare i casi di discriminazione di Firefox su diverse piattaforme e per risolvere i problemi riscontrati insieme ai produttori delle piattaforme. Attualmente, sul sito sono riassunti i problemi tecnici che si verificano durante l'uso di Firefox nei sistemi Apple, Google e Microsoft. Ad esempio, sulla piattaforma Android è stata segnalata l'impossibilità di importare le impostazioni del browser e una diminuzione della qualità della ricerca. In Windows si menziona il divieto di cambiare il browser predefinito tramite software e l'imposizione di Microsoft Edge. Su Android e Windows si segnala anche il mantenimento di alcune associazioni con Chrome ed Edge anche dopo la modifica del browser predefinito.
Fonte: opennet.ru

