L'azienda Google ha pubblicato il rilascio del browser web Chrome 122. È disponibile contemporaneamente la versione stabile del progetto open source Chromium, che funge da base per Chrome. Il browser Chrome si differenzia da Chromium per l'uso dei loghi di Google, la presenza di un sistema di invio di notifiche in caso di arresto anomalo, moduli per la riproduzione di contenuti video protetti da copyright (DRM), un sistema di aggiornamento automatico, l'attivazione permanente della sandbox di isolamento, la fornitura di chiavi per le API di Google e la trasmissione dei parametri RLZ durante la ricerca. Per coloro che necessitano di più tempo per l'aggiornamento, è supportata separatamente la branch Extended Stable, accompagnata da 8 settimane di supporto. Il prossimo rilascio di Chrome 123 è programmato per il 19 marzo.
Principali cambiamenti in Chrome 122:
- In conformità con i requisiti della legge europea DMA (Digital Markets Act), è stata aggiunta al browser una schermata per la selezione del motore di ricerca che sarà utilizzato di default. Sono disponibili diversi motori di ricerca, accessibili nella sezione delle impostazioni «chrome://settings/search». I motori di ricerca nell'elenco sono visualizzati in ordine casuale.

- Nella pagina «chrome://settings/security» è stata aggiunta un'impostazione che consente di disabilitare gli ottimizzatori JIT nel motore JavaScript V8. Disattivare il JIT può essere utile per migliorare la sicurezza nel lavoro con potenziali applicazioni web pericolose riducendo i possibili vettori di attacco.

- Nella versione per Android è stata aggiunta la funzione di lettura ad alta voce del testo presente sulla pagina web. È possibile attivare la modalità di lettura nel menu a discesa e gestirla tramite i tipici pulsanti di controllo della riproduzione. La funzione utilizza un servizio esterno e invia un link a servers Google, che forniscono la sintesi vocale.
- Continua il collaudo di funzionalità sperimentali basate sull'apprendimento automatico: modalità di raggruppamento intelligente delle schede, generatore di temi e assistente interattivo, di cui si è parlato nell'annuncio del rilascio di Chrome 121.
- In modalità di protezione del browser (Safe Browsing) è stato implementato il supporto per controlli esterni eseguiti in modo asincrono, che non bloccano il caricamento della pagina controllata. Tuttavia, i controlli su elenchi locali continuano a essere eseguiti in modalità sincrona e la pagina non viene visualizzata fino al completamento di questi per proteggere l'utente dall'utilizzo di pagine di exploit. Per quanto riguarda il phishing, è poco probabile che l'utente riesca a reagire alla pagina prima del completamento del controllo esterno e della visualizzazione dell'avviso.
- Il testo degli avvisi mostrati quando si tenta di caricare file dannosi e per i file già scaricati nel gestore di download è stato rielaborato.

- È iniziato un passaggio graduale verso l'ignoranza dei gestori eventi 'unload', che non consentono un utilizzo efficace della cache di navigazione (BFCache — Back-forward cache), garantendo un passaggio istantaneo quando si utilizzano i pulsanti 'Indietro' e 'Avanti' o quando si naviga tra le pagine visitate in precedenza sul sito corrente. Il comportamento di Chrome desktop sarà simile a quello dei browser mobili, che nella maggior parte dei casi non generano l'evento 'unload', dando priorità alla memorizzazione nella cache dei passaggi. In Chrome 122, la gestione dell'evento 'unload' è disabilitata per l'1% degli utenti.
- Nel sistema di completamento automatico dei parametri di pagamento è stata aggiunta la possibilità di memorizzare i codici di verifica dell'autenticità (CVV/CVC) per le carte locali e server. I codici vengono salvati dopo la visualizzazione dell'avviso e il consenso esplicito dell'utente.
- È stata aggiunta l'API Storage Buckets, che fornisce ulteriori funzionalità per gestire la memorizzazione permanente dei dati sul sistema locale dell'utente. La nuova API consente di organizzare la memorizzazione dei dati suddividendo lo spazio di archiviazione in segmenti distinti, associati all'API IndexedDB e CacheStorage. I segmenti vengono eliminati dal browser in modo indipendente l'uno dall'altro, mentre all'utente viene fornita la possibilità di definire le priorità che gestiscono quali segmenti eliminare per primi. Questa organizzazione consente di memorizzare dati importanti in segmenti ad alta priorità e dati secondari, che non sono un problema perdere, in segmenti a bassa priorità. In questo modo si risolve il problema della perdita di dati importanti in caso di esaurimento dei limiti disponibili sulle dimensioni dello spazio di archiviazione fornito tramite l'API IndexedDB e localStorage.
- Nell'API Async Clipboard, nel metodo read() è stata aggiunta l'opzione «unsanitized», utilizzata per il copia e incolla dal e nel clipboard. Se questa opzione è attivata, l'applicazione riceve il contenuto originale del markup HTML dei dati dal clipboard, senza alcuna pulizia, normalizzazione o sostituzione delle strutture pericolose (ad esempio, il contenuto del blocco «» non viene convertito).
- Le query CSS «@container» non verranno più attivate quando vengono specificate capacità non supportate, ad esempio, la query «@container (width > 0px) or (unknown) {}» non funzionerà a causa dell'espressione «unknown».
- In CSS è consentita la definizione di condizioni nelle regole di importazione «@import … supports(…)». Se la verifica fallisce, non viene eseguito l'import. Ad esempio, per caricare stili quando «animation-timeline» è impostato su «auto» si può indicare ‘scroll-driven-animations.css’ @import «scroll-driven-animations.css» supports(animation-timeline: auto);.
- In CSS è stata cambiata e adeguata alla nuova specifica la logica di gestione del pseudo-elemento «::backdrop», che ora eredita dal suo elemento di origine (in precedenza «::backdrop» non ereditava i valori di altri elementi, il che impediva l'accesso alle proprietà definite nell'elemento radice).
- L'azione del metodo dataTransfer.clearData() è limitata solo agli oggetti di testo, quindi questo metodo non può più essere applicato agli oggetti File.
- In WebGL è stata aggiunta la funzione drawingBufferStorage, che consente di configurare il formato pixel per il buffer di rendering, permettendo così di visualizzare direttamente contenuti con oltre 8 bit per canale colore e di evitare operazioni di copia non necessarie precedentemente richieste per la conversione nel formato pixel predefinito.
- Sono stati apportati miglioramenti agli strumenti per gli sviluppatori web. È stata aggiunta la possibilità di modificare la colorazione e seguire lo stile impostato nel tema selezionato nel browser.

Sono state ampliate le funzionalità del pannello di analisi delle prestazioni, in cui la timeline ha ora il supporto per salvare intervalli di esecuzione (segmenti sulla timeline) e passare tra di essi.
Nella traccia principale (Performance > Main) è stata aggiunta la visualizzazione degli iniziatori degli eventi e della loro connessione visiva con gli eventi che causano.

Nel pannello di analisi dell'attività di rete, nella colonna con lo stato di esecuzione delle richieste è mostrato il motivo dei guasti. Il menu contestuale per copiare il link o il contenuto della richiesta è stato rielaborato.

Oltre alle novità e alla correzione di errori, nella nuova versione sono state eliminate 12 vulnerabilità. Molte di queste vulnerabilità sono state scoperte grazie a test automatizzati utilizzando strumenti come AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer e AFL. Non sono state rilevate problematiche critiche che consentono di aggirare tutti i livelli di protezione del browser e di eseguire codice nel sistema al di fuori dell'ambiente sandbox. Nell'ambito del programma di riconoscimento monetario per la scoperta di vulnerabilità per l'attuale rilascio, l'azienda Google ha erogato 8 premi per un totale di 28.000 dollari statunitensi (uno di 8.000$, uno di 7.000$, uno di 5.000$, uno di 3.000$ e uno di 2.000$, e tre premi da 1.000$). I premi più consistenti sono stati assegnati per un errore nell'implementazione dell'isolamento dei siti, per la scoperta di un buffer overflow nel motore Blink e per l'accesso alla memoria già liberata (Use-after-free) nella libreria Mojo.
Fonte: opennet.ru






