L'azienda Google ha presentato il rilascio del browser web Chrome 89. È contemporaneamente 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 di Google, per la presenza di un sistema di invio di notifiche in caso di crash, per i moduli per la riproduzione di contenuti video protetti (DRM), per il sistema di installazione automatica degli aggiornamenti e per il trasferimento dei parametri RLZ durante la ricerca. Il prossimo rilascio di Chrome 90 è programmato per il 13 aprile.
Le principali novità in Chrome 89:
- La versione di Chrome per Android potrà ora essere eseguita solo su dispositivi certificati in Play Protect. In macchine virtuali e negli emulatori di Chrome per Android potrà essere utilizzata se si emula un dispositivo valido oppure se l'emulatore è stato sviluppato da Google. Puoi verificare se un dispositivo è certificato nell'app Google Play nella sezione delle impostazioni (nella pagina delle impostazioni, in fondo, viene mostrato lo stato «Play Protect certification»). Per i dispositivi non certificati, ad esempio quando si utilizzano firmware non ufficiali, gli utenti sono invitati a registrare i propri dispositivi per poter utilizzare Chrome.
- Per una piccola percentuale di utenti è abilitato l'apertura di siti web per impostazione predefinita tramite HTTPS quando si digitano nomi di host nella barra degli indirizzi. Ad esempio, digitando l'host example.com, si aprirà per impostazione predefinita il sito https://example.com, e se si verificano problemi durante l'apertura, verrà eseguito un rollback su http://example.com. Per gestire l'uso predefinito di «https://» è stata proposta l'impostazione «chrome://flags#omnibox-default-typed-navigations-to-https».
- È stata attivata la supporto per i profili, che consente a diversi utenti di separare i propri account quando si utilizza un unico browser. Ad esempio, attraverso i profili è possibile organizzare l'accesso per i membri della famiglia o separare le sessioni utilizzate per lavoro e interessi personali. L'utente può creare un nuovo profilo Chrome e configurarlo in modo che si attivi quando si accede a un determinato account Google, consentendo a diversi utenti di condividere segnalibri, impostazioni e cronologia di navigazione. Quando un utente tenta di accedere a un account legato a un altro profilo, verrà invitato a passare a quel profilo. Se un utente è legato a più profili, avrà la possibilità di scegliere il profilo desiderato. È possibile collegare diverse profilature ai propri schemi di colori per una separazione visiva degli utenti.

- È stata attivata la visualizzazione delle anteprime dei contenuti quando si passa il cursore sulle schede nella barra superiore. In precedenza, l'anteprima dei contenuti delle schede era disattivata per impostazione predefinita e richiedeva la modifica dell'impostazione "chrome://flags/#tab-hover-cards".

- Per alcuni utenti, è stata attivata la funzione "Elenco di lettura" (Reading List, "chrome://flags#read-later"), che, attivandola, mostra un secondo pulsante "Aggiungi all'elenco di lettura" oltre al pulsante "Aggiungi segnalibro" quando si clicca sull'asterisco nella barra degli indirizzi. Inoltre, nell'angolo destro della barra dei segnalibri appare un menu "Elenco di lettura" in cui sono elencate tutte le pagine precedentemente aggiunte all'elenco. Quando si apre una pagina dall'elenco, viene contrassegnata come letta. Le pagine nell'elenco possono anche essere contrassegnate come lette o non lette manualmente o rimosse dall'elenco.

- Per gli utenti che accedono a un account Google, senza attivare Chrome Sync, è stato fornito accesso ai metodi di pagamento e alle password salvate nell'account Google. Questa possibilità è attivata per alcuni utenti e sarà gradualmente estesa agli altri.
- È stata attivata la supporto per la ricerca rapida delle schede, che in precedenza richiedeva di essere attivata tramite il flag "chrome://flags/#enable-tab-search". L'utente può visualizzare un elenco di tutte le schede aperte e filtrare rapidamente la scheda desiderata, indipendentemente dal fatto che si trovi nella finestra attuale o in un'altra.

- Per tutti gli utenti, è stata interrotta l'elaborazione dell'input di singole parole nella barra degli indirizzi come tentativi di apertura di siti interni. In precedenza, nel caso di inserimento di una sola parola nella barra degli indirizzi, il browser tentava innanzitutto di determinare la presenza di un host con quel nome tramite DNS, supponendo che l'utente stesse cercando di aprire un sottodominio, e solo successivamente reindirizzava la richiesta al motore di ricerca. In questo modo, il proprietario del server DNS specificato nelle impostazioni dell'utente riceveva informazioni sulle ricerche composte da una sola parola, che venivano considerate una violazione della privacy. Per le aziende che utilizzano host internet senza sottodomini (ad esempio, "https://helpdesk/") è stata fornita un'opzione per ritornare al comportamento precedente.
- È stata fornita la possibilità di fissare la versione di un'estensione o di un'applicazione. Ad esempio, per l'utilizzo in azienda di sole estensioni verificate, l'amministratore, tramite la nuova politica ExtensionSettings, può configurare Chrome per utilizzare un proprio URL per il download degli aggiornamenti, anziché l'URL specificato nel manifesto dell'estensione.
- Nei sistemi x86, ora è obbligatoria la supporto da parte del processore alle istruzioni SSE3 per il funzionamento del browser, supportate dai processori Intel a partire dal 2003 e da AMD dal 2005.
- Sono state aggiunte API aggiuntive, mirate a fornire funzionalità in grado di sostituire i cookie di terze parti utilizzati per tracciare i movimenti degli utenti tra i siti nei codici delle reti pubblicitarie, dei widget dei social media e dei sistemi di web analytics. Le seguenti API sono state proposte per il testing:
- Trust Token per separare gli utenti senza utilizzare identificatori cross-site.
- First party sets — consente ai domini correlati di dichiararsi primari affinchè il browser possa tenere conto di questa relazione durante le richieste cross-site.
- Schemeful Same-Site per estendere il concetto di same-site a diverse schemi URL, ovvero http://website.example e https://website.example verranno trattati come un unico sito durante le richieste cross-site.
- Floc per identificare la categoria di interessi dell'utente senza effettuare identificazione individuale e senza legarsi alla cronologia delle visite a siti specifici.
- Conversion Measurement per valutare l'attività dell'utente dopo aver cliccato su un annuncio.
- User-Agent Client Hints per la sostituzione di User-Agent e la fornitura selettiva di dati su specifici parametri del browser e del sistema (versione, piattaforma, ecc.).
- Aggiunto l'API Serial, che consente ai siti di leggere e scrivere dati tramite una porta seriale. Come motivazione per l'emergere di questo tipo di API si menziona la possibilità di creare applicazioni web per il controllo diretto di dispositivi come microcontrollori e stampanti 3D. Per accedere a un dispositivo periferico è richiesta una chiara approvazione dei permessi da parte dell'utente.
- Aggiunto l'API WebHID per accesso a basso livello ai dispositivi HID (Human interface device, tastiere, mouse, controller, touchpad), che consente di implementare la logica di funzionamento con il dispositivo HID in JavaScript per gestire dispositivi HID rari senza necessità di driver specifici nel sistema. In particolare, il nuovo API mira a fornire supporto per i controller di gioco.
- Aggiunto l'API Web NFC, che consente alle applicazioni web di leggere e scrivere tag NFC. Tra gli esempi di utilizzo del nuovo API nelle applicazioni web ci sono la fornitura di informazioni su esposizioni museali, gestione di inventari, ottenimento di informazioni da badge partecipanti a conferenze, ecc. L'invio e la scansione dei tag avviene tramite oggetti NDEFWriter e NDEFReader.
- L'API Web Share (oggetto navigator.share) è ora disponibile anche per gli utenti dei browser desktop (attualmente solo per Windows e Chrome OS), superando i limiti dei dispositivi mobili. L'API Web Share fornisce strumenti per la condivisione di informazioni sui social media, ad esempio permette di generare un pulsante unificato per la pubblicazione sulle reti sociali utilizzate dal visitatore o di organizzare l'invio di dati ad altre applicazioni.
- Nelle versioni per Android e nel componente WebView è stata inclusa la supporto per la decodifica del formato di immagine AVIF (AV1 Image Format), che utilizza tecnologie di compressione intra-frame dal formato di codifica video AV1 (il supporto AVIF nelle versioni desktop è stato introdotto in Chrome 85). Il contenitore per la distribuzione di dati compressi in AVIF è completamente analogo a HEIF. AVIF supporta immagini sia in HDR (High Dynamic Range) e nello spazio di colori Wide-gamut, sia in standard dynamic range (SDR).
- È stata aggiunta una nuova Reporting API per ottenere informazioni sulle violazioni delle regole di utilizzo sicuro nella pagina delle operazioni privilegiate, impostate tramite l'intestazione COOP (Cross-Origin-Opener-Policy), che consente anche di mettere COOP in modalità di debug, operando senza bloccare le violazioni delle regole.
- È stata aggiunta la funzione performance.measureUserAgentSpecificMemory(), che determina la dimensione della memoria utilizzata durante l'elaborazione della pagina.
- Per conformarsi ai requisiti degli standard web, tutti gli URL "data:" vengono ora trattati come potenzialmente attendibili, cioè come parte di un contesto protetto.
- Nell'API Streams è stato aggiunto il supporto per gli stream di byte (Byte Streams), che sono specificamente ottimizzati per il trasferimento efficiente di insiemi arbitrari di byte e minimizzano il numero di operazioni di copia sui dati. L'output dello stream può essere scritto in primitive come stringhe o ArrayBuffer.
- Negli elementi SVG è stato implementato il supporto per la sintassi completa della proprietà "filter", consentendo di applicare contemporaneamente a elementi SVG e non SVG funzioni di filtraggio come blur(), sepia() e grayscale().
- In CSS è stato implementato il pseudo-elemento «::target-text», che può essere utilizzato per evidenziare un frammento a cui è stato fatto riferimento tramite il testo (scroll-to-text) con uno stile diverso da quello utilizzato dal browser per evidenziare il trovato.
- Sono state aggiunte proprietà CSS per gestire la curvatura degli angoli: border-start-start-radius, border-start-end-radius, border-end-start-radius, border-end-end-radius.
- È stata aggiunta la proprietà CSS forced-colors per determinare se il browser sta applicando una palette di colori limitata impostata dall'utente sulla pagina.
- Aggiunta la proprietà CSS forced-color-adjust per disattivare il vincolo forzato dei colori su elementi specifici, mantenendo per essi un controllo completo dei colori tramite CSS.
- In JavaScript è consentito l'uso della parola chiave await nei moduli a livello superiore, permettendo di integrare in modo più fluido le chiamate asincrone nel processo di caricamento dei moduli, evitando di dover usare una «async function». Ad esempio, invece di (async function() { await Promise.resolve(console.log('test')); }()); ora è possibile scrivere await Promise.resolve(console.log('test'));
- Nel motore JavaScript V8 è stata accelerata la chiamata delle funzioni, quando il numero di argomenti passati non corrisponde ai parametri definiti nella funzione. Quando il numero di argomenti è incoerente, nel modo senza JIT le prestazioni sono aumentate dell'11,2%, mentre utilizzando JIT TurboFan sono aumentate del 40%.
- È stata apportata una grande quantità di piccoli miglioramenti agli strumenti per gli sviluppatori web.
Oltre alle novità e alla correzione di errori, nella nuova versione sono state risolte 47 vulnerabilità. Molte di queste vulnerabilità sono state scoperte a seguito di test automatizzati con strumenti come AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer e AFL. Non sono state identificate problematiche critiche che consentano di eludere tutti i livelli di protezione del browser ed eseguire codice nel sistema al di fuori dell'ambiente sandbox. Tuttavia, si segnala che una delle vulnerabilità corrette (CVE-2021-21166), correlata al ciclo di vita degli oggetti nel sottosistema audio, presenta le caratteristiche di un problema 0-day ed è stata utilizzata in un exploit prima della correzione. Nell'ambito del programma di premi per la scoperta di vulnerabilità per l'attuale rilascio, Google ha erogato 33 premi per un totale di 61.000 dollari USA (due premi da 10.000 dollari, due premi da 7.500 dollari, tre premi da 5.000 dollari, due premi da 3.000 dollari, quattro da 1.000 dollari e due premi da 500 dollari). L'importo di 18 premi non è ancora stato definito.
Fonte: opennet.ru




