Chrome versione 74

Google presentato versione del browser web Chrome 74... Contemporaneamente è disponibile rilascio stabile di un progetto gratuito cromo, che funge da base per Chrome. Browser Chrome diverso l'utilizzo dei loghi di Google, la possibilità di scaricare un modulo Flash su richiesta, la presenza di un sistema per l'invio di notifiche in caso di crash, moduli per la riproduzione di contenuti video protetti, un sistema per l'installazione automatica degli aggiornamenti e la trasmissione durante la ricerca parametri RLZ. La prossima release di Chrome 75 è prevista per il 4 giugno.

Il principale modifiche в Chrome 74:

  • Quando si verifica l'evento onUnload, che viene chiamato quando la pagina viene chiusa, now E 'vietato visualizzare finestre pop-up (la chiamata window.open() è bloccata), che proteggerà gli utenti dall'essere costretti ad aprire pagine pubblicitarie dopo aver chiuso siti dubbi;
  • Nel motore JavaScript implementato una nuova modalità Senza JIT (flag “—jitless”), che rende possibile eseguire JavaScript senza utilizzare JIT (viene utilizzato solo l'interprete) e senza allocare memoria eseguibile durante l'esecuzione del codice. Disabilitare JIT può essere utile per migliorare la sicurezza quando si lavora con applicazioni web potenzialmente pericolose, nonché per garantire build su piattaforme che vietano l'uso di JIT (ad esempio, iOS, alcune smart TV e console di gioco. Quando JIT è disabilitato, l'esecuzione di JavaScript le prestazioni diminuiscono del 40% nel test Speedometer 2.0 e dell'80% nel test Web Tooling Benchmark, ma simulando il lavoro con YouTube, si è verificato un calo delle prestazioni solo del 6%, mentre il consumo di memoria è leggermente diminuito, solo dell'1.7%;
  • V8 offre anche gran parte di nuove ottimizzazioni. Ad esempio, l'esecuzione delle chiamate di funzione in cui il numero di parametri effettivamente passati non corrisponde al numero di argomenti specificati durante la definizione della funzione è stata accelerata del 60%. L'accesso alle proprietà DOM tramite la funzione get è stato accelerato, il che ha un impatto positivo sulle prestazioni del framework Angular. L'analisi JavaScript è stata accelerata: l'ottimizzazione del decoder UTF-8 ha permesso di aumentare le prestazioni del parser in modalità streaming (analisi durante il caricamento) dell'8%, ed eliminando operazioni di deduplica non necessarie ha dato un aumento di un altro 10.5%;
  • È stato fatto del lavoro per ridurre il consumo di memoria del motore JavaScript.
    Aggiunto codice per svuotare la cache del bytecode, che occupa circa il 15% della dimensione heap totale. È stata aggiunta una fase al Garbage Collector per rimuovere dalla cache il bytecode compilato raramente per le funzioni utilizzate o per le funzioni chiamate solo al momento dell'inizializzazione. La decisione di ripulire viene presa sulla base di nuovi contatori che tengono conto dell'ultimo accesso al bytecode. Questa modifica ha ridotto il consumo di memoria del 5–15% senza incidere negativamente sulle prestazioni. Inoltre, il compilatore bytecode esclude la generazione di codice ovviamente inutilizzato, ad esempio, che segue return o break (se non c'è alcuna transizione Jump ad esso);

    Chrome versione 74

  • Per WebAssembly implementato supporto per thread e operazioni atomiche (API WebAssembly Threads e WebAssembly Atomics);
  • Per la consegna separata degli script, è stato aggiunto il supporto per l'intestazione "#!", che determina l'interprete da eseguire. Ad esempio, simile ad altri linguaggi di scripting, un file JavaScript potrebbe assomigliare a questo:

    #!/usr/bin/env nodo
    console.log(42);

  • Una nuova query multimediale è stata aggiunta al CSS "preferisce-movimento-ridotto“, consentendo al sito di determinare lo stato delle impostazioni del sistema operativo relative alla disattivazione degli effetti animati. Utilizzando la richiesta suggerita, il proprietario del sito может scoprire che l'utente ha disabilitato gli effetti animati e disabilitare anche varie funzionalità di animazione sul sito, ad esempio rimuovere l'effetto scuotimento dei pulsanti utilizzati per attirare l'attenzione;
  • Oltre alla possibilità di definire campi pubblici introdotti in Chrome 72 supporto implementato Contrassegnare i campi come privati, dopodiché l'accesso ai loro valori sarà aperto solo all'interno della classe. Per contrassegnare un campo come privato, aggiungi un segno "#" prima del nome del campo. Come con i campi pubblici, le proprietà private non richiedono l'uso esplicito di un costruttore.
  • È stata aggiunta l'intestazione HTTP Feature-Policy, che consente di controllare il comportamento dell'API e abilitare alcune funzionalità (ad esempio, è possibile abilitare la modalità di funzionamento sincrono di XMLHttpRequest o disabilitare l'API di geolocalizzazione). API JavaScript per controllare l'attività di determinate opportunità. Per gli sviluppatori ci sono due nuovi metodi document.featurePolicy e frame.featurePolicy, che offrono tre funzioni:
    consentitiFeatures() per ottenere un elenco di funzionalità consentite per il dominio corrente, permetteFeature() di verificare selettivamente se funzionalità specifiche sono abilitate e getAllowlistForFeature() per restituire un elenco di domini per i quali una funzionalità specificata è consentita nella pagina corrente;

  • Aggiunto supporto sperimentale (“chrome://flags#enable-text-fragment-anchor”) per la modalità Scorri fino al testo, che consente di creare collegamenti a singole parole o frasi, senza specificare esplicitamente le etichette nel documento utilizzando il tag "a name" o la proprietà "id". Per inviare un collegamento viene offerto un parametro speciale "#targetText=", in cui è possibile specificare il testo per la transizione. È consentito specificare una maschera che includa frasi che indicano l'inizio e la fine del frammento utilizzando una virgola come separatore (ad esempio, “example.com#targetText=start%20words, end%20words”);
  • È stata aggiunta un'opzione al costruttore AudioContext frequenza di campionamento, che consente di impostare la frequenza di campionamento per le operazioni audio tramite l'API Web Audio;
  • Aggiunto supporto per le classi Locale internazionale, che fornisce metodi per analizzare ed elaborare i parametri di lingua, regione e stile impostati dalle impostazioni locali, nonché per leggere e scrivere tag di estensione Unicode, salvando le impostazioni locali dell'utente in un formato serializzato;
  • Механизм Scambi HTTP firmati (SXG) ampliato con strumenti per informare distributori di contenuti su errori nel download di contenuti firmati, come problemi con la verifica del certificato. La gestione degli errori viene eseguita tramite estensioni API Registrazione degli errori di rete. Ricordiamo che SXG permette il proprietario di un sito, mediante firma digitale, autorizza il posizionamento di alcune pagine su un altro sito, dopodiché, se si accede a queste pagine su un secondo sito, il browser mostrerà all'utente l'URL del sito originale, nonostante che la pagina è stata caricata da un host diverso;
  • È stato aggiunto un metodo alla classe TextEncoder codificaInto(), che consente di scrivere una stringa codificata direttamente in un buffer preallocato. Il metodo encodeInto() è un'alternativa ad alte prestazioni al metodo encode(), che richiede l'esecuzione di un'operazione di allocazione del buffer a ogni accesso.
  • Nel lavoratore di servizio purché buffering della chiamata client.postMessage() finché il documento non è pronto. I messaggi inviati tramite client.postMessage() verranno trattenuti finché non viene generato l'evento DOMContentLoaded, non viene impostato onmessage o non viene chiamato startMessages();
  • Come richiesto dalle specifiche CSS Transitions aggiunto eventi transizionerun, transizionecancel, transizioneinizio e transizioneend generati quando una transizione CSS viene accodata, annullata, avvia o termina l'esecuzione.
  • Quando si specifica una codifica di caratteri errata tramite overrideMimeType() o tipo MIME per un XMLHttpRequest, ora torna a UTF-8 anziché a Latin-1;
  • La proprietà “allow-downloads-without-user-activation”, attraverso la quale era possibile scaricare automaticamente i file durante l'elaborazione degli iframe, è stata deprecata e verrà rimossa in una futura release. In futuro, l'avvio del download di file senza un'azione esplicita da parte dell'utente sarà vietato, poiché è stato utilizzato attivamente per abusi, forzatura dei download e inserimento di parti di malware nel computer dell'utente. Per avviare il download sarà necessario che l'utente faccia clic sulla stessa pagina. Inizialmente era prevista la rimozione della proprietà in Chrome 74, ma la rimozione è stata rinviato fino a Chrome 76.
  • Per la piattaforma Windows è disponibile un tema scuro opzionale per la progettazione dell'interfaccia (nella versione precedente era preparato un tema scuro per macOS). Poiché il design scuro è quasi identico al design in modalità di navigazione in incognito, è stato aggiunto un indicatore speciale al posto dell'icona del profilo utente per evidenziare la modalità operativa privata;
  • È stata aggiunta un'opportunità per gli utenti aziendali Gestione cloud del browser Chrome gestire le impostazioni del browser dell'utente tramite la Console di amministrazione Google;

    Chrome versione 74

Oltre alle innovazioni e alle correzioni di bug, la nuova versione elimina 39 vulnerabilità. Molte delle vulnerabilità sono state identificate come risultato di test automatizzati con strumenti IndirizzoSanitizer, Disinfettante per la memoria, Integrità del flusso di controllo, LibFuzzer и AFL. Non sono stati identificati problemi critici che consentano di aggirare tutti i livelli di protezione del browser ed eseguire codice sul sistema al di fuori dell'ambiente sandbox. Nell'ambito del programma di pagamento di premi in denaro per la scoperta di vulnerabilità per la versione attuale, Google ha pagato 19 premi per un importo di 26837 dollari (quattro premi da 3000 dollari, quattro premi da 2000 dollari, un premio da 1337 dollari, quattro premi da 1000 dollari, tre premi da 500 dollari). L'entità delle 4 ricompense non è stata ancora determinata.

Fonte: opennet.ru

Aggiungi un commento