Google ha rilasciato la versione 124 del browser web Chrome. È disponibile anche un rilascio stabile del progetto open source Chromium, che costituisce la base di Chrome. Il browser Chrome si differenzia da Chromium per l'uso dei loghi Google, la presenza di un sistema di invio di notifiche in caso di crash, moduli per la riproduzione di contenuti video protetti da DRM, un sistema di aggiornamenti automatici, l'attivazione continua della sandbox isolation, la fornitura delle chiavi per le API di Google e la trasmissione di parametri RLZ durante la ricerca. Per coloro che necessitano di più tempo per effettuare aggiornamenti, è disponibile un ramo Extended Stable, supportato per 8 settimane. La prossima versione di Chrome, la 125, è prevista per il 14 maggio.
Le principali novità in Chrome 124:
- Nella versione per la piattaforma Android, il gestore dei segnalibri ha aggiunto il supporto per il salvataggio dei segnalibri e delle liste di lettura nella server Google associato all'account utente.
- In Chrome per Android è stato implementato un nuovo metodo per la memorizzazione delle password locali, che non vengono sincronizzate con altri dispositivi. In precedenza, le password locali venivano memorizzate nel profilo Chrome, ma ora saranno collocate nel deposito delle password fornito dai servizi di Google Play, già utilizzato per memorizzare la password dell'account Google.
- Nelle versioni per Windows, macOS e Linux, è stata attivata per impostazione predefinita la supporto del meccanismo di incapsulamento delle chiavi (KEM, Key Encapsulation Mechanism) in TLS, utilizzando l'algoritmo ibrido X25519Kyber768, resistente alla decifratura su computer quantistici. X25519Kyber768 rappresenta una combinazione del meccanismo di scambio delle chiavi X25519, basato su curve ellittiche e attualmente utilizzato in TLS, con l'algoritmo Kyber-768, che utilizza tecniche crittografiche basate sulla risoluzione di problemi della teoria dei reticoli, il cui tempo di risoluzione non differisce tra computer tradizionali e quantistici.
- Durante il rendering del testo con la libreria Skia, sono state considerate le impostazioni di contrasto e colore impostate in Windows per la tecnologia di anti-aliasing del testo ClearType, che consente di migliorare notevolmente la qualità della visualizzazione dei caratteri sugli schermi LCD. Nelle versioni per Linux, sono stati notevolmente modificati i caratteri utilizzati nell'interfaccia.

- È stata fornita la possibilità di installare qualsiasi pagina web come un'app PWA (Progressive Web Apps) autonoma, anche se questa pagina non soddisfa i criteri PWA.
- In conformità con i requisiti della legislazione europea DMA (Digital Markets Act), è stata garantita la visualizzazione di un dialogo per scegliere il motore di ricerca da utilizzare come predefinito. Sono disponibili diverse opzioni di motori di ricerca nella sezione delle impostazioni ‘chrome://settings/search’. I motori di ricerca nella lista vengono visualizzati in ordine casuale. In Chrome 120, questo dialogo è stato testato per l'1% degli utenti e ora è attivato per tutti.

- È stata implementata la richiesta di autorizzazione all'utente quando un'app web accede all'API Web MIDI, che consente l'interazione con i dispositivi musicali con interfaccia MIDI collegati al computer. In precedenza, le richieste di autorizzazione venivano visualizzate solo durante l'invio o la ricezione di messaggi SysEx, ma ora verranno visualizzate in qualsiasi accesso all'API Web MIDI. Tra le motivazioni del cambiamento ci sono situazioni in cui pagine web casuali prendono il controllo esclusivo del MIDI controller, bloccando la possibilità di utilizzo da parte di altre applicazioni. Vengono inoltre segnalati problemi di sicurezza, poiché l'API Web MIDI consente di controllare completamente il dispositivo MIDI, inclusa l'installazione del proprio firmware.
- Il supporto per l'API Web SQL è stato completamente interrotto, poiché non è standardizzato, viene utilizzato raramente e richiede una rielaborazione per conformarsi ai moderni requisiti di sicurezza. Web SQL è stato disattivato per impostazione predefinita a partire da Chrome 119, ma era disponibile un'impostazione per la sua riattivazione. Questa impostazione è stata ora rimossa. Per gli sviluppatori che necessitano di tale funzionalità, si suggerisce di utilizzare una versione della libreria SQLite compilata in WebAssembly.
- È stata aggiunta la possibilità di controllare la direzione del testo scritta verticalmente negli elementi delle web-form (select, meter, progress, button, textarea e input) selezionando l’orientamento verticale tramite la proprietà CSS writing-mode. Per visualizzare il testo dall'alto verso il basso, ora è possibile utilizzare la proprietà dell'elemento form ‘ltr’, e per dal basso verso l'alto ‘rtl’.
- Nell'API User-Agent Client Hints, sviluppato come sostituto dell'intestazione User-Agent, è stata aggiunta la supporto per il parametro Sec-CH-UA-Form-Factors, attraverso il quale il client può informare il server sul fattore di forma del dispositivo dell'utente (Desktop, Automotive, Mobile, XR, EInk e Watch). User-Agent Client Hints consente una restituzione selettiva dei dati riguardanti specifici parametri del browser e del sistema (versione, piattaforma, ecc.) solo dopo richiesta. serverL'utente, a sua volta, può definire quali informazioni fornire ai proprietari dei siti web. Con l'uso di User-Agent Client Hints, l'identificatore del browser non viene trasmesso senza esplicita richiesta, e per impostazione predefinita vengono forniti solo parametri di base, rendendo difficile l'identificazione passiva.
- È stata introdotta la possibilità di gestire la clonazione di singole radici nel Shadow DOM, effettuata da comandi come cloneNode(). La clonazione dei rami radice del DOM è attivata tramite il parametro clonable (‘attachShadow({clonable:true})’) o l'attributo ‘shadowrootclonable’ ().

- Sono stati aggiunti nuovi metodi setHTMLUnsafe() e parseHTMLUnsafe() per utilizzare la sintassi Shadow DOM da JavaScript. I metodi setHTMLUnsafe() e parseHTMLUnsafe(), analogamente a innerHTML e DOMParser.parseFromString(), consentono di inserire in un elemento o analizzare contenuti in formato HTML, ma si differenziano per il supporto del trattamento degli elementi template con l'attributo shadowrootmode.
- È stata aggiunta la supporto per l'API WebSocket Stream, che consente di trasmettere dati tra il browser e il server in modalità streaming senza utilizzare il polling, ottimale per la gestione di dati in arrivo continuamente, ad esempio, nella realizzazione di una chat. const wss = new WebSocketStream(WSS_URL); const {readable, writable} = await wss.opened; const reader = readable.getReader(); const writer = writable.getWriter(); while (true) { const {value, done} = await reader.read(); if (done) { break; } const result = await process(value); await writer.write(result); }
- Le capacità dell'API View Transitions sono state ampliate, semplificando la creazione di effetti di transizione animati tra diversi stati del DOM (ad esempio, una transizione fluida da un'immagine all'altra). Nella nuova versione è stato aggiunto il supporto per l'evento ‘pageswap’, generato per l'oggetto ‘window’ quando, durante la navigazione, l'oggetto ‘document’ associato viene sostituito da uno nuovo. È stata anche aggiunta la proprietà ‘render-blocking’, che consente di bloccare il rendering del documento fino al completamento dell'analisi del contenuto importante.
- È stato aggiunto il parametro disallowReturnToOpener, passato durante la chiamata al metodo requestWindow, che permette di rimuovere il pulsante ‘indietro’ nella finestra aperta in modalità ‘immagine nella miniatura’, per vietare il ritorno alla scheda da cui è stata aperta la finestra.
- È stata aggiunta la possibilità di assegnare il valore NULL all'attributo CSSImportRule.styleSheet per indicare l'assenza di un foglio di stile collegato. È stato aggiunto l'attributo CSSKeyframesRule.length, che indica il numero di proprietà indicizzabili.
- Per i campi modificabili, è stato implementato l'attributo ‘writingsuggestions’ per gestire l'attivazione della visualizzazione di suggerimenti durante la digitazione.
- Nell'API WebGPU è stata aggiunta la supporto per ServiceWorker e SharedWorker.
- È stata aggiunta la supporto per l'intestazione HTTP "Priority", attraverso la quale è possibile comunicare informazioni sulla priorità di elaborazione della richiesta (RFC 9218) nella fase del primo accesso alla risorsa.
- Sono stati apportati miglioramenti agli strumenti per gli sviluppatori web. È stata aggiunta una nuova scheda Autofill per ispezionare le informazioni utilizzate durante la compilazione automatica dei moduli.

Nella scheda di ispezione degli stili CSS è stato migliorato il supporto per gli stili nidificati. Nella scheda di misurazione delle prestazioni è stata fornita la possibilità di nascondere funzionalità superflue e chiamate secondarie correlate per ridurre il livello di rumore nel grafico. Nella scheda di debug delle animazioni è stato aggiunto il supporto per le animazioni legate allo scorrimento dei contenuti (Scroll-driven Animation). Nella scheda di ispezione della rete è stata implementata la possibilità di impostare parametri di perdita di pacchetti e dimensione della coda di rete per testare il funzionamento delle applicazioni WebRTC in condizioni di problemi di rete.

Oltre alle nuove funzionalità e alla correzione di bug, nella nuova versione sono state eliminate 22 vulnerabilità. Molte delle vulnerabilità sono state identificate tramite test automatizzati utilizzando strumenti come AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer e AFL. Non sono state rilevate problematiche critiche che consentono di bypassare tutti i livelli di protezione del browser ed eseguire codice nel sistema al di fuori dell'ambiente sandbox. Nell'ambito del programma di ricompensa per la scoperta di vulnerabilità, Google ha corrisposto 13 premi per un totale di 65.000 dollari USA (un premio di $20000, $10000, $7000 e $2000, tre premi da $5000 e $3000, due premi di $1000). L'ammontare di una singola ricompensa non è ancora definito.
Fonte: opennet.ru





