L'azienda Google ha presentato il rilascio del browser web Chrome 96. Disponibile contemporaneamente anche il rilascio stabile del progetto open source Chromium, che funge da base per Chrome. Il browser Chrome si distingue per l'uso dei loghi Google, per la presenza di un sistema di invio notifiche in caso di crash, per i moduli di riproduzione di contenuti video protetti (DRM), per un sistema di aggiornamento automatico e per la trasmissione dei parametri RLZ durante le ricerche. La versione Chrome 96 sarà supportata per 8 settimane nell'ambito del ciclo Extended Stable. Il rilascio successivo, Chrome 97, è programmato per il 4 gennaio.
Principali modifiche in Chrome 96:
- Nella barra dei segnalibri, visualizzata sotto la barra degli indirizzi, il pulsante Apps («Servizi») è nascosto di default; in precedenza, consentiva di aprire la pagina «chrome://apps» con l'elenco dei servizi e delle web-app installati.

- È stata interrotta la supporto per la piattaforma Android 5.0 e versioni precedenti.
- È stata aggiunta la supporto per il reindirizzamento da HTTP a HTTPS utilizzando il DNS (nel caso di) indirizzi IP oltre ai record DNS «A» e «AAAA», viene anche richiesta la registrazione DNS «HTTPS»; in presenza di quest'ultima, il browser si collegherà immediatamente al sito tramite HTTPS).
- Nella versione per sistemi desktop, la cache di navigazione (Back-forward cache), che garantisce un passaggio istantaneo utilizzando i pulsanti «Indietro» e «Avanti», è ora supportata per la navigazione tra le pagine precedentemente visualizzate dopo l'apertura di un altro sito.
- È stata aggiunta l'impostazione «chrome://flags#force-major-version-to-100» per testare possibili malfunzionamenti dei siti dopo che il browser raggiunge una versione composta da tre cifre anziché due (in passato, dopo il rilascio di Chrome 10, si sono presentati molti problemi nelle librerie di analisi User-Agent). Attivando l'opzione, l'intestazione User-Agent inizierà a restituire la versione 100 (Chrome/100.0.4664.45).
- Nelle build per la piattaforma Windows, i dati relativi al funzionamento dei servizi di rete (cookie, ecc.) sono stati spostati in una sottocartella separata «Network» in preparazione per l'implementazione del meccanismo di isolamento di rete (Network Sandbox).
- Nella modalità Origin Trials (funzionalità sperimentali che richiedono un'attivazione separata) sono stati aggiunti diversi nuovi API. L'Origin Trial implica la possibilità di utilizzare l'API specificata da applicazioni caricate da localhost o 127.0.0.1, o dopo aver completato la registrazione e ottenuto un token speciale, valido per un tempo limitato per un sito web specifico.
- È stato proposto l'oggetto FocusableMediaStreamTrack (verrà rinominato in BrowserCaptureMediaStreamTrack), che supporta il metodo focus(), attraverso il quale le applicazioni che catturano il contenuto di finestre o schede (ad esempio, programmi per la trasmissione del contenuto delle finestre durante videoconferenze) possono ottenere informazioni sul focus di input e monitorarne le modifiche.
- È stato implementato il meccanismo Priority Hints, che permette di specificare l'importanza di una risorsa caricata attraverso l'aggiunta dell'attributo «importance» nei tag come iframe, img e link. L'attributo può assumere i valori «auto», «low» e «high», che influenzano l'ordine di caricamento delle risorse esterne da parte del browser.
- Nell'intestazione Cross-Origin-Embedder-Policy, che gestisce la modalità di isolamento Cross-Origin e consente di definire regole per l'uso sicuro di operazioni privilegiate sulla pagina, è stata aggiunta la supporto per il parametro «credentialless» che disabilita la trasmissione di informazioni relative alle credenziali, come cookie e certificati client.
- In CSS è stato proposto un nuovo pseudo-classe «:autofill», che consente di monitorare il riempimento automatico dei campi nel tag input da parte del browser (non si attiva in caso di riempimento manuale).
- Per evitare loop di richieste, le proprietà CSS writing-mode, direction e backgrounds ora non si applicano al viewport quando si utilizza la proprietà CSS contain (CSS Containment) sui tag HTML o BODY.
- È stata aggiunta la proprietà CSS font-synthesis, che consente di controllare la possibilità di sintesi dei caratteri (oblique, bold e small-cap) assenti nella famiglia di font selezionata.
- Nell'API PerformanceEventTiming, che consente di ottenere ulteriori informazioni per misurare e ottimizzare la reattività dell'interfaccia, è stato aggiunto l'attributo InteractionID con l'identificatore dell'interazione dell'utente. L'identificatore consente di collegare diverse metriche a un'unica azione dell'utente; ad esempio, durante il tocco su uno schermo touchscreen vengono generati diversi eventi, come pointerdown, mousedown, pointerup, mouseup e click, e l'InteractionID consente di collegare tutti questi eventi a un solo tocco.
- È stato aggiunto un nuovo tipo di media query — «prefers-contrasts» per adattare il contenuto della pagina alle impostazioni di contrasto impostate nel sistema operativo (ad esempio, l'attivazione della modalità ad alto contrasto).
- Per le PWA isolate, nel manifesto è stata aggiunta la supporto per un campo opzionale «id» con l'identificatore globale dell'applicazione (se il campo non è specificato, viene utilizzato l'URL di avvio per l'identificazione).
- Per le PWA isolate, è stata implementata la possibilità di registrazione come gestori degli URL. Ad esempio, l'applicazione music.example.com può registrarsi come gestore dell'URL https://*.music.example.com e tutti i collegamenti provenienti da app esterne, come messaggeri e client di posta, porteranno all'apertura di questa PWA, anziché a una nuova scheda nel browser.
- È stata aggiunta la direttiva CSP (Content Security Policy) wasm-unsafe-eval per controllare la possibilità di eseguire codice su WebAssembly. L'applicazione della direttiva CSP script-src ora include anche WebAssembly.
- In WebAssembly è stato aggiunto il supporto per i tipi di riferimento (tipo externref). I moduli WebAssembly possono ora memorizzare in variabili e passare come argomenti riferimenti a oggetti JavaScript e DOM.
- Nella PaymentMethodData è stata dichiarata obsoleta la supporto per il metodo di pagamento "basic-card", che consentiva di gestire qualsiasi tipo di carta tramite un singolo identificatore, senza collegamento a tipi di dati specifici. Si raccomanda di utilizzare metodi alternativi come Google Pay, Apple Pay e Samsung Pay.
- Quando un sito utilizza l'API U2F (Cryptotoken), all'utente verrà mostrato un avviso contenente informazioni sull'obsolescenza di questa interfaccia. L'API U2F sarà disabilitata di default nella versione Chrome 98 e completamente rimossa in Chrome 104. È consigliabile utilizzare l'API Web Authentication al suo posto.
- Sono stati apportati miglioramenti agli strumenti per gli sviluppatori web. È stata aggiunta una nuova scheda "Panoramica CSS" (CSS Overview), che offre un riepilogo delle informazioni su colori, caratteri, dichiarazioni non utilizzate e media query, e evidenzia potenziali problemi. Sono migliorate le operazioni di editing e copia del CSS. Nella scheda Stili (Styles) è stata aggiunta un'opzione nel menu contestuale per copiare le definizioni CSS sotto forma di espressioni JavaScript. Nella scheda di ispezione delle richieste di rete è stata aggiunta una scheda Payload con l'analisi dei parametri della richiesta. Nella console web è stata aggiunta un'opzione per nascondere tutti gli errori CORS (Cross-Origin Resource Sharing) e fornire il tracciamento dello stack per le funzioni async.

Oltre alle nuove funzionalità e alla correzione di errori, nella nuova versione sono state risolte 25 vulnerabilità. Molte di queste vulnerabilità sono state scoperte tramite il testing automatizzato con strumenti come AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer e AFL. Non sono state rilevate problematiche critiche in grado di bypassare tutti i livelli di protezione del browser e eseguire codice sul sistema al di fuori dell'ambiente sandbox. Nell'ambito del programma di ricompense per la scoperta di vulnerabilità, Google ha assegnato 13 premi per l'attuale rilascio, per un totale di 60.000 dollari USA (un premio di $15.000, uno di $10.000, due premi di $7.500, uno di $5.000, due di $3.000, uno di $2.500, due premi da $2.000, due premi di $1.000 e un premio di $500). L'importo di 5 premi non è ancora stato determinato.
Fonte: opennet.ru


