Sortie de Chrome 90

L'entreprise Google a lancé la version 90 de son navigateur web Chrome. En même temps, une version stable du projet open source Chromium, qui sert de base à Chrome, est également disponible. Le navigateur Chrome se distingue par l'utilisation de logos Google, la présence d'un système d'envoi de notifications en cas de crash, des modules pour la lecture de contenu vidéo protégé (DRM), un système de mise à jour automatique et la transmission des paramètres RLZ lors des recherches. La prochaine version de Chrome 91 est prévue pour le 25 mai.

Principales nouveautés de Chrome 90 :

  • Tous les utilisateurs peuvent désormais ouvrir des sites par défaut via HTTPS lorsqu'ils saisissent des noms d'hôtes dans la barre d'adresse. Par exemple, en entrant l'hôte example.com, le site https://example.com sera ouvert par défaut. En cas de problème à l'ouverture, un retour à http://example.com sera effectué. Pour gérer l'utilisation par défaut de « https:// », un paramètre « chrome://flags#omnibox-default-typed-navigations-to-https » est proposé.
  • Il est désormais possible d'attribuer des étiquettes différentes aux fenêtres pour les différencier visuellement dans la barre des tâches. La prise en charge du changement de nom de fenêtre facilitera l'organisation du travail en utilisant des fenêtres de navigateur distinctes pour différentes tâches, par exemple, en ouvrant des fenêtres séparées pour des tâches professionnelles, des intérêts personnels, des loisirs, des matériaux à consulter plus tard, etc. Le nom peut être changé via l'option « Ajouter un nom de fenêtre » dans le menu contextuel qui apparaît en cliquant avec le bouton droit sur une zone vide de la barre d'onglets. Après le changement de nom, dans la barre d'applications, le nom choisi s'affiche à la place du titre du site de l'onglet actif, ce qui peut être utile lors de l'ouverture de sites identiques dans différentes fenêtres, liés à des comptes séparés. Cette association est conservée entre les sessions et après le redémarrage, les fenêtres seront restaurées avec les noms choisis.
    Sortie de Chrome 90
  • Ajout de la possibilité de masquer la « Liste de lecture » sans avoir besoin de modifier les paramètres dans « chrome://flags » (« chrome://flags#read-later »). Pour masquer, il est désormais possible d'utiliser l'option « Afficher la liste de lecture » dans le bas du menu contextuel affiché lors du clic droit sur la barre des favoris. Rappelons qu'à la précédente version, pour certains utilisateurs, en cliquant sur l'étoile dans la barre d'adresse, en plus du bouton « Ajouter aux favoris », un deuxième bouton « Ajouter à la liste de lecture » apparaît, et dans le coin droit de la barre des favoris, un menu « Liste de lecture » s'affiche, répertoriant toutes les pages précédemment ajoutées à la liste. Lors de l'ouverture d'une page à partir de la liste, celle-ci est marquée comme lue. Les pages de la liste peuvent également être marquées manuellement comme lues ou non lues, ou supprimées de la liste.
  • Ajout du support de la segmentation réseau pour se protéger des méthodes de suivi des mouvements des utilisateurs entre les sites, basées sur le stockage d'identifiants dans des zones non destinées au stockage permanent d'informations (« Supercookies »). Étant donné que les ressources en cache sont stockées dans un espace de noms commun, indépendamment du domaine d'origine, un site peut déterminer le chargement des ressources d'un autre site en vérifiant la présence de cette ressource dans le cache. La protection repose sur l'application de la segmentation réseau (Network Partitioning), qui consiste à ajouter dans les caches partagés un lien supplémentaire aux enregistrements liés à un domaine, à partir duquel la page principale a été ouverte, ce qui limite la portée du cache pour les scripts de suivi des mouvements uniquement au site actuel (un script provenant d'un iframe ne pourra pas vérifier si la ressource a été chargée depuis un autre site). Le prix de la segmentation est une réduction de l'efficacité du cache, entraînant une légère augmentation du temps de chargement de la page (maximum de 1,32 %, mais pour 80 % des sites entre 0,09 et 0,75 %).
  • Liste noire des ports réseau pour lesquels l'envoi de requêtes HTTP, HTTPS et FTP est bloqué afin de se protéger contre l'attaque NAT slipstreaming, permettant d'établir une connexion réseau lors de l'ouverture d'une page web spécialement préparée par l'attaquant dans le navigateur. de serveurs Une attaque vers n'importe quel port UDP ou TCP sur le système de l'utilisateur, malgré l'utilisation d'une plage d'adresses interne (192.168.x.x, 10.x.x.x), a été mise en place. Les ports interdits incluent 554 (protocole RTSP) et 10080 (utilisé dans Amanda backup et VMWare vCenter). Auparavant, les ports 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 et 6566 avaient déjà été bloqués.
  • Ajout d'un support initial pour l'ouverture de documents PDF avec des formulaires XFA dans le navigateur.
  • Pour certains utilisateurs, une nouvelle section de paramètres a été activée dans « Chrome Settings > Privacy and security > Privacy sandbox », permettant de gérer les paramètres de l'API FLoC, visant à déterminer la catégorie d'intérêts de l'utilisateur sans identification individuelle et sans lien avec l'historique de navigation sur des sites spécifiques.
  • Un message d'alerte plus clair a été fourni, listant les actions autorisées, qui s'affiche lorsqu'un utilisateur se connecte à un profil avec gestion centralisée activée.
  • L'interface de demande de permissions a été rendue moins intrusive. Les demandes que l'utilisateur est peu susceptible d'approuver sont automatiquement bloquées avec l'affichage d'un indicateur dans la barre d'adresse, permettant à l'utilisateur de se rendre à l'interface de gestion des permissions pour chaque site.
    Sortie de Chrome 90
  • Prise en charge de l'extension Intel CET (Intel Control-flow Enforcement Technology) pour une protection matérielle contre l'exécution d'exploits utilisant des techniques de programmation orientée retour (ROP, Return-Oriented Programming).
  • Le travail de traduction du navigateur vers l'utilisation d'une terminologie inclusive a été poursuivi. Le fichier « master_preferences » a été renommé en « initial_preferences » pour ne pas blesser les sentiments des utilisateurs qui perçoivent le mot master comme une référence à l'esclavage de leurs ancêtres. Pour maintenir la compatibilité, la prise en charge de « master_preferences » restera encore un certain temps dans le navigateur. Auparavant, le navigateur s'était déjà débarrassé des termes « whitelist », « blacklist » et « native ».
  • Dans la version pour Android, l'activation du mode économique de données « Lite » réduit le débit lors du chargement de vidéos en utilisant des réseaux de télécommunications, permettant ainsi de diminuer les dépenses des utilisateurs ayant des forfaits limités en données. En mode « Lite », il y a également une compression des images demandées depuis des ressources accessibles publiquement (sans authentification) via HTTPS.
  • Un encodeur vidéo au format AV1 a été ajouté, spécialement optimisé pour les vidéoconférences basées sur le protocole WebRTC. L'utilisation d'AV1 dans les vidéoconférences augmente l'efficacité de la compression et permet la diffusion sur des canaux d'une capacité de 30 kbit/s.
  • En JavaScript, dans les objets Array, String et TypedArrays, une méthode at() a été implémentée, permettant d'utiliser une indexation relative (la position relative est renseignée comme index), y compris avec des valeurs négatives par rapport à la fin (par exemple, « arr.at(-1) » renverra le dernier élément du tableau).
  • En JavaScript, pour les expressions régulières, une propriété « .indices » a été ajoutée, contenant un tableau avec les positions de début et de fin des groupes de correspondance. Cette propriété est remplie uniquement lors de l'exécution d'une expression régulière avec le drapeau « /d ». const re = /(a)(b)/d; const m = re.exec('ab'); console.log(m.indices[0]); // 0 — tous les groupes de correspondance // → [0, 2] console.log(m.indices[1]); // 1 — premier groupe de correspondance // → [0, 1] console.log(m.indices[2]); // 2 — deuxième groupe de correspondance // → [1, 2]
  • L'optimisation des performances des propriétés « super » (par exemple, super.x) utilisant un cache inline a été réalisée. Les performances de l'utilisation de « super » sont désormais proches de celles de l'accès aux propriétés normales.
  • L'appel des fonctions WebAssembly depuis JavaScript a été considérablement accéléré grâce à l'utilisation du déploiement inline. Cette optimisation reste pour l'instant expérimentale et nécessite d'être exécutée avec le drapeau « —turbo-inline-js-wasm-calls ».
  • L'API WebXR Depth Sensing a été ajouté, permettant de déterminer la distance entre les objets dans l'environnement de l'utilisateur et l'appareil de l'utilisateur, par exemple pour créer des applications de réalité augmentée plus réalistes. Rappelons que l'API WebXR permet d'unifier le travail avec différentes classes d'appareils de réalité virtuelle, allant des casques 3D stationnaires aux solutions basées sur des appareils mobiles.
  • La capacité d'estimation de l'éclairage AR WebXR a été stabilisée, permettant de déterminer les paramètres d'éclairage environnant lors des sessions WebXR de réalité augmentée, afin de donner un aspect plus naturel aux modèles et une intégration plus harmonieuse avec l'environnement de l'utilisateur.
  • En mode Origin Trials (fonctionnalités expérimentales nécessitant une activation distincte), plusieurs nouvelles API ont été ajoutées, qui sont pour l'instant limitées à la plateforme Android. L'Origin Trial implique la possibilité d'utiliser l'API indiquée à partir d'applications chargées depuis localhost ou 127.0.0.1, ou après inscription et obtention d'un jeton spécial, valable pour une durée limitée pour un site précis.
    • La méthode getCurrentBrowsingContextMedia() permet d'organiser la capture d'un flux vidéo MediaStream, reflétant le contenu de l'onglet actuel. Contrairement à la méthode similaire getDisplayMedia(), lorsque getCurrentBrowsingContextMedia() est appelée, un simple dialogue est présenté à l'utilisateur pour confirmer ou bloquer l'opération de transmission vidéo du contenu de l'onglet.
    • L'API Insertable Streams permet de manipuler des flux multimédias bruts (raw) transmis via l'API MediaStreamTrack, tels que les données provenant de la caméra et du microphone, le résultat de la capture d'écran ou les données intermédiaires de décodage par le codec. Pour représenter des images brutes, les interfaces WebCodec sont utilisées, après quoi un flux est généré, similaire à celui que les API WebRTC Insertable Streams produisent sur la base des RTCPeerConnections. D'un point de vue pratique, la nouvelle API permet de mettre en œuvre des fonctionnalités telles que l'application de méthodes d'apprentissage automatique pour identifier ou annoter des objets en temps réel ou pour ajouter des effets comme le détourage avant l'encodage ou après le décodage par le codec.
    • La possibilité d'emballer des ressources en paquets (Web Bundle) pour une chargement plus efficace d'un grand nombre de fichiers associés (CSS, JavaScript, images, iframe). Parmi les inconvénients de la prise en charge actuelle des paquets pour les fichiers JavaScript (webpack), que Web Bundle tente de résoudre : le paquet lui-même peut être stocké dans le cache HTTP, mais pas ses composants ; la compilation et l'exécution ne peuvent commencer qu'après le téléchargement complet du paquet ; les ressources supplémentaires, comme le CSS et les images, doivent être codées sous forme de chaînes JavaScript, ce qui augmente la taille et nécessite une étape de parsing supplémentaire.
    • Prise en charge du traitement des exceptions dans WebAssembly.
  • API stabilisé Declarative Shadow DOM pour créer de nouvelles branches racines dans le Shadow DOM, par exemple pour séparer le style importé d'un élément et la sous-branche DOM associée du document principal. L'API déclarative proposée permet de se passer de JavaScript pour détacher les branches DOM simplement avec du HTML.
  • La propriété CSS aspect-ratio, qui permet de lier explicitement le ratio d'aspect à tout élément (pour calculer automatiquement la taille manquante en spécifiant uniquement la hauteur ou la largeur), a mis en œuvre la possibilité d'interpolation des valeurs lors des animations (transition fluide d'un ratio d'aspect à un autre).
  • Ajout de la possibilité de refléter l'état des éléments HTML personnalisés (custom element) dans le CSS via la pseudo-classe « :state() ». La fonctionnalité a été mise en œuvre sur le même principe que la capacité des éléments HTML natifs à changer leur état en fonction des interactions avec l'utilisateur.
  • Dans la propriété CSS « appearance », un support a été ajouté pour la valeur ‘auto’, qui est appliquée par défaut à <input type=color> et <select>, et sur la plateforme Android, en plus, à <input type=date>, <input type=datetime-local>, <input type=month>, <input type=time> et <input type=week>.
  • La propriété CSS « overflow » a été enrichie d'un nouveau paramètre « clip », permettant de couper le contenu débordant en dehors du bloc à la limite de débordement sans possibilité de défilement. La mesure définissant jusqu'où le contenu peut dépasser la frontière de fait du bloc avant le début de la découpe est spécifiée par la nouvelle propriété CSS « overflow-clip-margin ». Comparé à « overflow: hidden », l'utilisation de « overflow: clip » permet d'obtenir une performance supérieure.
    Sortie de Chrome 90Sortie de Chrome 90
  • Le nouvel en-tête Permissions-Policy a remplacé l'en-tête HTTP Feature-Policy pour gérer la délégation des pouvoirs et l'activation de fonctionnalités avancées, prenant en charge les valeurs structurées des champs (par exemple, il est désormais possible d'indiquer « Permissions-Policy: geolocation=() » au lieu de « Feature-Policy: geolocation 'none' »).
  • La protection contre l'utilisation des Protocol Buffers pour mener des attaques provoquées par l'exécution spéculative des instructions dans les processeurs a été renforcée. Cette protection est mise en œuvre par l'ajout du type MIME « application/x-protobuffer » à la liste des types MIME jamais écoutés (sniffed), dont le traitement est effectué par le mécanisme Cross-Origin-Read-Blocking. Auparavant, le type MIME « application/x-protobuf » avait déjà été ajouté à cette liste, mais le type « application/x-protobuffer » avait été omis.
  • L'API File System Access permet désormais de décaler la position actuelle dans un fichier au-delà de sa fin, en remplissant l'espace ainsi créé par des zéros lors de l'écriture subséquente via l'appel à FileSystemWritableFileStream.write(). Cette fonctionnalité permet de créer des fichiers éparpillés avec des espaces vides et simplifie considérablement l'organisation de l'écriture dans un fichier pour des flux de données entrant de manière non ordonnée (comme c'est le cas avec BitTorrent).
  • Un constructeur StaticRange a été ajouté, mettant en œuvre des types Range légers qui ne nécessitent pas la mise à jour de tous les objets associés à chaque modification de l'arbre DOM.
  • Il est désormais possible de spécifier les paramètres width et height pour les éléments <source>, indiqués à l'intérieur de l'élément <picture>. Cette possibilité permet de calculer le rapport d'aspect pour les éléments <picture>, de la même manière que cela est fait pour <img>, <canvas> et <video>.
  • Le support non standardisé des canaux de données RTP (RTP Data Channels) a été supprimé de WebRTC, et il est recommandé d'utiliser des canaux de données basés sur SCTP à la place.
  • Les propriétés navigator.plugins et navigator.mimeTypes renvoient désormais toujours une valeur vide (depuis l'abandon du support de Flash, la nécessité de ces propriétés a disparu).
  • De nombreuses améliorations mineures ont été apportées aux outils pour les développeurs web, et un nouvel outil a été ajouté pour déboguer le CSS flexbox.
    Sortie de Chrome 90

En plus des nouveautés et des corrections de bogues, la nouvelle version a corrigé 37 vulnérabilités. Bon nombre de ces vulnérabilités ont été identifiées grâce à des tests automatisés utilisant les outils AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer et AFL. Aucun problème critique permettant de contourner tous les niveaux de protection du navigateur et d'exécuter du code en dehors de l'environnement sandbox n'a été identifié. Dans le cadre du programme de récompense par des paiements pour la découverte de vulnérabilités pour cette version, Google a versé 19 primes d'un montant total de 54000 dollars (une prime de 20000 $, une prime de 10000 $, deux primes de 5000 $, trois primes de 3000 $, une prime de 2000 $, une de 1000 $ et quatre primes de 500 $). Le montant de 6 récompenses n'est pas encore défini.

Il convient de noter qu'hier, après la publication de la mise à jour corrective 89.0.4389.128, mais avant le lancement de Chrome 90, un autre exploit a été publié, exploitant une nouvelle vulnérabilité 0-day qui n'a pas été corrigée dans Chrome 89.0.4389.128. Il n'est pas encore clair si ce problème a été résolu dans Chrome 90. Comme dans le premier cas, l'exploit ne concerne qu'une seule vulnérabilité et ne contient pas de code pour contourner l'isolation sandbox (lorsque Chrome est lancé avec le drapeau « --no-sandbox », l'exploit permet d'ouvrir notepad lorsque l'on ouvre une page web sur la plateforme Windows). La vulnérabilité liée au nouvel exploit affecte la technologie WebAssembly.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster