L'azienda Google ha pubblicato la versione 129 del browser web Chrome. È disponibile contemporaneamente anche la versione stabile del progetto open source Chromium, che funge da base per Chrome. Il browser Chrome si distingue da Chromium per l'uso dei loghi Google, la presenza di un sistema di invio notifiche in caso di crash, moduli per la riproduzione di contenuti video protetti da copyright (DRM), un sistema di aggiornamenti automatici, l'attivazione costante della sandbox, la fornitura di chiavi per le Google API e la trasmissione dei parametri RLZ durante la ricerca. Per coloro che necessitano di più tempo per l'aggiornamento, è supportata una branch Extended Stable, mantenuta per 8 settimane. La prossima versione di Chrome 130 è prevista per il 15 ottobre.
Principali novità di Chrome 129:
- È stata aggiunta la possibilità di personalizzare il contenuto della barra degli strumenti, consentendo all'utente di fissare, rimuovere e scambiare le icone tramite un configuratore visualizzato nella barra laterale. Ad esempio, è possibile posizionare sulla barra i pulsanti per accedere all'interfaccia per sviluppatori, ripulire i dati di navigazione, aprire la modalità di lettura, accedere al task manager, entrare nel gestore password, ecc. Per controllare l'attivazione della funzionalità di fissaggio delle icone, è stato aggiunto il parametro "chrome://flags/#toolbar-pinning".

- È stata proposta una funzione di confronto delle schede, che consente di utilizzare elementi di apprendimento automatico per generare una panoramica comparativa dei prodotti le cui informazioni sono aperte in diverse schede. Questa funzione è attualmente disponibile solo per gli utenti negli Stati Uniti.

- Nella versione per la piattaforma Android è stata implementata la possibilità di spostare le schede inattive in una sezione separata (Schede Inattive) dell'interfaccia di cambio schede. È possibile visualizzare tutte le schede chiuse in un colpo solo. Di default, questa nuova funzione è attivata per l'1% degli utenti. Le schede vengono automaticamente eliminate dopo essere rimaste nella sezione Schede Inattive per più di 60 giorni.
- È stata aggiunta una modalità sperimentale di condivisione dei processi, la cui essenza è che per le diverse schede in cui è aperto lo stesso sito verrà utilizzato un unico processo di rendering, anziché processi separati. Questa modifica consente di velocizzare il caricamento delle pagine e ridurre il consumo di memoria. Per attivare la modalità è stata aggiunta l'impostazione "chrome://flags/#enable-process-per-site-up-to-main-frame-threshold".
- È stata aggiunta la possibilità di concedere autorizzazioni temporanee ai siti, valide solo all'interno della sessione corrente (ad esempio, è possibile consentire l'accesso alla fotocamera e al microfono, che sarà attivo fino alla chiusura della scheda o al passaggio a un altro sito).
- È stata interrotta la supporto per la piattaforma macOS 10.15, il cui supporto è stato cessato da Apple nel 2022.
- Per le piattaforme Windows e macOS è stata implementata una nuova interfaccia di gestione dei certificati nel configuratore (in precedenza su queste piattaforme venivano utilizzate le interfacce di gestione dei certificati di sistema).
- È stata abilitata la blocco dell'accesso all'IP 0.0.0.0 per prevenire attacchi ai servizi locali.
- È stata annunciata la prossima sostituzione nell'algoritmo TLS per lo scambio di chiavi Kyber768+X25519 con ML-KEM768+X25519 (il standard ML-KEM recentemente adottato si basa sull'algoritmo post-quantistico Kyber, ma non è completamente compatibile con la sua implementazione precedente).
- Nell'API Scheduler è stato aggiunto il metodo "scheduler.yield()", che consente durante l'esecuzione di operazioni prolungate di restituire temporaneamente il controllo al thread principale del browser, permettendo di sospendere l'operazione lunga corrente per eseguire compiti importanti, come la gestione degli input e il rendering dei fotogrammi. L'idea è di suddividere i compiti prolungati in task più piccoli, passando periodicamente il controllo al thread principale tramite la chiamata "await scheduler.yield();" nel codice, il che consente di ridurre l'impatto negativo delle operazioni prolungate sulla reattività durante l'interazione con il sito.

- È stata aggiunta la proprietà CSS "interpolate-size", che consente di scegliere la dimensione dell'animazione non in valori assoluti, ma rispetto ai valori calcolati utilizzando le proprietà auto, min-content o fit-content. Per un controllo più preciso sulla dimensione, è stata proposta la funzione CSS calc-size(), simile a calc(), ma che supporta operazioni con la dimensione reale degli elementi, che cambia in base al contenuto.
- Sono state apportate modifiche alle proprietà CSS per il controllo della visualizzazione degli elementi legati alla posizione di altri elementi (CSS Anchor Positioning), senza l'uso di JavaScript, ad esempio per ancorare gli elementi delle finestre pop-up (popover), che appaiono in modo simile ai suggerimenti. In conformità con le raccomandazioni del gruppo di lavoro per la standardizzazione del CSS, la proprietà CSS "inset-area" è stata rinominata in "position-area", la proprietà "position-try-options" è stata rinominata in "position-try-fallbacks", e nella proprietà "position-try" è stata rimossa l'esigenza di specificare inset-area(), cioè invece di "position-try-fallbacks: inset-area(top)" si deve scrivere "position-try-fallbacks: top".
- Nell'API Intl è stato aggiunto il metodo Intl.DurationFormat per la formattazione dei dati sulla durata nel tempo tenendo conto della localizzazione scelta. Ad esempio: const l = "ru-RU"; const d = {hours: 1, minutes: 46, seconds: 40}; const opts = {style: "long"}; new Intl.DurationFormat(l, opts).format(d); // "1 ora, 46 minuti 40 secondi"
- Nell'API Web GPU è stata implementata la possibilità di utilizzare l'intero intervallo di luminosità supportato dallo schermo nella visualizzazione di immagini HDR.
- Nell'API WebRTC è stata aggiunta la supporto per inviare blob tramite il metodo RTCDataChannel.send(Blob) e ricevere dati di tipo Blob durante l'elaborazione dell'evento onMessage, se nell'attributo "binaryType" è specificato il valore "blob" (in precedenza erano supportati solo l'invio di stringhe e ArrayBuffer). La dimensione del blob è limitata al valore di maxMessageSize.
- Nell'API WebAuthn sono stati aggiunti i metodi PublicKeyCredential.toJSON(), parseCreationOptionsFromJSON() e parseRequestOptionsFromJSON() per la serializzazione/deserializzazione delle risposte WebAuthn utilizzando il formato JSON.
- Nella modalità "Origin trials" è stata implementata l'API FileSystemObserver, che consente ai siti di monitorare le modifiche ai file e alle cartelle.
- Nella modalità "Origin trials" è stata aggiunta l'API Mesh2D Canvas per visualizzare un gran numero di triangoli texture. Tra le applicazioni dell'API vengono menzionate l'implementazione di metodi avanzati di mappatura delle texture e la creazione di effetti di deformazione nel contesto bidimensionale.
- Sono state ampliate le funzionalità degli strumenti per gli sviluppatori web.
Oltre alle novità e alla correzione di errori, nella nuova versione sono state eliminate 9 vulnerabilità. Molte di queste vulnerabilità sono state rilevate attraverso test automatizzati utilizzando strumenti come AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer e AFL. A un problema è stato assegnato un alto livello di gravità (gestione errata dei tipi nel motore V8). Non sono state scoperte problematiche critiche che consentano di aggirare 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à per la versione corrente, Google ha assegnato 5 premi per un totale di 13.000 dollari USA (un premio di $8000, uno di $2000 e tre premi di $1000). L'importo di una singola ricompensa non è ancora stato determinato.
Fonte: opennet.ru



