È stato rilasciato il browser web Firefox 108. Inoltre, è stato creato un aggiornamento della branca con supporto a lungo termine — 102.6.0. La branca Firefox 109 sarà presto trasferita nella fase di beta testing, con rilascio previsto per il 17 gennaio.
Le principali novità in Firefox 108:
- È stata aggiunta la combinazione di tasti Shift+ESC per aprire rapidamente la pagina del gestore dei processi (about:processes), che consente di valutare quali processi e flussi interni consumano eccessive risorse di memoria e CPU.

- Ottimizzato il processamento dell'output dei fotogrammi di animazione in condizioni di elevato carico, migliorando i risultati del test MotionMark.
- Durante la stampa e il salvataggio dei moduli PDF, è stata fornita la possibilità di utilizzare caratteri in lingue diverse dall'inglese.
- Implementato il supporto per la corretta correzione del colore delle immagini, in conformità con i profili colore ICCv4.
- Assicurato il corretto funzionamento della modalità di visualizzazione della barra dei segnalibri 'solo nelle nuove schede' (impostazione 'Only show on New Tab') per le nuove schede vuote.
- In about:config sono state aggiunte le impostazioni cookiebanners.bannerClicking.enabled e cookiebanners.service.mode per il clic automatico sui banner che richiedono autorizzazioni per l'uso dei Cookie sui siti. Nell'interfaccia delle versioni notturne sono stati implementati interruttori per controllare il clic automatico sui banner dei Cookie in relazione a determinati domini.
- Aggiunto l'API Web MIDI, che consente a un'applicazione web di interagire con i dispositivi musicali collegati al computer dell'utente tramite interfaccia MIDI. L'API è disponibile solo per le pagine caricate tramite HTTPS. Quando si chiama il metodo navigator.requestMIDIAccess() e ci sono dispositivi MIDI collegati al computer, viene mostrata una finestra di dialogo che propone di installare il complemento 'Site Permission Add-on', necessario per attivare l'accesso (vedi descrizione qui sotto).
- Proposto un meccanismo sperimentale Site Permission Add-on per gestire l'accesso dei siti a API e funzionalità potenzialmente pericolose, che richiedono privilegi elevati. Per 'pericolosi' si intendono funzionalità in grado di danneggiare fisicamente l'hardware, apportare modifiche irreversibili, essere utilizzate per installare codice malevolo sui dispositivi o causare perdite di dati dell'utente. Ad esempio, nel contesto dell'API Web MIDI, il complemento Permission Add-on viene utilizzato per fornire accesso a un dispositivo di sintesi audio collegato al computer.
- Abilitato per impostazione predefinita il supporto per le mappe di importazione ('import map'), che consentono di gestire quali URL verranno caricati durante l'importazione di file JavaScript tramite le espressioni import e import(). La mappa di importazione è definita in formato JSON all'interno dell'elemento
Dopo aver dichiarato questa mappa di importazione nel codice JavaScript, per caricare ed eseguire il modulo JavaScript '/node_modules/moment/src/moment.js' è possibile utilizzare l'espressione 'import moment from "moment";' senza specificare il percorso (equivalente a 'import moment from "/node_modules/moment/src/moment.js";').
- Nell'elemento '' è stato implementato il supporto per gli attributi 'height' e 'width', che definiscono l'altezza e la larghezza dell'immagine in pixel. Gli attributi specificati sono attivi solo quando l'elemento '' è incorporato all'interno dell'elemento '' e vengono ignorati quando incorporato in elementi
- In CSS è stato fornito un insieme di funzioni trigonometriche sin(), cos(), tan(), asin(), acos(), atan() e atan2().
- In CSS è stata implementata la funzione round() per selezionare la strategia di arrotondamento.
- In CSS è stato implementato il tipo , che consente di utilizzare nelle funzioni matematiche costanti matematiche conosciute, come i numeri Pi e E, oltre ai valori di infinito e NaN. Ad esempio, 'rotate(calc(1rad * pi))'.
- Nella query CSS '@container', che consente di formare lo stile degli elementi in base alla dimensione dell'elemento genitore (simile alla query '@media', applicata non alla dimensione dell'area visibile, ma alla dimensione del contenitore in cui è collocato l'elemento), è stata aggiunta un supporto sperimentale per le unità di misura cqw (1% della larghezza), cqh (1% dell'altezza), cqi (1% della dimensione in linea), cqb (1% della dimensione del blocco), cqmin (il valore minore tra cqi o cqb) e cqmax (il valore maggiore tra cqi o cqb). La possibilità è disabilitata per impostazione predefinita e può essere attivata tramite il parametro layout.css.container-queries.enabled in about:config.
- In JavaScript è stato aggiunto il metodo Array.fromAsync per creare un array da dati in arrivo in modo asincrono.
- Nell'intestazione HTTP CSP (Content Security Policy) è stata aggiunta la supporto per le direttive «style-src-attr», «style-src-elem», «script-src-attr» e «script-src-elem», che offrono funzionalità simili a quelle delle direttive style e script, ma con la possibilità di applicarle a singoli elementi e gestori di eventi, come onclick.
- Aggiunto un nuovo evento domContentLoaded, che viene attivato dopo il completamento del caricamento dei contenuti.
- Nel metodo .get() è stata aggiunta l'opzione forceSync per forzare la sincronizzazione.
- È stata implementata un'apposita area nella dashboard per posizionare i widget delle estensioni WebExtension.
- Modificata la logica della blacklist dei driver Linux incompatibili con WebRender. Invece di mantenere una lista bianca con i driver funzionanti, si è passati a una blacklist dei driver problematici.
- Migliorato il supporto del protocollo Wayland. Aggiunta la gestione della variabile d'ambiente XDG_ACTIVATION_TOKEN con un token di attivazione per il protocollo xdg-activation-v1, che consente a un'app di trasferire il focus su un'altra. Risolti i problemi che si verificano quando si spostano le schede con il mouse.
- Su molteplici sistemi Linux è stata abilitata l'animazione della barra.
- In about:config è fornita l'impostazione gfx.display.max-frame-rate per limitare la massima frequenza di aggiornamento dei fotogrammi.
- Aggiunto il supporto per la specifica dei caratteri Emoji 14.
- Per impostazione predefinita, è abilitata l'estensione WebGL OES_draw_buffers_indexed.
- Implementata la possibilità di utilizzare la GPU per accelerare la rasterizzazione di Canvas2D.
- Sulla piattaforma Windows è stata attivata l'isolamento sandbox dei processi che interagiscono con la GPU.
- Aggiunto supporto per le istruzioni SIMD FMA3 (moltiplicazione e addizione con arrotondamento singolo).
- I processi utilizzati per gestire le schede in background su Windows 11 ora vengono eseguiti in modalità 'Efficiency', in cui il pianificatore delle attività riduce la priorità di esecuzione per ridurre il consumo delle risorse CPU.

- Miglioramenti nella versione per Android:
- Aggiunta la possibilità di salvare una pagina web come documento PDF.
- Implementato il supporto per la raggruppamento delle schede nella barra (le schede possono essere scambiate dopo aver mantenuto la tenuta su di esse).
- Fornito un pulsante per aprire tutti i segnalibri da una sezione specificata in nuove schede in una nuova finestra o in modalità incognito.
Oltre a nuove funzionalità e correzioni di bug, Firefox 108 risolve 20 vulnerabilità. 16 vulnerabilità sono state contrassegnate come pericolose, di queste 14 vulnerabilità (identificate come CVE-2022-46879 e CVE-2022-46878) sono causate da problemi nella gestione della memoria, come overflow di buffer e accesso a zone di memoria già liberate. Potenzialmente, questi problemi possono portare all'esecuzione di codice malevolo aprendo pagine appositamente progettate. La vulnerabilità CVE-2022-46871 è collegata all'uso del codice di una versione obsoleta della libreria libusrsctp, che contiene vulnerabilità non corrette. La vulnerabilità CVE-2022-46872 consente a un attaccante, che ha accesso al processo di gestione delle pagine, di eludere l'isolamento sandbox su Linux e leggere il contenuto di file arbitrari attraverso manipolazioni dei messaggi IPC associati al codice di scambio.
Fonte: opennet.ru


