Azienda Google rilascio del browser web . In contemporanea uscita stabile di un progetto open source , che funge da base per Chrome. Il browser Chrome utilizza loghi Google, ha un sistema di invio notifiche in caso di crash, la possibilità di caricare il modulo Flash su richiesta, moduli per la riproduzione di contenuti video protetti (DRM), un sistema di aggiornamento automatico e un invio durante la ricerca . La prossima versione di Chrome 81 è prevista 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 un nome. Gli utenti che non rientrano nella prima ondata di attivazione possono abilitare il supporto per il raggruppamento tramite l'opzione «chrome://flags/#tab-groups».
- È stato aggiunto il supporto per la funzionalità , che consente di creare collegamenti a singole parole o frasi, senza dover specificare etichette nel documento utilizzando il tag «a name» o la proprietà «id». La sintassi di tali collegamenti è prevista per essere approvata come standard web, attualmente in fase di . La maschera per il passaggio (essenzialmente viene eseguita una ricerca con scorrimento) è separata dall'ancora normale dal carattere «:~:». Ad esempio, aprendo il collegamento «https://opennet.ru/52312/#:~:text=Chromе» la pagina verrà spostata nella posizione della prima occorrenza della parola «Chromе» e questa parola verrà evidenziata.
- un vincolo più rigoroso sulla trasmissione dei Cookie tra i siti, per le richieste non-HTTPS, che vieta il trattamento dei Cookie di terze parti impostati quando si accede a siti diversi dal dominio della pagina corrente. Tali Cookie vengono utilizzati per monitorare il movimento degli utenti tra i siti nel codice delle reti pubblicitarie, dei widget dei social media e dei sistemi di web analytics. Ricordiamo che per gestire la trasmissione dei Cookie viene utilizzato l'attributo SameSite specificato nell'intestazione Set-Cookie, il quale ora è impostato di default su «SameSite=Lax», limitando l'invio dei Cookie per le sotto-richieste cross-site, come le richieste di immagini o il caricamento di contenuti tramite iframe da un altro sito. I siti possono sovrascrivere la modalità predefinita di SameSite, impostando esplicitamente il valore SameSite=None al momento della creazione dei Cookie. Tuttavia, il valore SameSite=None per i Cookie può essere impostato solo in modalità Sicura (valido per connessioni tramite HTTPS). La modifica inizierà in modo graduale dal 17 febbraio, inizialmente per una piccola percentuale di utenti, e poi ampliando gradualmente la copertura.
- protezione dalle fastidiose notifiche associate alla conferma dei permessi. Poiché attività simili, come le richieste di spam per ricevere notifiche push, interrompono il lavoro dell'utente e distraggono l'attenzione dalle azioni nei dialoghi di conferma, in Chrome 80 invece di un dialogo separato, ora potrebbe essere visualizzato un suggerimento informativo nella barra degli indirizzi con un avviso sul blocco della richiesta di permessi, che poi si riduce in un indicatore con l'immagine di una campana barrata. Cliccando sull'indicatore si può attivare o rifiutare il permesso richiesto in qualsiasi momento. Automaticamente, la nuova modalità sarà attivata selettivamente per gli utenti che in precedenza bloccavano solitamente tali richieste e per i siti con un alto tasso di rifiuto delle richieste. Per attivare la nuova modalità per tutte le richieste, nelle impostazioni è stata aggiunta una speciale opzione (chrome://flags/#quiet-notification-prompts).
- visualizzazione delle finestre popup (chiamata del metodo window.open()) e invio di richieste asincrone XMLHttpRequest nei gestori degli eventi di chiusura o nascondimento della pagina (unload, beforeunload, pagehide e visibilitychange);
- È stata proposta la protezione iniziale Le immagini continueranno a caricarsi senza modifiche (la sostituzione automatica sarà applicata in Chrome 81), ma per la sostituzione in https o il blocco delle immagini, gli sviluppatori di siti hanno a disposizione le proprietà CSP upgrade-insecure-requests e block-all-mixed-content. Per gli script e gli iframe, il blocco dei contenuti misti era già stato implementato in precedenza.
È iniziata la disattivazione graduale
- del supporto FTP. Di default, il supporto FTP rimane per ora, ma verrà disattivato un esperimento nel quale il supporto FTP sarà disabilitato per una certa percentuale di utenti (per riattivarlo sarà necessario avviare il browser con l'opzione «—enable-ftp»). Ricordiamo che nelle versioni precedenti è stata già disabilitata la visualizzazione dei contenuti delle risorse caricate tramite il protocollo «ftp://» (ad esempio, è stata interrotta la visualizzazione di documenti HTML e file README), è stato vietato l'uso di FTP per il caricamento di sottorisorse dai documenti e il supporto per il proxy FTP è stato disabilitato. Tuttavia, fino ad ora è rimasta la possibilità di caricare file tramite link diretti e di 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 determinati tipi di dati trasmessi durante la sincronizzazione tra i browser.
- Per gli utenti aziendali amministrati centralmente è stata aggiunta una regola , che consente di vietare l'installazione di estensioni esterne sul dispositivo.
- supporto per l'interfaccia una verifica simultanea dell'intera catena di proprietà o chiamate in JavaScript. Ad esempio, per accedere a «db.user.name.length» in precedenza era necessario controllare gradualmente la definizione di tutte le parti costitutive, ad esempio tramite «if (db && db.user && db.user.name)». Ora, con l'operatore «?.», è possibile accedere al valore «db?.user?.name?.length» senza controlli preliminari e questo accesso non genererà un errore. In caso di problemi (se un elemento è stato elaborato come null o undefined), il risultato sarà «undefined».
- In JavaScript è stato proposto un nuovo operatore logico di unione «», che restituisce l'operando destro se l'operando sinistro ha un valore NULL o undefined, e viceversa. Ad esempio, «const foo = bar ?? ‘stringa predefinita'» se bar è uguale a null, restituirà la stringa o il valore di bar altrimenti, compreso quando bar è uguale a 0 e ‘ ‘, a differenza dell'operatore «||».
- In modalità Origin Trials (funzionalità sperimentali che richiedono una registrazione separata ) è stato proposto l'API Content Indexing. L'Origin Trial implica la possibilità di utilizzare l'API specificata da applicazioni caricate da localhost o 127.0.0.1, oppure dopo aver completato la registrazione e ottenuto un token speciale, che ha una validità limitata per un sito specifico. L'API , fornisce metadati sul contenuto che è stato memorizzato nella cache dalle applicazioni web funzionanti in modalità Progressive Web Apps (PWA). L'applicazione può memorizzare nel browser vari dati, tra cui immagini, video e articoli, e in caso di perdita della connessione di rete, può utilizzare questi dati tramite le API Cache Storage e IndexedDB. L'API Content Indexing consente di aggiungere, trovare e rimuovere queste risorse. Nel browser, questa API è già utilizzata per elencare le pagine e i dati multimediali disponibili per la visualizzazione offline.
- È stato stabilizzato e ora è distribuito al di fuori degli Origin Trials l'interfaccia di programmazione , che consente all'utente di selezionare contatti dalla rubrica e di inviare dettagli specifici su di essi al sito. Durante la richiesta, viene definito un elenco di proprietà necessarie. Queste proprietà vengono presentate esplicitamente all'utente, che decide se inviarle o meno. L'API può essere utilizzata, ad esempio, in un client web di posta per selezionare i destinatari di una lettera in partenza, in un'applicazione web con funzione VoIP per avviare una chiamata a un numero specifico o in un social network per cercare amici già registrati. Durante le Origin Trials, sono state proposte alcune nuove proprietà del Contact Picker: oltre ai precedenti nome e cognome, email e numero di telefono, è stata aggiunta la possibilità di inviare l'indirizzo postale e un'immagine.
- In Web Workers un nuovo modo di caricare moduli ECMAScript, che evita l'uso della funzione importScripts(), che blocca l'esecuzione del worker durante l'elaborazione dello script importato ed esegue il codice nel contesto globale. Il nuovo metodo prevede la creazione di moduli speciali per i Web Workers, che supportano i meccanismi standard di importazione 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 in JavaScript per la gestione di stream compressi, che non richiede l'uso di librerie esterne. Per la compressione e la decompressione, sono stati aggiunti gli API . Supporta la compressione utilizzando gli algoritmi gzip e deflate.
const compressionReadableStream
= inputReadableStream.pipeThrough(new CompressionStream(‘gzip’)); - È stata aggiunta la proprietà CSS “«, consentendo interruzioni a livello di qualsiasi carattere tipografico, comprese le interruzioni accanto ai simboli di punteggiatura, spazi predefiniti (<pre>) e all'interno delle parole. È stato inoltre aggiunto il CSS-property «» che consente di interrompere sequenze di caratteri non interrotte in qualsiasi punto, se nella stringa non è stata trovata una posizione adatta per l'interruzione.
- Per il contesto multimediale, elaborato in forma crittografata, è stato implementato il supporto per il metodo , che fornisce informazioni sulle capacità del browser relative alla decodifica di contenuti protetti (ad esempio, il metodo specificato può essere utilizzato per selezionare scenari di decodifica ad alta qualità o a basso consumo energetico, tenendo conto della larghezza di banda disponibile e della dimensione dello schermo).
- È stato aggiunto il metodo , tramite il quale è possibile ottenere informazioni sulle prestazioni della riproduzione video per regolare bitrate, risoluzione e altri parametri video.
- Nell'API , che semplifica l'integrazione con i sistemi di pagamento esistenti, è stata aggiunta la possibilità di elaborare indirizzi e informazioni di contatto a un elaboratore di pagamenti esterno (l'applicazione del sistema di pagamento potrebbe 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 un tag img viene indicato il tipo «image», per i font — «font», per gli script — «script», per gli stili — «style» e così via). In base al tipo specificato, il server può prendere provvedimenti per proteggersi da alcuni tipi di attacchi (ad esempio, è improbabile che un link a un elaboratore per inviare denaro venga fornito tramite un tag img, quindi tali richieste non devono essere elaborate).
- Nel motore JavaScript V8 nella memorizzazione dei puntatori nell'heap. Invece di memorizzare il valore completo a 64 bit, viene memorizzato solo i bit inferiori unici del puntatore. Questa ottimizzazione ha consentito di ridurre il consumo di memoria nell'heap del 40%, a fronte di una riduzione delle prestazioni del 3-8%.


- negli strumenti per gli sviluppatori web:
- Nella console web è stata aggiunta la possibilità di ridefinire le espressioni let e class.
- Sono stati migliorati gli strumenti di debug per WebAssembly. È stato aggiunto il supporto per per il debug passo-passo, l'impostazione dei punti di interruzione e l'analisi delle tracce dello stack nel codice sorgente su cui è scritto l'applicativo WebAssembly.
- Migliorata la dashboard per l'analisi dell'attività di rete. Aggiunta la possibilità di visualizzare la catena di chiamata degli script correlati all'inizializzazione della richiesta.
Aggiunte nuove colonne Path e URL, che mostrano il percorso assoluto e l'URL completo per ogni risorsa di rete. 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 interface per la configurazione della dashboard di audit.
- Nella scheda offerta la scelta di raccogliere dati di copertura per ogni funzione o per ogni blocco di codice (statistiche più dettagliate, ma richiede maggiori 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 lavoro delle applicazioni web in modalità offline) alla directory 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/). Con Chrome 82, il supporto per AppCache è previsto che venga rimosso completamente. La ragione è il desiderio di eliminare uno dei vettori per attacchi di scripting inter-sito. Si raccomanda di utilizzare l'API .
- supporto per l'API obsoleta WebVR 1.1, per la quale è possibile utilizzare l'API , che consente di accedere ai componenti per la creazione di realtà virtuale e aumentata e unifica il lavoro con diverse classi di dispositivi, dagli visori di realtà virtuale fissi a soluzioni basate su dispositivi mobili.
- I gestori di protocollo, registrati tramite i metodi registerProtocolHandler() e unregisterProtocolHandler(), ora possono funzionare solo in un contesto sicuro (accesso tramite HTTPS).
Oltre alle nuove funzionalità e alla correzione di bug, nella nuova versione sono stati risolti . Molte delle vulnerabilità sono state identificate grazie ai test automatizzati con strumenti quali , , , e . Non sono stati identificati problemi critici che permettano 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 premi per la scoperta di vulnerabilità per la versione attuale, Google ha pagato 37 premi per un totale di 48 mila dollari USA (un premio di $10000, tre premi di $5000, tre premi di $3000, quattro premi di $2000, tre premi di $1000 e sei premi di $500). L'importo di 17 premi non è ancora determinato.
Fonte: opennet.ru


