Google ha pubblicato la versione 119 del browser web Chrome. È disponibile anche il rilascio stabile del progetto open source Chromium, che costituisce la base di Chrome. Il browser Chrome si distingue da Chromium per l'utilizzo 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 permanente della Sandbox, la fornitura di chiavi per Google API 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 120 è previsto per il 5 dicembre.
Principali novità in Chrome 119:
- È stato abbreviato il ciclo di formazione dei rilasci, riducendo il tempo tra la creazione di un nuovo branch e l'inizio del beta testing: la beta viene ora creata due giorni dopo la creazione del branch, invece di 8 giorni. La stabilizzazione della beta continua a durare 4 settimane. Di conseguenza, il ciclo di preparazione delle nuove versioni è diventato una settimana più breve.
- È stata fornita la possibilità di salvare gruppi di schede. Gli utenti possono ora salvare un gruppo e chiudere le schede che ne fanno parte, affinché non occupino risorse. In seguito, quando sarà necessario, le schede del gruppo salvato potranno essere ripristinate e aperte su altri dispositivi coinvolti nella sincronizzazione delle schede. Questa funzione è attivata per alcuni utenti; per abilitare forzatamente è disponibile l'opzione 'chrome://flags/#tab-groups-save'.
- Nell'interfaccia sono state modificate le formulazioni delle operazioni e delle impostazioni relative alla cancellazione e alla perdita di dati. Invece del termine 'pulizia' (Clear), in queste operazioni ora si utilizza la parola 'eliminazione' (Delete), poiché il termine 'pulizia' non veniva percepito da alcuni utenti come segno di perdita irreversibile dei dati.
- Nell'autocompletamento degli URL ora viene considerata qualsiasi parola chiave precedentemente utilizzata per cercare un sito, e non solo le parole che corrispondono all'inizio dell'indirizzo. Ad esempio, l'autocompletamento dell'indirizzo 'https://www.google.com/travel/flights' verrà attivato non solo digitando 'google', ma anche digitando 'flights'.

- È stata implementata la correzione automatica degli errori di battitura durante l'inserimento dell'indirizzo del sito web e fornite proposte pertinenti, tenendo conto dei siti precedentemente aperti dall'utente attuale. Ad esempio, digitando "youutube" verrà suggerito di aprire YouTube.com.

- È stata fornita la possibilità di cercare nelle sezioni dei segnalibri tramite la barra degli indirizzi. Ad esempio, è possibile aggiungere il nome della sezione dei segnalibri durante la digitazione e Chrome proporrà collegamenti da tale sezione che corrispondono alla parola chiave inserita. Ad esempio, digitando "viaggi 2023 New" verranno suggeriti collegamenti dalla sezione dei segnalibri "viaggi 2023" legati a New York.

- È stata implementata la visualizzazione di raccomandazioni sui siti popolari, anche se l'utente non li ha mai visitati o ha commesso un errore nell'inserimento dell'URL. Ad esempio, quando seguendo il consiglio di qualcun altro per aprire Google Earth, l'utente inizia a digitare "googleear" senza conoscere l'indirizzo corretto, il browser proporrà di accedere al sito earth.google.com.

- In Chrome per sistemi desktop è stata migliorata la leggibilità delle informazioni nella barra degli indirizzi e aumentata la reattività dell'interfaccia: i risultati ora vengono visualizzati immediatamente dopo l'inizio della digitazione nella barra degli indirizzi.
- In conformità con la modifica della specifica dell'API Fetch, è stata garantita la rimozione dell'intestazione HTTP Authorization durante il reindirizzamento a un altro dominio (cross origin).
- Nelle impostazioni delle notifiche e della posizione è stata aggiunta un'opzione per attivare il servizio di sottocontrollo delle richieste di autorizzazione (Permission Suggestions Service). Sono stati proposti i seguenti modi:
- mostrare sempre le richieste di autorizzazione per le notifiche e l'accesso alla posizione;
- ignorare automaticamente le richieste di autorizzazione spam, utilizzando il meccanismo Permission Suggestions Service;
- ignorare sempre tutte le richieste di notifiche;
- bloccare sempre tutte le richieste per le autorizzazioni per le notifiche e l'accesso alla posizione.
- Nelle versioni per la piattaforma Android, attivando la protezione standard del browser (Safe Browsing > Standard protection), è stata implementata una verifica della sicurezza degli URL aperti in tempo reale, eseguita sulla base della trasmissione a servers Google di hash parziali degli URL aperti dall'utente. Per escludere l'associazione Indirizzi IP i dati vengono trasmessi tramite un proxy intermedio. In precedenza, la verifica veniva eseguita caricando una copia locale dell'elenco degli URL non sicuri sul sistema dell'utente. Il nuovo schema consente di bloccare più rapidamente gli URL dannosi. Per i sistemi desktop, questa modalità è stata attivata nell'ultima versione.
- La gestione dei caratteri non alfanumerici nel nome host durante la chiamata della funzione URL è stata allineata con la specifica aggiornata. Ad esempio, una chiamata alla funzione ‘URL("http://exa(mple.com;")’ in precedenza restituiva ‘http://example.com/’, mentre ora genererà un errore » URL non valido.

- A tutti i cookie salvati in precedenza è stato applicato un limite alla durata della vita, simile a quello applicato dalla versione Chrome 104 per i nuovi cookie e i cookie aggiornati. Per i cookie esistenti, la durata sarà ridotta a 400 giorni dalla pubblicazione della versione Chrome 119.
- Nel CSS sono stati introdotti nuovi pseudo-classi «:user-valid» e «:user-invalid», che rappresentano gli elementi dei moduli i cui valori hanno superato o meno la verifica. A differenza di «:valid» e «:invalid», le nuove pseudo-classi si attivano solo dopo l'interazione dell'utente con l'elemento del modulo.
- Nella definizione dei colori in CSS è consentito specificare valori calcolati relativamente ad altri parametri di colore. Ad esempio, specificando «oklab(from magenta calc(l * 0.8) a b)», si otterrà un colore più chiaro del 80% rispetto al magenta.
- Nella proprietà CSS clip-path, che consente di limitare la visibilità di un elemento a un'area specifica, è stata aggiunta la supporto per il valore per definire un'area arbitraria per il ritaglio. È stata anche fornita la possibilità di utilizzare le funzioni xywh() e rect() per semplificare la definizione di aree rettangolari o arrotondate.
- Il supporto per l'API WebSQL è stato disabilitato; si consiglia di usare l'API Web Storage e la Indexed Database. Il gestore WebSQL si basa sul codice della libreria SQLite. L'API WebSQL non era supportata in altri browser, era legata a un'API di libreria esterna e aumentava i rischi di problemi di sicurezza (WebSQL poteva essere utilizzato da malintenzionati per sfruttare vulnerabilità in SQLite). Per ripristinare il supporto di WebSQL per gli utenti aziendali, è stata mantenuta la politica WebSQLAccess, che sarà rimossa in Chrome 123.
- L'API HTML Sanitizer è stato temporaneamente rimosso; questo strumento permette di tagliare elementi dal contenuto che influenzano la visualizzazione e l'esecuzione mediante il metodo setHTML(). L'API è stata sviluppata per tagliare i tag HTML che possono essere utilizzati per attacchi XSS. La ragione della rimozione è legata all'incompletezza della specifica, che è cambiata significativamente da quando il Sanitizer è stato aggiunto a Chrome. Una volta che la specifica sarà pronta, l'API sarà restituita.
- È stato rimosso l'attributo non standard shadowRoot, che consentiva agli elementi personalizzati di accedere alla propria radice separata nel Shadow DOM, indipendentemente dallo stato. Invece di shadowRoot, in Chrome 111 è stato proposto l'attributo shadowRootMode, entrato nello standard web.
- È stata migliorata l'implementazione dell'elemento HTML «<fencedframe>», che somiglia all'«iframe» e consente anche di incorporare contenuti di terze parti nella pagina. Le differenze riguardano la limitazione dell'interazione dei contenuti incorporati con i contenuti della pagina a livello di DOM e attributi. Ad esempio, la pagina news.example, in cui è stato incorporato un blocco pubblicitario mediante fencedframe, caricato dal sito shoes.example, non può accedere ai dati di shoes.example, e viceversa, il codice dal sito shoes.example non può accedere ai dati relativi a news.example. Nella nuova versione è stato aggiunto il supporto per i segnaposto delle dimensioni del blocco pubblicitario comparsi nell'API Protected Audience, ad esempio, «https://ad.com?width={/_WIDTH%}&height={/_HEIGHT%}».
- Nel metodo getDisplayMedia() è stato aggiunto il parametro monitorTypeSurfaces, utilizzabile per vietare la condivisione dell'intero schermo.
- Nel metodo window.open() è stato aggiunto un parametro sperimentale (origin trial) fullscreen, che consente di aprire la finestra direttamente in modalità a schermo intero.
- Nell'API AudioEncoderConfig è stato aggiunto il flag «bitrateMode» per scegliere tra bitrate costante (constant) e variabile (variable).
- In TLS è implementato un meccanismo di incapsulamento delle chiavi (KEM, Key Encapsulation Mechanism) che utilizza l'algoritmo ibrido X25519Kyber768, resistente alla forzatura su computer quantistici. Ora può essere utilizzata una combinazione del meccanismo di scambio chiave X25519, basato su curve ellittiche e attualmente in uso in TLS, con l'algoritmo Kyber-768, che utilizza metodi crittografici basati sulla risoluzione di problemi di teoria dei reticoli, il cui tempo di risoluzione non differisce tra computer convenzionali e quantistici.
- È abilitato per impostazione predefinita il supporto per l'estensione WasmGC, che semplifica il porting di programmi in WebAssembly scritti in linguaggi di programmazione che utilizzano il garbage collector (Kotlin, PHP, Java, ecc.). WasmGC aggiunge nuovi tipi di strutture e array per cui può essere applicata un'allocazione di memoria non lineare.
- Sono stati apportati miglioramenti agli strumenti per gli sviluppatori web. È stata aggiunta la possibilità di modificare le regole CSS «@property» e di visualizzare avvisi nel caso di definizioni errate. L'elenco dei dispositivi emulati è stato aggiornato (ad esempio, sono stati aggiunti iPhone 14 e Pixel 7). Nella console web è stata implementata la completezza automatica dei campi privati. È stato garantito il formato dei dati JSON, posizionati all'interno dei blocchi

Oltre alle novità e alla correzione di bug, la nuova versione ha risolto 15 vulnerabilità. Molte di queste vulnerabilità sono state individuate grazie a test automatizzati con strumenti come AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer e AFL. Non sono state rilevate problematiche critiche che permettano di bypassare tutti i livelli di protezione del browser e eseguire codice nel sistema al di fuori dell'ambiente di sandbox. Nell'ambito del programma di ricompensa per la scoperta di vulnerabilità, per questa versione Google ha elargito 13 premi per un totale di 40.5 mila dollari USA (un premio di $16000, $11000, $2000 e $500, tre premi da $3000 e due premi da $1000). L'importo di 4 premi non è ancora stato determinato.
Fonte: opennet.ru






