Google ha rilasciato il browser web Chrome 147. Contemporaneamente è disponibile una versione stabile del progetto gratuito Chromium, che è la base di Chrome. Il browser Chrome differisce da Chromium in quanto utilizza i loghi di Google, ha un sistema per l'invio di notifiche in caso di crash, ha moduli per la riproduzione di contenuti video protetti da copia (DRM), ha un sistema di installazione automatica degli aggiornamenti, abilita sempre l'isolamento Sandbox, fornisce chiavi per l'API di Google e trasmette parametri RLZ durante la ricerca. Per coloro che necessitano di più tempo per l'aggiornamento, è disponibile un ramo Extended Stable separato, supportato per 8 settimane. La prossima versione, Chrome 148, è prevista per il 5 maggio.
Principali modifiche in Chrome 147 (1, 2, 3, 4):
- È stata aggiunta una modalità di visualizzazione a schede verticali, che sostituisce la barra orizzontale superiore con i pulsanti delle schede con una barra laterale con schede verticali. Le schede verticali possono essere visualizzate in modalità espansa (icona + descrizione parziale) o compressa (solo icona). Passando il mouse sopra una scheda laterale viene visualizzata un'anteprima del suo contenuto. La gestione dei gruppi di schede è stata semplificata. È stata aggiunta l'opzione "Mostra schede verticalmente" al menu contestuale che appare quando si fa clic con il pulsante destro del mouse sulla riga delle schede. Se questa opzione non viene visualizzata per impostazione predefinita, può essere abilitata tramite l'impostazione "chrome://flags/#vertical-tabs".
- La modalità di lettura è stata riprogettata per visualizzare solo il testo rilevante di una pagina, nascondendo tutti i controlli correlati, banner, menu, barre di navigazione e altre parti della pagina non relative al contenuto. Nella nuova versione, in modo simile a Firefox, il contenuto rilevante viene visualizzato nell'intera area visibile, anziché in una stretta barra laterale accanto alla pagina originale. Se la nuova modalità non è abilitata per impostazione predefinita, è possibile attivarla tramite l'impostazione "chrome://flags/#read-anything-immersive-reading-mode".
- È stato aggiunto un pulsante al menu "Aiuto" per inviare una segnalazione di blocco di pagine web create a scopo fraudolento o di phishing. Questo pulsante viene visualizzato quando è attiva la modalità "Navigazione sicura".
- Protezione estesa contro l'accesso al sistema locale durante l'interazione con siti Web pubblici. Accesso da siti Web a indirizzi IP La rete locale (intranet o indirizzi interni) o l'interfaccia di loopback (127.0.0.0/8) richiederà la conferma dell'utente. La protezione ora copre non solo i tentativi di caricamento delle risorse tramite HTTP/HTTPS, richieste fetch() e inserimenti di iframe, ma anche le connessioni tramite WebSockets e WebTransport, nonché le richieste fetch avviate tramite il metodo WindowClient.navigate(). Gli aggressori sfruttano l'accesso alle risorse interne per l'identificazione indiretta e per eseguire attacchi CSRF su router, access point, stampanti, interfacce web aziendali e altri dispositivi e servizi che accettano richieste solo dalla rete locale.
- La funzionalità di analisi XML è stata migrata da libxml2 a una nuova libreria scritta in Rust, con particolare attenzione alla sicurezza. Questa modifica si applica solo a XML; come annunciato in precedenza, il supporto per XSLT verrà presto dismesso.
- Ora è possibile utilizzare il metodo startViewTransition() non solo per l'intera pagina, ma anche per singoli elementi HTML.
- È stata aggiunta la funzione CSS contrast-color(). Essa restituisce il colore opposto a quello specificato (per il bianco, restituisce il nero, e per il nero, restituisce il bianco). Questa funzione può essere utilizzata per abbinare il colore di sfondo a un determinato colore del testo e viceversa.
- È stata aggiunta la proprietà CSS "border-shape", che consente di creare bordi non rettangolari attorno agli elementi, ad esempio bordi circolari o poligonali. La proprietà CSS "border-shape" accetta gli stessi tipi di forma della proprietà "clip-path", ma a differenza di quest'ultima, rileva un contorno, lo decodifica e ritaglia qualsiasi contenuto che si estenda oltre il contorno.
- È stata aggiunta l'interfaccia CSSPseudoElement, che consente di lavorare con gli pseudo-elementi CSS tramite JavaScript.
- L'elemento link ora supporta l'uso dell'attributo "rel=modulepreload" per precaricare non solo gli script, ma anche i moduli con stili CSS ( ) e dati JSON ( ).
- Il comportamento del calcolo dello spessore di bordi e contorni nelle proprietà CSS `border-width`, `outline-width` e `column-rule-width` è stato modificato, uniformandolo a Firefox e ai browser basati su WebKit. In precedenza, lo spessore di queste proprietà veniva reimpostato a zero, indipendentemente dai loro valori, se le proprietà `border-style`, `outline-style` o `column-rule-style` erano impostate su "none" o "hidden". Ora, i valori di `border-width`, `outline-width` e `column-rule-width` corrispondono sempre ai valori definiti dallo sviluppatore, indipendentemente dal contenuto delle proprietà `*-style`.
- Aggiunto il metodo Math.sumPrecise() per calcolare la somma degli elementi di un array e di altri oggetti enumerabili con una precisione maggiore di quella della normale sommatoria in un ciclo (eliminando le perdite di precisione durante la memorizzazione dei risultati nel mezzo).
- È stato aggiunto l'attributo Request.isReloadNavigation per rilevare quando una pagina è stata ricaricata, ad esempio, dopo aver fatto clic sul pulsante "Aggiorna" o aver chiamato i metodi location.reload() e history.go(0).
- Per ridurre la precisione dell'identificazione indiretta, è stata modificata la logica di arrotondamento della dimensione della memoria restituita tramite l'API Device Memory, che fornisce informazioni sulla dimensione della RAM. Queste informazioni possono essere utili per creare versioni leggere di applicazioni web che si caricano su dispositivi con RAM limitata o per attivare funzionalità avanzate quando sono disponibili grandi quantità di memoria. Nelle build per la piattaforma Android La dimensione della memoria viene ora arrotondata a 1, 2, 4 e 8, e per le altre piattaforme a 2, 4, 8, 16 e 32.
- Per le applicazioni web isolate (IWA), è implementata l'API Web Printing, che fornisce metodi per determinare la disponibilità delle stampanti, inviare documenti in stampa e gestire la coda di stampa. I nomi degli attributi e la semantica utilizzati nell'API corrispondono al protocollo IPP (Internet Printing Protocol).
- La modalità "Prove Origin" implementa l'API WebNN, che consente l'utilizzo dei servizi di apprendimento automatico forniti dal sistema operativo e dalle relative funzionalità hardware.
- Sono stati apportati miglioramenti agli strumenti per sviluppatori web. L'assistente AI integrato ora seleziona automaticamente i contesti. Il pannello "Modalità dispositivo", utilizzato per testare le prestazioni dei siti web su diversi dispositivi mobili, è stato modernizzato. Il pannello Rete ora decodifica automaticamente il contenuto compresso per le richieste inviate con l'intestazione Content-Encoding: gzip o deflate. È ora possibile utilizzare le espressioni regolari per filtrare gli stili CSS.
Oltre a nuove funzionalità e correzioni di bug, la nuova versione risolve 60 vulnerabilità. Molte di queste sono state identificate tramite test automatizzati con AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer e AFL. Due problemi (un buffer overflow e un integer overflow in WebML) sono stati classificati come critici, il che significa che potevano aggirare tutti i livelli di protezione del browser ed eseguire codice al di fuori dell'ambiente sandbox. Nell'ambito del suo programma di ricompense per la segnalazione di vulnerabilità, Google ha istituito 60 premi e assegnato 118 dollari (due premi da 43000 dollari, due da 11000 dollari e un premio ciascuno da 4000, 3000, 2000 e 1000 dollari). L'importo di altri 52 premi non è ancora stato determinato.
Fonte: opennet.ru
