Chrome Version 74

Google présenté version du navigateur Web Chrome 74... Simultanément est disponible version stable d'un projet libre Chrome, qui est la base de Chrome. Navigateur Chrome différent l'utilisation des logos Google, la possibilité de télécharger un module Flash sur demande, la présence d'un système d'envoi de notifications en cas de crash, des modules de lecture de contenus vidéo protégés, un système d'installation automatique des mises à jour et de transmission lors de la recherche Paramètres RLZ. La prochaine version de Chrome 75 est prévue pour le 4 juin.

principal changements в Chrome 74:

  • Lorsque l'événement onUnload se produit, qui est appelé lorsque la page est fermée, maintenant Il est interdit afficher des fenêtres pop-up (l'appel window.open() est bloqué), ce qui protégera les utilisateurs contre l'obligation d'ouvrir des pages publicitaires après la fermeture de sites douteux ;
  • Dans le moteur JavaScript mis en œuvre il y a un nouveau mode Sans JIT (drapeau « —jitless »), qui permet d'exécuter du JavaScript sans utiliser JIT (seul l'interpréteur est utilisé) et sans allouer de mémoire exécutable lors de l'exécution du code. La désactivation de JIT peut être utile pour améliorer la sécurité lorsque vous travaillez avec des applications Web potentiellement dangereuses, ainsi que pour garantir des builds sur des plates-formes qui interdisent l'utilisation de JIT (par exemple, iOS, certains téléviseurs intelligents et consoles de jeux. Lorsque JIT est désactivé, l'exécution de JavaScript les performances diminuent de 40 % dans le test Speedometer 2.0 et de 80 % dans le test Web Tooling Benchmark, mais lors de la simulation du travail avec YouTube, il n'y a eu qu'une diminution des performances de 6 %, tandis que la consommation de mémoire a légèrement diminué, de seulement 1.7 % ;
  • La V8 propose également une grande partie de nouvelles optimisations. Par exemple, l'exécution d'appels de fonctions dans lesquels le nombre de paramètres réellement passés ne correspond pas au nombre d'arguments spécifiés lors de la définition de la fonction a été accélérée de 60 %. L'accès aux propriétés DOM à l'aide de la fonction get a été accéléré, ce qui a un impact positif sur les performances du framework Angular. L'analyse JavaScript a été accélérée : l'optimisation du décodeur UTF-8 a permis d'augmenter les performances de l'analyseur en mode streaming (analyse au fur et à mesure du chargement) de 8 %, et l'élimination des opérations de déduplication inutiles a donné une augmentation de 10.5 % supplémentaires ;
  • Des travaux ont été effectués pour réduire la consommation mémoire du moteur JavaScript.
    Ajout de code pour vider le cache du bytecode, qui occupe environ 15 % de la taille totale du tas. Une étape a été ajoutée au garbage collector pour expulser du cache le bytecode rarement compilé pour les fonctions utilisées ou les fonctions appelées uniquement lors de l'initialisation. La décision de nettoyage est prise sur la base de nouveaux compteurs qui prennent en compte la date du dernier accès au bytecode. Ce changement a réduit la consommation de mémoire de 5 à 15 % sans impact négatif sur les performances. De plus, le compilateur de bytecode exclut la génération de code manifestement inutilisé, par exemple, qui suit return ou break (s'il n'y a pas de transition Jump vers celui-ci) ;

    Chrome Version 74

  • Pour WebAssembly mis en œuvre prise en charge des threads et des opérations atomiques (API WebAssembly Threads et WebAssembly Atomics) ;
  • Pour la livraison séparée des scripts, la prise en charge de l'en-tête « # ! » a été ajoutée, qui détermine l'interpréteur à exécuter. Par exemple, comme dans d'autres langages de script, un fichier JavaScript peut ressembler à ceci :

    #!/usr/bin/env nœud
    console.log(42);

  • Une nouvelle requête multimédia a été ajoutée au CSS "préfère les mouvements réduits», permettant au site de déterminer l’état des paramètres du système d’exploitation liés à la désactivation des effets animés. À l'aide de la demande suggérée, le propriétaire du site может découvrir que l'utilisateur a désactivé les effets animés et également désactiver diverses fonctionnalités d'animation sur le site, par exemple, supprimer l'effet de tremblement des boutons utilisés pour attirer l'attention ;
  • En plus de la possibilité de définir des champs publics introduite dans Chrome 72 soutien mis en œuvre Marquage des champs comme privés, après quoi l'accès à leurs valeurs ne sera ouvert qu'au sein de la classe. Pour marquer un champ comme privé, ajoutez un signe « # » avant le nom du champ. Comme pour les champs publics, les propriétés privées ne nécessitent pas l'utilisation explicite d'un constructeur.
  • L'en-tête HTTP Feature-Policy, qui permet de contrôler le comportement de l'API et d'activer certaines fonctionnalités (par exemple, vous pouvez activer le mode de fonctionnement synchrone de XMLHttpRequest ou désactiver l'API de géolocalisation), a été ajouté API JavaScript pour contrôler l'activité de certaines opportunités. Pour les développeurs, il existe deux nouvelles méthodes document.featurePolicy et frame.featurePolicy, offrant trois fonctions :
    AllowedFeatures() pour obtenir une liste des fonctionnalités autorisées pour le domaine actuel, makesFeature() pour vérifier sélectivement si des fonctionnalités spécifiques sont activées et getAllowlistForFeature() pour renvoyer une liste de domaines pour lesquels une fonctionnalité spécifiée est autorisée sur la page actuelle ;

  • Ajout du support expérimental (« chrome://flags#enable-text-fragment-anchor ») pour le mode Faire défiler vers le texte, qui vous permet de créer des liens vers des mots ou des phrases individuels, sans spécifier explicitement d'étiquettes dans le document à l'aide de la balise « a name » ou de la propriété « id ». Pour envoyer un lien, un paramètre spécial « #targetText= » est proposé, dans lequel vous pouvez spécifier le texte de la transition. Il est permis de spécifier un masque qui comprend des phrases indiquant le début et la fin du fragment en utilisant une virgule comme séparateur (par exemple, « example.com#targetText=start%20words, end%20words ») ;
  • Une option a été ajoutée au constructeur AudioContext taux d'échantillonnage, qui vous permet de définir la fréquence d'échantillonnage des opérations audio via l'API Web Audio ;
  • Prise en charge des classes ajoutée Localisation internationale, qui fournit des méthodes pour analyser et traiter les paramètres de langue, de région et de style définis par les paramètres régionaux, ainsi que pour lire et écrire des balises d'extension Unicode, en enregistrant les paramètres régionaux de l'utilisateur dans un format sérialisé ;
  • Mécanisme Échanges HTTP signés (SXG) étendu avec des outils pour informer aux distributeurs de contenu les erreurs de téléchargement de contenu signé, telles que les problèmes de vérification des certificats. La gestion des erreurs se fait via des extensions API Journalisation des erreurs réseau. Rappelons que SXG il permet le propriétaire d'un site, à l'aide d'une signature numérique, autorise le placement de certaines pages sur un autre site, après quoi, si ces pages sont consultées sur un deuxième site, le navigateur montrera à l'utilisateur l'URL du site d'origine, malgré le fait que la page a été chargée à partir d'un autre hôte ;
  • Une méthode a été ajoutée à la classe TextEncoder encodeInto(), qui vous permet d'écrire une chaîne codée directement dans un tampon pré-alloué. La méthode encodeInto() est une alternative hautes performances à la méthode encode(), qui nécessite qu'une opération d'allocation de tampon soit effectuée à chaque accès.
  • Travailleur de service à condition mettre en mémoire tampon l'appel client.postMessage() jusqu'à ce que le document soit prêt. Les messages envoyés via client.postMessage() seront conservés jusqu'à ce que l'événement DOMContentLoaded soit déclenché, que onmessage soit défini ou que startMessages() soit appelé ;
  • Comme l'exige la spécification CSS Transitions ajoutée Événements transitionrun, transitioncancel, transitionstart et transitionend générés lorsqu'une transition CSS est mise en file d'attente, annulée, démarre ou termine son exécution.
  • Lorsque vous spécifiez un codage de caractères incorrect via overrideMimeType() ou le type MIME pour un XMLHttpRequest, il revient désormais à UTF-8 au lieu de Latin-1 ;
  • La propriété « allow-downloads-without-user-activation », grâce à laquelle il était possible de télécharger automatiquement des fichiers lors du traitement des iframes, est obsolète et sera supprimée dans une prochaine version. À l'avenir, le lancement de téléchargements de fichiers sans action explicite de l'utilisateur sera interdit, car il a été activement utilisé à des fins abusives, forçant les téléchargements et insérant des parties de logiciels malveillants sur l'ordinateur de l'utilisateur. Un clic de l'utilisateur sur la même page sera nécessaire pour démarrer le téléchargement. La propriété devait initialement être supprimée dans Chrome 74, mais la suppression a été reporté jusqu'à Chrome 76.
  • Un thème sombre en option pour la conception de l'interface est proposé pour la plate-forme Windows (dans la version précédente, un thème sombre avait été préparé pour macOS). Étant donné que le design sombre est presque identique au design en mode navigation privée, un indicateur spécial a été ajouté à la place de l'icône de profil utilisateur pour mettre en évidence le mode de fonctionnement privé ;
  • Une opportunité a été ajoutée pour les utilisateurs professionnels Gestion cloud du navigateur Chrome pour gérer les paramètres du navigateur de l'utilisateur via la console d'administration Google ;

    Chrome Version 74

En plus des innovations et des corrections de bogues, la nouvelle version élimine 39 vulnérabilités. De nombreuses vulnérabilités ont été identifiées grâce à des outils de test automatisés AdresseSanitizer, Désinfectant pour la mémoire, Intégrité du flux de contrôle, LibFuzzer и AFL. Aucun problème critique n'a été identifié qui permettrait de contourner tous les niveaux de protection du navigateur et d'exécuter du code sur le système en dehors de l'environnement sandbox. Dans le cadre du programme de récompense en espèces pour la découverte de vulnérabilités dans la version actuelle, Google a payé 19 récompenses d'un montant de 26837 3000 $ (quatre récompenses de 2000 1337 $, quatre récompenses de 1000 500 $, une récompense de 4 XNUMX $, quatre récompenses de XNUMX XNUMX $, trois récompenses de XNUMX $). La taille des XNUMX récompenses n’a pas encore été déterminée.

Source: opennet.ru

Ajouter un commentaire