Rilascio di Chrome 74

Azienda Google ha presentato rilascio del browser web Chrome 74. In contemporanea disponibile uscita stabile di un progetto open source Chromium, che funge da base per Chrome. Il browser Chrome si distingue utilizzando i loghi di Google, con la possibilità di caricare il modulo Flash su richiesta, la presenza di un sistema di invio di notifiche in caso di crash, moduli per la riproduzione di contenuti video protetti, un sistema di installazione automatica degli aggiornamenti e la trasmissione durante la ricerca parametri RLZ. Il prossimo rilascio di Chrome 75 è previsto per il 4 giugno.

Principali cambiamenti in Chrome 74:

  • In caso di evento onUnload, attivato alla chiusura della pagina, ora è vietato mostrare finestre popup (la chiamata a window.open() è bloccata), il che proteggerà gli utenti dall'apertura forzata di pagine pubblicitarie dopo la chiusura di siti discutibili;
  • Nel motore JavaScript è stata implementata è stata introdotta una nuova modalità JIT-less (flag «—jitless»), che consente di 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 durante l'uso di applicazioni web potenzialmente pericolose, nonché per garantire le build su piattaforme che vietano l'uso di JIT (ad es. in iOS, su alcune Smart TV e console di gioco). Disabilitando JIT, le prestazioni di esecuzione di JavaScript diminuiscono del 40% nel test Speedometer 2.0 e dell'80% nel test Web Tooling Benchmark, ma durante la simulazione dell'uso di YouTube si è notato un calo della performance solo del 6%. Il consumo di memoria diminuisce solo leggermente, di appena l'1.7%;
  • In V8 è anche stata proposta una maggiore serie di nuove ottimizzazioni. Ad esempio, è stato accelerato del 60% l'esecuzione delle chiamate di funzioni in cui il numero di parametri effettivamente passati non corrisponde al numero di argomenti specificato nella definizione della funzione. L'accesso alle proprietà del DOM è stato accelerato grazie alla funzione get, il che ha avuto un impatto positivo sulle prestazioni del framework Angular. È stata migliorata l'analisi di JavaScript: l'ottimizzazione del decodificatore UTF-8 ha consentito un incremento delle prestazioni del parser in modalità streaming (analisi durante il caricamento) dell'8%, e l'esclusione di operazioni di deduplicazione superflue ha portato un ulteriore guadagno del 10.5%;
  • È stato svolto un lavoro per ridurre il consumo di memoria del motore JavaScript.
    È stato aggiunto un codice per la pulizia della cache del bytecode, che occupa circa il 15% dell'intera dimensione della heap. È stata aggiunta una fase al garbage collector per espellere dalla cache i bytecode raramente compilati per le funzioni utilizzate o quelle chiamate solo durante l'inizializzazione. La decisione di pulire viene presa in base a nuovi contatori che considerano l'ultima volta di accesso al bytecode. La modifica indicata ha permesso di ridurre il consumo di memoria del 5–15% senza influire negativamente sulle prestazioni. Inoltre, nel compilatore del bytecode è stata esclusa la generazione di codice chiaramente non utilizzato, ad esempio, quello che segue un return o un break (se non c'è un Jump);

    Rilascio di Chrome 74
  • Per WebAssembly è stata implementata supporto per i thread e le operazioni atomiche (API WebAssembly Threads e WebAssembly Atomics);
  • Per la fornitura isolata degli script è stato aggiunto il supporto per l'intestazione «#!», che definisce l'interprete da utilizzare per l'esecuzione. Ad esempio, analogamente ad altri linguaggi di script, un file JavaScript potrebbe apparire simile a questo:

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

  • In CSS è stata aggiunta una nuova media query «prefers-reduced-motion», che consente al sito di determinare lo stato delle impostazioni nel sistema operativo relative alla disattivazione degli effetti animati. Utilizzando la query proposta, il proprietario del sito può può scoprire se l'utente ha disattivato gli effetti animati e disattivare anche varie possibilità di animazione sul sito, come ad esempio rimuovere l'effetto di tremolii sui pulsanti utilizzati per attirare attenzione;
  • In aggiunta alla possibilità di definire campi pubblici introdotta in Chrome 72, è stata implementata la supporto per la marcatura dei campi come privati, dopo di che l'accesso ai loro valori sarà aperto solo all'interno della classe. Per marcare un campo come privato è necessario anteporre al nome del campo il simbolo «#». Come nel caso dei campi pubblici, le proprietà private non richiedono l'uso esplicito del costruttore.
  • L'intestazione HTTP Feature-Policy, che consente di controllare il comportamento delle API e l'attivazione di determinate funzionalità (ad esempio, è possibile attivare la modalità sincrona di XMLHttpRequest o disattivare il Geolocation API), è stata ampliata JavaScript API per il controllo dell'attività di determinate funzionalità. Per gli sviluppatori sono stati proposti due nuovi metodi document.featurePolicy e frame.featurePolicy, che offrono tre funzioni:
    allowedFeatures() per ottenere un elenco delle funzioni consentite per il dominio attuale, allowsFeature() per la verifica selettiva dell'attivazione di specifiche funzionalità e getAllowlistForFeature() per restituire un elenco di domini per cui la funzionalità specificata è consentita nella pagina corrente;
  • Aggiunta la supporto sperimentale ("chrome://flags#enable-text-fragment-anchor") alla modalità Scroll-To-Text, che consente di generare collegamenti su singole parole o frasi, senza indicare esplicitamente nel documento etichette tramite il tag «a name» o la proprietà «id». Per trasmettere il collegamento si offre un parametro speciale «#targetText=», nel quale è possibile specificare il testo per il passaggio. È consentita l'indicazione di una maschera che include frasi che indicano l'inizio e la fine del frammento usando la virgola come separatore (ad esempio, «example.com#targetText=startwords, endwords»);
  • Nel costruttore AudioContext è stata aggiunta l'opzione sampleRate, che consente di impostare la frequenza di campionamento per le operazioni audio tramite Web Audio API;
  • Aggiunto il supporto per la classe Intl.Locale, che fornisce metodi per l'analisi e la gestione dei parametri di lingua, regione e scrittura impostati dalla località, così come per la lettura e la registrazione dei tag di estensione Unicode, memorizzando le impostazioni locali personalizzate in un formato serializzato;
  • Il meccanismo Signed HTTP Exchanges (SXG) è stato ampliato con strumenti per di informazione i distributori di contenuti per errori nel caricamento di contenuti firmati, come problemi di verifica dei certificati. La gestione degli errori avviene attraverso l'estensione API Network Error Logging. Ricordiamo che SXG consente permette al proprietario di un sito di autorizzare la pubblicazione di determinate pagine su un altro sito tramite firma digitale, dopo di che, in caso di accesso a queste pagine sul secondo sito, il browser mostrerà all'utente l'URL del sito originale, nonostante la pagina sia stata caricata da un altro host;
  • Nella classe TextEncoder è stato aggiunto il metodo encodeInto(), che consente di scrivere direttamente la stringa codificata in un buffer precedentemente allocato. Il metodo encodeInto() è un'alternativa ad alte prestazioni rispetto al metodo encode(), che richiede un'operazione di allocazione del buffer ad ogni chiamata.
  • Nel Service worker è garantita bufferizzazione della chiamata client.postMessage() fino al momento in cui il documento è pronto. I messaggi inviati tramite client.postMessage() verranno mantenuti fino alla fase di generazione dell'evento DOMContentLoaded, impostazione di onmessage o chiamata di startMessages();
  • In conformità con i requisiti della specifica CSS Transitions aggiunti gli eventi transitionrun, transitioncancel, transitionstart e transitionend, generati quando una transizione CSS è messa in coda, annullata, avviata o completata.
  • Quando si specifica un tipo MIME errato tramite overrideMimeType() o una codifica dei caratteri per la richiesta XMLHttpRequest, ora viene effettuato un rollback a UTF-8 invece di Latin-1;
  • La proprietà «allow-downloads-without-user-activation» è stata dichiarata obsoleta e sarà rimossa in uno dei prossimi rilasci, attraverso la quale era possibile organizzare il download automatico di file durante l'elaborazione di iframe. In futuro, l'inizio del download di file senza un'azione esplicita dell'utente sarà vietato, poiché è stato attivamente abusato per forzare download e inserire parti di malware sui computer degli utenti. Per avviare un download sarà necessario un clic dell'utente sulla stessa pagina. Inizialmente, si prevedeva di rimuovere la proprietà in Chrome 74, ma la rimozione è avvenuta è stata posticipata fino a Chrome 76.
  • Per la piattaforma Windows è stato proposto un tema scuro opzionale per l'interfaccia (nel rilascio precedente era stato preparato un tema scuro per macOS). Poiché il tema scuro è praticamente identico al design in modalità incognito, per evidenziare la modalità di lavoro privata è stato aggiunto un indicatore speciale al posto dell'icona del profilo utente;
  • Per gli utenti aziendali è stata aggiunta la possibilità di Chrome Browser Cloud Management per gestire le impostazioni dei browser degli utenti tramite la console di Google Admin;

    Rilascio di Chrome 74

Oltre alle nuove funzionalità e alla correzione di bug, nella nuova versione sono stati risolti 39 vulnerabilità. Molte delle vulnerabilità sono state identificate grazie ai test automatizzati con strumenti quali AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer e AFL. Non sono state identificate problematiche critiche che consentano di bypassare 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 19 premi per un totale di 26.837 dollari (quattro premi da 3.000 dollari, quattro premi da 2.000 dollari, un premio da 1.337 dollari, quattro premi da 1.000 dollari, tre premi da 500 dollari). L'importo di 4 premi deve ancora essere determinato.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster