Google rilascio del browser web . Contemporaneamente versione stabile di un progetto open source , che costituisce la base di Chrome. Il browser Chrome l'uso dei loghi Google, la presenza di un sistema di notifiche in caso di crash, la possibilità di scaricare il modulo Flash su richiesta, moduli per la riproduzione di contenuti video protetti (DRM), un sistema di aggiornamenti automatici e trasmissione durante la ricerca Il prossimo rilascio di Chrome 81 è previsto per il 17 marzo.
:
- Per una piccola percentuale di utenti è stata proposta una funzione di raggruppamento delle schede, che consente di unire più schede simili in gruppi visivamente separati. A ciascun gruppo è possibile assegnare un proprio colore e nome. Gli utenti non inclusi nel primo gruppo di attivazione possono attivare il supporto per il raggruppamento tramite l'opzione «chrome://flags/#tab-groups».
- Aggiunto il supporto per la funzione , che consente di creare collegamenti a singole parole o frasi, senza specificare esplicitamente nel documento etichette tramite il tag «a name» o la proprietà «id». La sintassi di tale collegamenti è prevista per essere approvata come standard web, attualmente in fase di . La maschera per la navigazione (in sostanza, si esegue una ricerca con scorrimento) è separata dall'ancora normale dal carattere «:~:». Ad esempio, aprendo il link «https://opennet.ru/52312/#:~:text=Chromе», la pagina si sposterà sulla posizione della prima occorrenza della parola «Chromе» e quella parola sarà evidenziata.
- una restrizione più severa per la trasmissione dei Cookie tra i siti, per le richieste non-HTTPS che vietano l'elaborazione dei Cookie di terze parti impostati quando si accede a siti diversi dal dominio della pagina attuale. Questi Cookie vengono utilizzati per monitorare i movimenti dell'utente tra i siti nel codice delle reti pubblicitarie, nei widget dei social media e nei sistemi di web analytics. Ricordiamo che per gestire la trasmissione dei Cookie si utilizza l'attributo SameSite specificato nell'intestazione Set-Cookie, che per impostazione predefinita è ora impostato su «SameSite=Lax», limitando l'invio dei Cookie per le sottoparole intersito, come la richiesta di immagini o il caricamento di contenuti tramite iframe da un altro sito. I siti possono sovrascrivere il modo SameSite predefinito impostando esplicitamente il valore SameSite=None al momento della creazione del Cookie. Inoltre, il valore SameSite=None per i Cookie può essere impostato solo in modalità Secure (si applica per le connessioni tramite HTTPS). La modifica inizierà gradualmente 17 febbraio, inizialmente per una piccola percentuale di utenti, e poi ampliando gradualmente la copertura.
- protezione dalle notifiche invadenti relative alla conferma delle autorizzazioni. Poiché tale attività, come lo spam di richieste per ottenere notifiche push, interrompe l'operatività dell'utente e distoglie l'attenzione dalle azioni nei dialoghi di conferma, in Chrome 80 invece di una finestra di dialogo separata, ora può essere visualizzato un messaggio informativo nella barra degli indirizzi con un avviso sulla blocco della richiesta di autorizzazione, che poi si riduce a un indicatore con un'immagine di una campana barrata. Facendo clic sull'indicatore, puoi attivare o rifiutare l'autorizzazione richiesta in qualsiasi momento. Questo nuovo regime sarà attivato selettivamente per gli utenti che in precedenza bloccavano normalmente tali richieste, nonché per i siti che registrano una percentuale elevata di rifiuto delle richieste. Per attivare il nuovo regime per tutte le richieste, è stata aggiunta un'opzione speciale nelle impostazioni (chrome://flags/#quiet-notification-prompts).
- output di finestre pop-up (invocazione del metodo window.open()) e invio di richieste XMLHttpRequest sincrone nei gestori di eventi di chiusura o nascondimento della pagina (unload, beforeunload, pagehide e visibilitychange);
- Inizio proposto dall'uso di contenuti multimediali misti (quando su una pagina HTTPS vengono caricati risorse tramite http://). Su pagine aperte con HTTPS, i link «http://» vengono automaticamente sostituiti con «https://» nei blocchi relativi alla riproduzione di file audio e video. Se una risorsa audio o video non è disponibile tramite https, il suo caricamento viene bloccato (è possibile segnalarne il blocco manualmente tramite il menu accessibile attraverso l'icona del lucchetto nella barra degli indirizzi).
Le immagini continueranno a caricarsi senza modifiche (l'auto-sostituzione verrà applicata in Chrome 81), ma per la sostituzione in https o il blocco delle immagini, agli sviluppatori di siti sono fornite le proprietà CSP upgrade-insecure-requests e block-all-mixed-content. Per script e iframe, il blocco del contenuto misto è già stato implementato in precedenza.
- È iniziata una graduale del supporto FTP. Di default, il supporto FTP rimane attivo, ma sarà un esperimento in cui, per una certa percentuale di utenti, il supporto FTP verrà disabilitato (per tornare sarà necessario avviare il browser con l'opzione "—enable-ftp"). Ricordiamo che nelle versioni precedenti era già stata disabilitata la visualizzazione nel browser dei contenuti delle risorse caricate tramite il protocollo "ftp://" (ad esempio, è stato interrotto il caricamento di documenti HTML e file README), è stato vietato l'uso di FTP per il caricamento di subrisorse da documenti ed è stato interrotto il supporto per i proxy FTP. Tuttavia, è rimasta la possibilità di caricare file tramite link diretti e visualizzare il contenuto delle directory.
-
la possibilità di utilizzare immagini SVG vettoriali come icona del sito (favicon). - Nelle impostazioni è stata aggiunta la possibilità di disabilitare selettivamente singoli tipi di dati trasmessi durante la sincronizzazione tra browser.
- Per gli utenti aziendali amministrati centralmente è stata aggiunta una regola , che consente di vietare l'installazione di estensioni esterne sul dispositivo.
- Implementato una verifica simultanea dell'intera catena di proprietà o chiamate in JavaScript. Ad esempio, quando si accede a «db.user.name.length», era necessario controllare passo per passo la definizione di tutte le componenti, ad esempio tramite «if (db && db.user && db.user.name)». Ora, usando l'operatore «?.», è possibile accedere al valore «db?.user?.name?.length» senza controlli preliminari, e tale accesso non porterà a un errore. In caso di problemi (se qualche elemento è trattato come null o undefined), il risultato sarà «undefined».
- In JavaScript è stato introdotto un nuovo operatore logico di coalescenza ««, che restituisce l'operando destro se l'operando sinistro ha valore NULL o undefined, e viceversa. Ad esempio, «const foo = bar ?? ‘default string'» restituirà la stringa se bar è null, oppure il valore di bar in caso contrario, inclusi i casi in cui bar è 0 o ‘’, a differenza dell'operatore «||».
- in modalità Origin Trials (funzionalità sperimentali che richiedono un’apposita ) è stato proposto il Content Indexing API. L'Origin Trial implica la possibilità di lavorare con l'API specificato da applicazioni caricate da localhost o 127.0.0.1, o dopo aver completato la registrazione e ottenuto un token speciale, che ha una validità limitata per un sito specifico. API , fornisce metadati sul contenuto che è stato precedentemente memorizzato nella cache da applicazioni web che operano in modalità Progressive Web Apps (PWA). L'applicazione può salvare nel browser diversi dati, tra cui immagini, video e articoli, e in caso di perdita della connessione di rete, può utilizzarli tramite l'API Cache Storage e IndexedDB. Il Content Indexing API consente di aggiungere, trovare e rimuovere tali risorse. In questo browser, l'API è già utilizzata per elencare le pagine e i dati multimediali disponibili per la visualizzazione offline.
- Un'interfaccia di programmazione stabilizzata, ora distribuita al di fuori delle Origin Trials. , che consente all'utente di selezionare voci dalla rubrica e trasferire determinate informazioni su di esse al sito. Durante la richiesta viene determinata l'elenco delle proprietà da ottenere. Queste proprietà vengono visualizzate esplicitamente all'utente, che decide se trasferirle o meno. L'API può essere utilizzata, ad esempio, in un client web di posta per selezionare i destinatari di un'email, in un'applicazione web con funzionalità VoIP per avviare una chiamata a un determinato numero, o in un social network per cercare amici già registrati. Nell'ambito degli Origin Trials sono state proposte alcune nuove proprietà del Contact Picker: oltre alle già disponibili nome e cognome, email e numero di telefono, è stata aggiunta la possibilità di trasferire indirizzi postali e immagini.
- In Web Workers un nuovo modo di caricare i moduli ECMAScript che consente di fare a meno della funzione importScripts(), che blocca il funzionamento del worker durante l'elaborazione dello script importato e lo esegue nel contesto globale. Il nuovo metodo prevede la creazione di moduli speciali per i Web Workers, che supportano i meccanismi di importazione standard di JavaScript e possono essere caricati dinamicamente, senza bloccare l'esecuzione del worker. Per il caricamento dei moduli, nel costruttore Worker è previsto un nuovo tipo di risorsa — 'module':
const worker = new Worker('worker.js', {
type: 'module'
}); - una funzionalità integrata per la gestione di flussi compressi in JavaScript, che non richiede l'uso di librerie esterne. Sono stati aggiunti API . È supportata la compressione utilizzando gli algoritmi gzip e deflate.
const compressionReadableStream
= inputReadableStream.pipeThrough(new CompressionStream('gzip')); - È stata aggiunta una proprietà CSS ««, che consente le interruzioni a livello di qualsiasi carattere tipografico, comprese le interruzioni vicino ai caratteri di punteggiatura, spazi predeterminati (<pre>) e a metà parola. È stata inoltre aggiunta la proprietà CSS «» consente di interrompere sequenze di caratteri non interrotte in qualsiasi punto, se nella stringa non è stato possibile trovare una posizione adatta per l'interruzione.
- Per il contesto multimediale elaborato in forma crittografata, è stata implementata la supporto per il metodo , che fornisce informazioni sulle capacità del browser relative alla decodifica di contenuti protetti (ad esempio, questo metodo può essere utilizzato per selezionare scenari di decodifica ad alta qualità o a basso consumo energetico tenendo conto della larghezza di banda disponibile e delle dimensioni dello schermo).
- Aggiunto il metodo , tramite il quale è possibile ottenere informazioni sulle prestazioni della riproduzione video per regolare il bitrate, la risoluzione e altri parametri video.
- Nell'API , che semplifica l'integrazione con i sistemi di pagamento esistenti, è stata aggiunta la possibilità di la gestione dell'indirizzo e delle informazioni di contatto a un gestore di pagamento esterno (l'applicazione del sistema di pagamento può avere informazioni più precise rispetto al browser).
- È stato aggiunto il supporto per l'intestazione HTTP , che consente di inviare metadati aggiuntivi sul tipo di contenuto associato alla richiesta (ad esempio, per una richiesta tramite il tag img viene specificato il tipo «image», per i font — «font», per gli script — «script», per gli stili — «style» e così via). In base al tipo indicato, il server può adottare misure per proteggersi da alcuni tipi di attacchi (ad esempio, è improbabile che un link a un gestore per il trasferimento di denaro venga fornito tramite un tag img, pertanto tali richieste non devono essere elaborate).
- Nel motore JavaScript V8 nello storage dei puntatori in heap. Invece di memorizzare l'intero valore a 64 bit, viene conservata solo la parte inferiore unica del puntatore. Questa ottimizzazione ha permesso di ridurre il consumo di memoria nell'heap del 40%, a scapito di una diminuzione delle prestazioni del 3-8%.


- Nelle strumenti per web sviluppatori:
- Nella console web è stata aggiunta la possibilità di ridefinire le espressioni let e class.
- Migliorati gli strumenti di debug per WebAssembly. Aggiunta la supporto per per il debug passo-passo, la definizione di punti di interruzione e l'analisi delle tracce dello stack nel codice sorgente in cui è scritto l'applicativo WebAssembly.
- È stata migliorata la dashboard per l'analisi dell'attività di rete. Aggiunta la possibilità di visualizzare la catena delle chiamate agli script associate all'inizio della richiesta.
Aggiunti nuovi colonne Path e URL, dove vengono mostrati il percorso assoluto e l'URL completo per ogni risorsa di rete. È stata garantita l'evidenziazione della richiesta selezionata nel diagramma di riepilogo.
- Nella scheda Condizioni di rete è stata aggiunta l'opzione per modificare il parametro User-Agent.
- Proposto un nuovo interfaccia per la configurazione della dashboard di audit.
- Nella scheda è stata fornita la scelta di raccogliere dati di coverage per ogni funzione o per ogni blocco di codice (statistiche più dettagliate, ma richiede più risorse).
- Nella console web è stata aggiunta la possibilità di ridefinire le espressioni let e class.
- L'azione del manifesto AppCache (tecnologia per l'organizzazione del funzionamento delle web app in modalità offline) al catalogo corrente del sito (se il manifesto è stato caricato da www.example.com/foo/bar/, la possibilità di sovrascrivere l'URL sarà valida solo all'interno di /foo/bar/). In Chrome 82 è prevista la rimozione completa del supporto ad AppCache. La ragione è il desiderio di eliminare uno dei vettori per attacchi legati al cross-site scripting. Si raccomanda di utilizzare invece l'API .
- supporto per l'API WebVR 1.1 obsoleto, che può essere sostituito dall'API , che consente di accedere ai componenti per la creazione di realtà virtuale e aumentata e di unificare il funzionamento con diverse classi di dispositivi, dai visori VR fissi alle soluzioni basate su dispositivi mobili.
- I gestori dei protocolli, collegabili tramite i metodi registerProtocolHandler() e unregisterProtocolHandler(), ora possono funzionare solo in un contesto sicuro (quando si accede tramite HTTPS).
Oltre alle novità e alla correzione di errori, nella nuova versione sono state risolte . Molte delle vulnerabilità sono state scoperte attraverso test automatizzati utilizzando strumenti , , , e . Non sono state rilevate problematiche critiche che consentano di eludere 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 l'attuale rilascio, Google ha erogato 37 premi per un totale di 48.000 dollari (un premio di 10.000$, tre premi di 5.000$, tre premi di 3.000$, quattro premi di 2.000$, tre premi di 1.000$ e sei premi di 500$). L'importo di 17 premi non è ancora stato definito.
Fonte: opennet.ru


