Google ha presentato il rilascio del browser web Chrome 97. Contestualmente, è disponibile la versione stabile del progetto open source Chromium, che funge da base per Chrome. Il browser Chrome si distingue per l'uso dei loghi Google, per avere un sistema di invio di notifiche in caso di crash, moduli per la riproduzione di contenuti video protetti da copyright (DRM), un sistema di installazione automatica degli aggiornamenti e per la trasmissione dei parametri RLZ durante le ricerche. Per coloro che necessitano di più tempo per aggiornare, è supportata separatamente la versione Extended Stable, accompagnata da un periodo di 8 settimane in cui è stato creato un aggiornamento per la precedente versione Chrome 96. Il prossimo rilascio di Chrome 98 è previsto per il 1 febbraio.
I principali cambiamenti in Chrome 97:
- Per alcuni utenti, nel configuratore è stato implementato un nuovo interface di gestione dei dati memorizzati nel browser («chrome://settings/content/all»). La principale differenza del nuovo interface è l'orientamento alla configurazione delle autorizzazioni e la pulizia simultanea di tutti i Cookie del sito, senza possibilità di visualizzare informazioni dettagliate sui singoli Cookie o di eliminarli selettivamente. Secondo Google, l'accesso alla gestione dei singoli Cookie per l'utente comune, che non ha familiarità con le complessità dello sviluppo web, può portare a malfunzionamenti imprevedibili sui siti a causa di modifiche inavvertite di parametri specifici, oltre a disabilitare accidentalmente meccanismi di protezione della privacy attivati tramite Cookie. Per coloro che necessitano di operazioni sui singoli Cookie, è consigliato utilizzare la sezione di gestione dell'archivio negli strumenti per lo sviluppo web (Applocation/Storage/Cookie).

- Nel blocco con le informazioni sul sito è stato implementato l'output di una breve descrizione del sito (ad esempio, la descrizione da Wikipedia), se nelle impostazioni è attivata la modalità di ottimizzazione della ricerca e della navigazione (opzione «Make searches and browsing better»).

- Migliorato il supporto per il completamento automatico dei campi nei moduli web. Le raccomandazioni con le opzioni di completamento automatico ora vengono visualizzate con un leggero disallineamento e accompagnate da icone informative per una revisione più comoda e una chiara identificazione del collegamento con il campo da riempire. Ad esempio, l'icona del profilo indica che il completamento automatico suggerito riguarda i campi relativi all'indirizzo e alle informazioni di contatto.

- Rimosso dalla memoria i gestori dei profili utente dopo la chiusura delle finestre del browser correlate. In precedenza, i profili rimanevano in memoria e continuavano a svolgere attività correlate alla sincronizzazione e all'esecuzione di script in background delle estensioni, causando un consumo ingiustificato di risorse nei sistemi in cui vengono utilizzati più profili contemporaneamente (ad esempio, un profilo ospite e un account Google legato). Inoltre, è stata garantita una pulizia più accurata dei dati che rimangono durante l'utilizzo del profilo.
- È stata migliorata la pagina delle impostazioni dei motori di ricerca («Settings>Gestisci motori di ricerca»). Disattivata l'attivazione automatica dei motori, le cui informazioni vengono fornite quando si apre il sito tramite lo script OpenSearch — ora i nuovi motori per elaborare le query di ricerca dalla barra degli indirizzi devono essere attivati manualmente nelle impostazioni (i motori già attivati automaticamente continueranno a funzionare senza modifiche).
- A partire dal 17 gennaio, il catalogo Chrome Web Store non accetterà più le estensioni che utilizzano la seconda versione del manifesto di Chrome, ma gli sviluppatori delle estensioni già aggiunte potranno continuare a pubblicare aggiornamenti come prima.
- Aggiunto il supporto sperimentale per la specifica WebTransport, che definisce il protocollo e l'API JavaScript associato per inviare e ricevere dati tra il browser e server. Il canale di comunicazione è organizzato sopra HTTP/3 utilizzando il protocollo QUIC come mezzo di trasporto. WebTransport può essere utilizzato al posto del meccanismo WebSockets, offrendo funzionalità aggiuntive come la gestione della trasmissione in più flussi, flussi unidirezionali, consegna senza ordinamento dei pacchetti (out-of-order), modalità di consegna affidabile e non affidabile. Inoltre, WebTransport può essere utilizzato al posto del meccanismo Server Push, dal quale Google ha rinunciato in Chrome.
- In JavaScript, gli oggetti Array e TypedArrays hanno aggiunto i metodi findLast e findLastIndex, che consentono di cercare elementi restituendo il risultato rispetto alla fine dell'array. [1,2,3,4].findLast((el) => el % 2 === 0) // → 4 (l'ultimo elemento pari)
- Gli elementi HTML <details> chiusi (senza l'attributo «open») sono ora accessibili per la ricerca e i collegamenti, e si aprono automaticamente quando si utilizza la ricerca sulla pagina e la navigazione tra frammenti (ScrollToTextFragment).
- Le restrizioni della Content Security Policy (CSP) negli header di risposta server ora si applicano anche ai worker dedicati, che in precedenza venivano trattati come documenti separati.
- È stata assicurata una chiara richiesta di autorizzazione per caricare qualsiasi sottorisorsa dalla rete interna: prima di accedere alla rete interna o a localhost, ora viene inviata una richiesta CORS (Cross-Origin Resource Sharing) con l'intestazione «Access-Control-Request-Private-Network: true», che richiede la conferma dell'operazione tramite il ritorno dell'intestazione «Access-Control-Allow-Private-Network: true».
- È stata aggiunta la proprietà CSS font-synthesis, che consente di gestire la possibilità di sintesi dei pesi di carattere mancanti (oblique, bold e small-cap) da parte del browser nel family di caratteri selezionato.
- Per le trasformazioni CSS, nella funzione perspective() è stato implementato il parametro ‘none’, che viene trattato come valore infinito durante l'organizzazione dell'animazione.
- Nell'intestazione HTTP Permissions-Policy (Feature Policy), utilizzata per delegare autorità e abilitare funzionalità avanzate, è stato aggiunto il supporto per il valore keyboard-map, che consente l'utilizzo dell'API Keyboard. È stato implementato il metodo Keyboard.getLayoutMap(), che consente di identificare quale tasto è stato premuto tenendo conto delle diverse disposizioni della tastiera (ad esempio, se è stato premuto un tasto nella disposizione russa o inglese).
- È stato aggiunto il metodo HTMLScriptElement.supports(), che unifica la definizione delle nuove funzionalità disponibili nell'elemento «script», ad esempio permette di conoscere l'elenco dei valori supportati per l'attributo «type».
- Il processo di normalizzazione delle nuove righe durante l'invio di moduli web è stato allineato con i motori browser Gecko e WebKit. La normalizzazione dei caratteri di nuova linea e ritorno a capo (sostituzione di /r e /n con \r\n) in Chrome ora avviene nella fase finale, e non all'inizio del processo di invio del modulo (cioè, i gestori intermedi che utilizzano l'oggetto FormData vedranno i dati come aggiunti dall'utente, e non nella forma normalizzata).
- È stata standardizzata la denominazione delle proprietà per l'API Client Hints, sviluppata come alternativa all'intestazione User-Agent e che consente di restituire selettivamente dati su specifici parametri del browser e del sistema (versione, piattaforma, ecc.) solo su richiesta del server. Le proprietà sono ora definite con il prefisso «sec-ch-», ad esempio, sec-ch-dpr, sec-ch-width, sec-ch-viewport-width, sec-ch-device-memory, sec-ch-rtt, sec-ch-downlink e sec-ch-ect.
- È stata applicata la seconda fase di disattivazione del supporto per l'API WebSQL, il cui accesso da script di terze parti sarà ora bloccato. In futuro, si prevede di interrompere gradualmente completamente il supporto per WebSQL, indipendentemente dal contesto di utilizzo. Il gestore di WebSQL si basa sul codice SQLite e potrebbe essere stato utilizzato da malintenzionati per sfruttare vulnerabilità in SQLite.
- Per la piattaforma Windows, è stata attivata una versione con controlli di integrità del flusso di esecuzione (CFG, Control Flow Guard), che blocca i tentativi di iniezione di codice nel processo di Chrome. Inoltre, ai servizi di rete eseguiti in processi separati viene ora applicata l'isolamento in sandbox, limitando le capacità del codice in questi processi.
- In Chrome per Android è stato attivato il meccanismo di aggiornamento dinamico del registro dei certificati emessi e revocati (Certificate Transparency), precedentemente attivato nelle versioni per sistemi desktop.
- Sono stati apportati miglioramenti agli strumenti per gli sviluppatori web. Introdotta un supporto sperimentale per la sincronizzazione delle impostazioni di DevTools tra dispositivi diversi. È stata aggiunta una nuova scheda Recorder, che permette di registrare, riprodurre e analizzare le azioni degli utenti sulla pagina.

Durante la visualizzazione degli errori nella console web, è garantita la visualizzazione dei numeri di colonna correlati al problema, utile per il debug dei problemi nel codice JavaScript minimizzato. Aggiornato l'elenco dei dispositivi che è possibile simulare per valutare la visualizzazione della pagina su dispositivi mobili. Nell'interfaccia di modifica dei blocchi HTML (Modifica come HTML) è stata aggiunta la sintassi in evidenza e la possibilità di completamento automatico dell'input.

Oltre alle nuove funzionalità e alle correzioni di bug, nella nuova versione sono state eliminate 37 vulnerabilità. Molte di queste vulnerabilità sono state individuate grazie al testing automatizzato con strumenti come AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer e AFL. Una delle vulnerabilità è stata classificata come un problema critico, in grado di bypassare tutti i livelli di protezione del browser e eseguire codice all'interno del sistema, al di fuori dell'ambiente sandbox. I dettagli sulla vulnerabilità critica (CVE-2022-0096) non sono ancora stati rivelati; si sa solo che è legata all'accesso a un'area di memoria già liberata nel codice per la gestione degli archivi interni (API Storage).
Nell'ambito del programma di ricompensa per la scoperta di vulnerabilità per la versione attuale, Google ha distribuito 24 premi per un totale di 54.000 dollari USA (tre premi da 10.000 $, due premi da 5.000 $, un premio da 4.000 $, tre premi da 3.000 $ e un premio da 1.000 $). L'importo di 14 premi deve ancora essere definito.
Fonte: opennet.ru





