L'entreprise Google a publié la version 129 de son navigateur web Chrome. En même temps, une version stable du projet libre Chromium, qui sert de base à Chrome, est disponible. Le navigateur Chrome se distingue de Chromium 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 contenu vidéo protégé contre la copie (DRM), un système de mise à jour automatique, une instance Sandbox toujours active, la fourniture de clés pour les API de Google et la transmission des paramètres RLZ lors de la recherche. Pour ceux qui ont besoin de plus de temps pour les mises à jour, une branche Extended Stable est maintenue, accompagnée de 8 semaines de support. La prochaine version de Chrome, la 130, est prévue pour le 15 octobre.
Les principales modifications de Chrome 129 :
- Ajout de la possibilité de personnaliser le contenu de la barre d'outils, permettant à l'utilisateur de fixer, détacher et réorganiser les icônes à l'aide d'un configurateur affiché dans la barre latérale. Par exemple, il est possible de placer sur la barre des boutons pour appeler l'interface des développeurs, effacer les données de navigation, ouvrir le mode lecture, passer au gestionnaire des tâches, accéder au gestionnaire de mots de passe, etc. Un paramètre « chrome://flags/#toolbar-pinning » a été ajouté pour contrôler l'activation de la fonctionnalité de fixation des icônes.

- Une fonction de comparaison des onglets a été proposée, permettant d'utiliser des éléments d'apprentissage automatique pour générer un aperçu comparatif des produits, dont les pages sont ouvertes dans différents onglets. Cette fonctionnalité est actuellement disponible uniquement pour les utilisateurs des États-Unis.

- Dans la version pour la plateforme Android, le déplacement des onglets inactifs dans une section distincte (Inactive Tabs) de l'interface de commutation entre les onglets a été mis en œuvre. Il est possible de consulter tous les anciens onglets et de les fermer en une seule fois. Par défaut, cette nouvelle fonctionnalité est activée pour 1 % des utilisateurs. Les onglets sont automatiquement supprimés après avoir passé plus de 60 jours dans la section Inactive Tabs.
- Un mode expérimental de partage de processus a été ajouté, permettant d'utiliser un processus de rendu commun pour les différents onglets ouverts sur le même site, au lieu de processus distincts. Ce changement permet d'accélérer le chargement des pages et de réduire la consommation de mémoire. Pour activer ce mode, une option « chrome://flags/#enable-process-per-site-up-to-main-frame-threshold » a été ajoutée.
- Il est désormais possible de fournir aux sites des autorisations temporaires, valables uniquement dans le cadre de la session actuelle (par exemple, il est possible d'autoriser l'accès à la caméra et au microphone, qui sera valide jusqu'à la fermeture de l'onglet ou le passage à un autre site).
- La prise en charge de la plateforme macOS 10.15 a été arrêtée, car Apple a cessé son accompagnement en 2022.
- Pour les plateformes Windows et macOS, une nouvelle interface de gestion des certificats a été mise en œuvre dans le configurateur (les interfaces de gestion des certificats du système étaient appelées auparavant sur ces plateformes).
- L'accès à l'IP 0.0.0.0 a été bloqué pour prévenir les attaques sur les services locaux.
- Le remplacement imminent du protocole d'échange de clés TLS Kyber768+X25519 par ML-KEM768+X25519 a été annoncé (le nouveau standard ML-KEM récemment adopté est basé sur l'algorithme post-quantique Kyber, mais n'est pas entièrement compatible avec sa version précédente).
- Une méthode « scheduler.yield() » a été ajoutée à l'API Scheduler, permettant de revenir temporairement au thread principal du navigateur lors de l'exécution de tâches longues, ce qui permet de suspendre la tâche en cours pour effectuer des travaux importants, tels que le traitement des entrées et le rendu des images. L'idée est de diviser les tâches longues en tâches plus petites, en restituant régulièrement le contrôle au thread principal via l'appel « await scheduler.yield(); » dans le code, ce qui permet de réduire l'impact négatif des tâches longues sur la réactivité du site.

- Une propriété CSS « interpolate-size » a été ajoutée, permettant de choisir la taille de l'animation non pas en valeurs absolues, mais par rapport aux valeurs calculées lors de l'utilisation des propriétés auto, min-content ou fit-content. Pour un contrôle plus précis de la taille, une fonction CSS calc-size() a été proposée, similaire à calc(), mais prenant en charge les opérations avec la taille réelle des éléments, qui varie en fonction du contenu.
- Des modifications ont été apportées aux propriétés CSS pour gérer l'affichage des éléments liés à la position d'autres éléments (CSS Anchor Positioning), sans utiliser JavaScript, par exemple, pour se fixer aux éléments des fenêtres pop-up (popover), apparaissant de manière similaire aux infobulles. Conformément aux recommandations du groupe de travail sur la normalisation CSS, la propriété CSS «inset-area» a été renommée en «position-area», la propriété «position-try-options» a été renommée en «position-try-fallbacks», et la nécessité de spécifier inset-area() dans la propriété «position-try» a été supprimée, c'est-à-dire qu'au lieu de «position-try-fallbacks: inset-area(top)», il faut écrire «position-try-fallbacks: top».
- L'API Intl a ajouté la méthode Intl.DurationFormat pour formater les données de durée en temps en fonction de la locale sélectionnée. Par exemple : const l = «fr-FR»; const d = {hours: 1, minutes: 46, seconds: 40}; const opts = {style: «long»}; new Intl.DurationFormat(l, opts).format(d); // «1 heure, 46 minutes 40 secondes»
- L'API Web GPU a mis en œuvre la possibilité d'utiliser toute la gamme de luminosité prise en charge par l'écran lors de l'affichage d'images HDR.
- L'API WebRTC a ajouté la prise en charge de l'envoi de blobs via la méthode RTCDataChannel.send(Blob) et la réception de données de type Blob lors du traitement de l'événement onMessage, si l'attribut «binaryType» a la valeur «blob» (auparavant, seule la transmission de chaînes et de ArrayBuffer était prise en charge). La taille du blob est limitée à la valeur maxMessageSize.
- L'API WebAuthn a ajouté les méthodes PublicKeyCredential.toJSON(), parseCreationOptionsFromJSON() et parseRequestOptionsFromJSON() pour la sérialisation/désérialisation des réponses WebAuthn en utilisant le format JSON.
- En mode «Origin trials», l'API FileSystemObserver a été mise en œuvre, permettant aux sites de suivre les modifications des fichiers et des répertoires.
- En mode «Origin trials», l'API Mesh2D Canvas a été ajoutée pour visualiser un grand nombre de triangles texturés. Parmi les applications de l'API, on mentionne la mise en œuvre de méthodes avancées de mappage de textures et la création d'effets de déformation dans un contexte bidimensionnel.
- Les outils pour les développeurs web ont vu leurs fonctionnalités étendues.
En plus des nouvelles fonctionnalités et des corrections de bogues, la nouvelle version a corrigé 9 vulnérabilités. Beaucoup de ces vulnérabilités ont été découvertes grâce à des tests automatisés utilisant les outils AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer et AFL. Un problème a été classé avec un niveau de gravité élevé (mauvaise gestion des types dans le moteur V8). Aucun problème critique n'a été détecté, permettant de contourner tous les niveaux de sécurité 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 pour la découverte de vulnérabilités pour cette version, Google a versé 5 primes totalisant 13 000 dollars (une prime de 8 000 $ et deux de 1 000 $). Le montant d'une récompense n'a pas encore été déterminé.
Source : opennet.ru



