La société Google a lancé la version 93 de son navigateur web Chrome. En parallÚle, la version stable du projet open-source Chromium, qui sert de base à Chrome, est également disponible. Le navigateur Chrome se distingue par l'utilisation des logos de Google, la présence d'un systÚme d'envoi de notifications en cas de plantage, des modules pour la lecture de contenus vidéo protégés (DRM), un systÚme de mise à jour automatique et le transfert des paramÚtres RLZ lors de la recherche. La prochaine version, Chrome 94, est prévue pour le 21 septembre (le développement a été transféré sur un cycle de 4 semaines pour la publication des versions).
Principales modifications de Chrome 93 :
- L'interface du bloc d'informations sur la page (page info) a été modernisée, intégrant la prise en charge de blocs imbriqués et remplaçant les listes déroulantes de droits d'accÚs par des interrupteurs. Les listes affichent prioritairement les informations les plus importantes. Ce changement n'est pas disponible pour tous les utilisateurs ; pour l'activer, vous pouvez utiliser le paramÚtre « chrome://flags/#page-info-version-2-desktop ».

- Pour un petit pourcentage d'utilisateurs, Ă titre d'expĂ©rimentation, l'indicateur de connexion sĂ©curisĂ©e dans la barre d'adresse a Ă©tĂ© remplacĂ© par un symbole plus neutre qui ne prĂȘte pas Ă confusion (le cadenas a Ă©tĂ© remplacĂ© par un signe « V »). Pour les connexions Ă©tablies sans cryptage, l'indicateur « non sĂ©curisĂ© » continue d'ĂȘtre affichĂ©. La raison de ce changement est que de nombreux utilisateurs associent l'indicateur de cadenas Ă la fiabilitĂ© du contenu du site, plutĂŽt qu'Ă un indicateur de cryptage de la connexion. Selon un sondage de Google, seulement 11 % des utilisateurs comprennent la signification de l'icĂŽne en forme de cadenas.

- Dans la liste des onglets rĂ©cemment fermĂ©s, le contenu des groupes d'onglets fermĂ©s est dĂ©sormais affichĂ© (auparavant, seule le nom du groupe Ă©tait montrĂ© sans dĂ©tailler le contenu), avec la possibilitĂ© de restaurer soit l'ensemble du groupe, soit des onglets individuels du groupe. Cette fonctionnalitĂ© n'est pas activĂ©e pour tous les utilisateurs, il peut donc ĂȘtre nĂ©cessaire de modifier le paramĂštre « chrome://flags/#tab-restore-sub-menus » pour l'activer.

- De nouvelles options DefaultJavaScriptJitSetting, JavaScriptJitAllowedForSites et JavaScriptJitBlockedForSites ont Ă©tĂ© mises en Ćuvre pour les entreprises, permettant de gĂ©rer le mode JIT-less, qui dĂ©sactive l'utilisation de la compilation JIT lors de l'exĂ©cution de JavaScript (seulement l'interprĂ©teur Ignition est utilisĂ©) et interdit l'allocation de mĂ©moire exĂ©cutable pendant l'exĂ©cution du code. DĂ©sactiver JIT peut ĂȘtre utile pour amĂ©liorer la sĂ©curitĂ© lors de l'utilisation d'applications web potentiellement dangereuses, au prix d'une baisse de performance de l'exĂ©cution de JavaScript d'environ 17 %. Notamment, Microsoft est allĂ© encore plus loin en mettant en Ćuvre dans le navigateur Edge un mode expĂ©rimental « Super Duper Secure », permettant Ă l'utilisateur de dĂ©sactiver JIT et d'activer des mĂ©canismes de protection matĂ©riels incompatibles avec JIT tels que CET (Controlflow-Enforcement Technology), ACG (Arbitrary Code Guard) et CFG (Control Flow Guard) pour les processus traitant le contenu web. Si l'expĂ©rience s'avĂšre concluante, on peut s'attendre Ă son intĂ©gration dans la version principale de Chrome.
- La page de nouvel onglet affiche une liste des documents les plus demandés, enregistrés dans Google Drive. Le contenu de la liste correspond à la section Priorité sur drive.google.com. Pour gérer l'affichage du contenu de Google Drive, vous pouvez utiliser les paramÚtres « chrome://flags/#ntp-modules » et « chrome://flags/#ntp-drive-module ».

- De nouvelles cartes d'information sont proposées pour la page d'ouverture de nouvel onglet, aidant à retrouver le contenu récemment consulté et les informations associées. Ces cartes visent à faciliter la reprise du travail avec des informations dont la consultation a été interrompue, par exemple, elles aideront à retrouver une recette de plat récemment trouvée en ligne, mais perdue aprÚs la fermeture de la page, ou à continuer ses choix d'achats dans les magasins. à titre d'expérimentation, deux nouvelles cartes sont proposées aux utilisateurs : « Recettes » (chrome://flags/#ntp-recipe-tasks-module) pour rechercher des recettes culinaires et afficher les recettes récemment consultées ; « Achats » (chrome://flags/#ntp-chrome-cart-module) pour rappeler les articles sélectionnés dans les boutiques en ligne.
- La version pour la plateforme Android a ajoutĂ© un support optionnel pour le panneau de recherche continue (chrome://flags/#continuous-search), permettant de garder Ă l'Ćil les rĂ©sultats de recherche rĂ©cents sur Google (le panneau continue d'afficher les rĂ©sultats aprĂšs la navigation vers d'autres pages).

- La version pour la plateforme Android introduit un mode expérimental de partage de citations (chrome://flags/#webnotes-stylize), permettant de conserver un extrait sélectionné de la page sous forme de citation et de le partager avec d'autres utilisateurs.
- Lors de la publication de nouvelles extensions ou de mises à jour dans le Chrome Web Store, l'application de la vérification en deux étapes pour les développeurs est désormais obligatoire.
- Pour les utilisateurs de Google Account, une option a été mise à disposition pour sauvegarder les informations de paiement dans leur compte Google.
- En mode incognito, si l'option de nettoyage des donnĂ©es de navigation est activĂ©e, un nouveau dialogue de confirmation a Ă©tĂ© introduit, expliquant que le nettoyage des donnĂ©es entraĂźnera la fermeture de la fenĂȘtre et la fin de toutes les sessions en mode incognito.
- En raison d'incompatibilités détectées avec le firmware de certains appareils, le support de la nouvelle méthode de négociation de clés introduite dans Chrome 91, résistante à la recherche par ordinateur quantique, a été temporairement désactivé. Cette méthode est basée sur l'utilisation de l'extension CECPQ2 (Combined Elliptic-Curve and Post-Quantum 2) dans TLSv1.3, qui combine le mécanisme classique d'échange de clés X25519 avec le schéma HRSS, conçu pour les systÚmes cryptographiques post-quantiques.
- Les ports réseau 989 (ftps-data) et 990 (ftps) ont été ajoutés à la liste des ports interdits afin de bloquer l'attaque ALPACA. Auparavant, pour se protéger contre l'attaque NAT slipstreaming, les ports 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061, 6566 et 10080 avaient déjà été bloqués.
- Le support des chiffres basĂ©s sur l'algorithme 3DES a Ă©tĂ© arrĂȘtĂ© dans TLS. En particulier, le chiffre TLS_RSA_WITH_3DES_EDE_CBC_SHA, vulnĂ©rable Ă l'attaque Sweet32, a Ă©tĂ© retirĂ©.
- Le support de la distribution Ubuntu 16.04 a Ă©tĂ© arrĂȘtĂ©.
- Une possibilité d'utiliser l'API WebOTP entre différents appareils liés par un compte Google commun a été introduite. WebOTP permet à une application web de lire des codes de confirmation uniques envoyés par SMS. Le changement proposé permet d'obtenir le code de confirmation sur un appareil mobile avec Chrome pour Android et de l'appliquer sur un systÚme de bureau.
- L'API User-Agent Client Hints, dĂ©veloppĂ©e comme un remplacement de l'en-tĂȘte User-Agent, a Ă©tĂ© Ă©tendue. User-Agent Client Hints permet de fournir sĂ©lectivement des informations sur des caractĂ©ristiques spĂ©cifiques du navigateur et du systĂšme (version, plateforme, etc.) uniquement aprĂšs demande. serveurL'utilisateur, pour sa part, peut dĂ©finir quelles informations peuvent ĂȘtre fournies aux propriĂ©taires de sites Web. Lors de l'utilisation des informations client User-Agent, l'identifiant du navigateur n'est pas transmis sans demande explicite, et par dĂ©faut, seuls les paramĂštres de base sont indiquĂ©s, ce qui complique l'identification passive.
La nouvelle version implĂ©mente le support du paramĂštre Sec-CH-UA-Bitness pour retourner des donnĂ©es sur l'architecture de la plateforme, ce qui peut ĂȘtre utilisĂ© pour fournir des fichiers binaires optimisĂ©s. Par dĂ©faut, il y a l'envoi du paramĂštre Sec-CH-UA-Platform avec des informations gĂ©nĂ©rales sur la plateforme. Dans la valeur UADataValues, retournĂ©e lors de l'appel Ă getHighEntropyValues(), par dĂ©faut, sont fournies des informations gĂ©nĂ©ralisĂ©es si une version dĂ©taillĂ©e ne peut pas ĂȘtre retournĂ©e. Dans l'objet NavigatorUAData, une mĂ©thode toJSON a Ă©tĂ© ajoutĂ©e, permettant d'utiliser des constructions comme JSON.stringify(navigator.userAgentData).
- La possibilitĂ© de regrouper les ressources en paquets au format Web Bundle a Ă©tĂ© stabilisĂ©e et est proposĂ©e par dĂ©faut, ce qui est appropriĂ© pour faciliter le chargement efficace d'un grand nombre de fichiers associĂ©s (styles 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 : dans le cache HTTP, c'est le paquet lui-mĂȘme qui peut se dĂ©poser, mais pas ses composants ; la compilation et l'exĂ©cution ne peuvent commencer qu'aprĂšs le chargement complet du paquet ; les ressources supplĂ©mentaires, telles que CSS et images, doivent ĂȘtre codĂ©es sous forme de chaĂźnes JavaScript, ce qui entraĂźne une augmentation de la taille et l'exĂ©cution d'une autre Ă©tape d'analyse.
- L'API WebXR Plane Detection est activée, fournissant des informations sur des surfaces planes dans un environnement 3D virtuel. L'API mentionnée permet de se passer d'un traitement de données gourmande en ressources, obtenu par l'appel à MediaDevices.getUserMedia(), en utilisant des implémentations propres d'algorithmes de vision par ordinateur. Rappelons que l'API WebXR permet d'uniformiser le fonctionnement avec différentes classes d'appareils de réalité virtuelle, allant des casques 3D stationnaires aux solutions mobiles.
- En mode Origin Trials (fonctionnalités expérimentales nécessitant une activation distincte), plusieurs nouvelles API ont été ajoutées. L'Origin Trial permet aux applications chargées depuis localhost ou 127.0.0.1 d'accéder à l'API spécifiée, ou d'accéder à l'API aprÚs enregistrement et obtention d'un jeton spécial, valable pour une durée limitée pour un site spécifique.
- Une API Multi-Screen Window Placement a Ă©tĂ© proposĂ©e, permettant de placer des fenĂȘtres sur n'importe quel Ă©cran connectĂ© au systĂšme actuel, tout en conservant la position de la fenĂȘtre et en pouvant Ă©ventuellement l'agrandir en plein Ă©cran. Par exemple, grĂące Ă cette API, une application web de prĂ©sentation peut organiser l'affichage des diapositives sur un Ă©cran, tout en montrant les notes pour le prĂ©sentateur sur un autre.
- Le header Cross-Origin-Embedder-Policy, qui régule le mode d'isolation Cross-Origin et permet de définir des rÚgles d'utilisation sécurisée de certaines opérations privilégiées sur la page, a été enrichi de la prise en charge du paramÚtre « credentialless » pour désactiver la transmission d'informations relatives aux identifiants, telles que les cookies et les certificats clients.
- Un overlay avec des Ă©lĂ©ments de contrĂŽle de fenĂȘtre, tels qu'une zone d'en-tĂȘte et des boutons d'extension/repli de la fenĂȘtre, a Ă©tĂ© instituĂ© pour les applications web installables de maniĂšre autonome (PWA, Progressive Web Apps) qui gĂšrent le rendu du contenu de la fenĂȘtre et traitent les entrĂ©es. Cet overlay Ă©tend la zone disponible pour modification Ă toute la fenĂȘtre et permet l'ajout de ses propres Ă©lĂ©ments dans la zone d'en-tĂȘte.

- Il est dĂ©sormais possible de crĂ©er des applications PWA pouvant ĂȘtre utilisĂ©es comme gestionnaires d'URL. Par exemple, l'application music.example.com peut se dĂ©clarer comme gestionnaire de l'URL https://*.music.example.com, et tous les liens externes menant Ă cette adresse, qu'ils proviennent de messageries ou de clients de messagerie, ouvriront cette application PWA au lieu d'un nouvel onglet dans le navigateur.
- Il est possible de charger des fichiers CSS à l'aide de l'instruction « import » de maniÚre analogue au chargement de modules JavaScript, ce qui est pratique lors de la création de ses propres éléments et évite d'avoir à définir des styles avec du code JavaScript. import sheet from './styles.css' assert { type: 'css' }; document.adoptedStyleSheets = [sheet]; shadowRoot.adoptedStyleSheets = [sheet];
- Un nouveau méthode statique AbortSignal.abort() a été introduite, retournant un objet AbortSignal dont le paramÚtre aborted est déjà défini. Au lieu d'écrire plusieurs lignes de code pour créer un objet AbortSignal dans un état aborted, il est désormais possible de se contenter d'une seule ligne : « return AbortSignal.abort() ».
- Le composant Flexbox a été amélioré avec le support des mots-clés start, end, self-start, self-end, left et right, ajoutant ainsi des options aux mots-clés center, flex-start et flex-end pour simplifier l'alignement des positions des éléments flex.
- Le constructeur Error() a introduit une nouvelle propriĂ©tĂ© optionnelle « cause », qui permet de relier facilement les erreurs entre elles. const parentError = new Error('parent'); const error = new Error('parent', { cause: parentError }); console.log(error.cause === parentError); // â true
- La propriété HTMLMediaElement.controlsList a été mise à jour avec un support pour le mode noplaybackrate, permettant de désactiver les éléments de l'interface fournis par le navigateur pour modifier la vitesse de lecture du contenu multimédia.
- Un en-tĂȘte Sec-CH-Prefers-Color-Scheme a Ă©tĂ© ajoutĂ©, permettant d'envoyer des informations sur le schĂ©ma de couleur prĂ©fĂ©rĂ© de l'utilisateur lors de l'envoi d'une requĂȘte, utilisable dans les requĂȘtes mĂ©dia « prefers-color-scheme ». Cela permet au site d'optimiser le chargement des CSS correspondant au schĂ©ma sĂ©lectionnĂ© et d'Ă©viter des changements visibles d'autres schĂ©mas.
- La propriĂ©tĂ© Object.hasOwn a Ă©tĂ© ajoutĂ©e, reprĂ©sentant une version simplifiĂ©e de Object.prototype.hasOwnProperty, mise en Ćuvre sous forme de mĂ©thode statique. Object.hasOwn({ prop: 42 }, 'prop') // â true
- Le compilateur JIT Sparkplug, conçu pour une compilation brute trÚs rapide, a été mis à jour pour inclure un mode d'exécution par lots, réduisant les frais généraux liés à la commutation de pages mémoire entre les modes écriture et exécution. Sparkplug compile désormais plusieurs fonctions à la fois et appelle mprotect une seule fois pour modifier les droits d'accÚs de l'ensemble du groupe. Ce mode proposé réduit considérablement le temps de compilation (jusqu'à 44%) sans impact négatif sur les performances d'exécution du JavaScript.

- La version Android désactive les mécanismes de protection intégrés à l moteur V8 contre les attaques par canaux auxiliaires, comme Spectre, jugés moins efficaces que l'isolation des sites dans des processus séparés. Dans la version de bureau, ces mécanismes avaient déjà été désactivés dans la version 70 de Chrome. La désactivation de vérifications superflues a permis d'augmenter la performance de 2 à 15%.

- Des amĂ©liorations ont Ă©tĂ© apportĂ©es aux outils pour les dĂ©veloppeurs web. Dans le mode d'inspection des feuilles de style, il est dĂ©sormais possible d'Ă©diter des requĂȘtes gĂ©nĂ©rĂ©es par l'expression @container. Dans le mode d'inspection rĂ©seau, un aperçu des ressources au format Web bundle a Ă©tĂ© ajoutĂ©. Dans la console web, des options pour copier des lignes sous forme de littĂ©raux JavaScript ou JSON ont Ă©tĂ© ajoutĂ©es au menu contextuel. Le dĂ©bogage des erreurs liĂ©es au CORS (Cross-Origin Resource Sharing) a Ă©tĂ© simplifiĂ©.

En plus des nouveautés et des corrections de bugs, la nouvelle version a corrigé 27 vulnérabilités. De nombreuses vulnérabilités ont été détectées grùce à des tests automatisés utilisant des outils tels qu'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 sur le systÚme en dehors d'un environnement sandbox n'a été identifié. Dans le cadre du programme de récompense financiÚre pour la découverte de vulnérabilités pour la version actuelle, Google a versé 19 primes d'un montant total de 136 500 dollars (trois primes de 20 000 $, une prime de 15 000 $, trois primes de 10 000 $, une prime de 7 500 $, trois primes de 5 000 $ et trois primes de 3 000 $). La taille de cinq primes n'a pas encore été déterminée.
Source : opennet.ru









