Version bêta de Chrome 140

Date de publication : 6 août 2025

Sauf indication contraire, les modifications suivantes s'appliquent à la dernière version bêta de Chrome pour Android, ChromeOS, Linux, macOS et Windows. Pour en savoir plus sur les fonctionnalités listées ici, consultez les liens fournis ou la liste sur ChromeStatus.com. Chrome 140 est en version bêta depuis le 6 août 2025. Vous pouvez télécharger la dernière version sur le site Web officiel de Chrome pour ordinateur ou sur le Google Play Store pour Android.

CSS et UI

Arithmétique typée CSS

L'arithmétique typée vous permet d'écrire des expressions en CSS telles que calc(10em / 1px) ou calc(20% / 0.5em * 1px). Cela est utile, par exemple, en typographie, car cela vous permet de convertir une valeur typée en valeur non typée et de la réutiliser pour les propriétés acceptant les nombres. Un autre cas d'utilisation consiste à multiplier la valeur sans unité par un autre type. Par exemple, vous pouvez caster des pixels en degrés.

Propriété scroll-target-group

La propriété scroll-target-group indique si l'élément est un conteneur de groupe de repères de défilement. Il accepte l'une des valeurs suivantes :

  • "none" : l'élément n'établit pas de conteneur de groupe de repères de défilement.
  • "auto" : l'élément établit un conteneur de groupe de repères de défilement formant un groupe de repères de défilement contenant tous les éléments de repère de défilement pour lesquels il s'agit du conteneur de groupe de repères de défilement ancêtre le plus proche.

L'établissement d'un conteneur de groupe de marqueurs de défilement permet à tous les éléments HTML d'ancrage avec un identifiant de fragment qui se trouvent dans un tel conteneur d'être l'équivalent HTML des pseudo-éléments ::scroll-marker. L'élément d'ancrage dont la cible de défilement est actuellement visible peut être stylisé à l'aide de la pseudo-classe :target-current.

Activer counter() et counters() dans le texte alternatif de la propriété content

Cette fonctionnalité permet d'utiliser counter() et counters() dans le texte alternatif de la propriété content. Cela permet de fournir des informations plus pertinentes pour améliorer l'accessibilité.

Les pseudos de transition de vue héritent de davantage de propriétés d'animation

L'arbre pseudo de transition de vue hérite désormais d'un certain nombre de propriétés d'animation :

  • animation-delay
  • animation-timing-function
  • animation-iteration-count
  • animation-direction
  • animation-play-state

Activer les transitions de vue imbriquées

Cette fonctionnalité permet aux transitions de vue de générer une arborescence d'éléments pseudo-imbriqués plutôt qu'une arborescence plate. Cela permet à la transition de vue d'apparaître plus en accord avec ses éléments d'origine et son intention visuelle. Il permet le clipping, les transformations 3D imbriquées et l'application appropriée d'effets tels que l'opacité, le masquage et les filtres.

Propager la fenêtre d'affichage overscroll-behavior depuis la racine

Cette modification propage overscroll-behavior à partir de la racine au lieu du corps. Le groupe de travail CSS a décidé de ne pas propager les propriétés de <body> à la fenêtre d'affichage. À l'inverse, les propriétés de la fenêtre d'affichage sont propagées à partir de l'élément racine (<html>). Par conséquent, overscroll-behavior doit se propager à partir de l'élément racine. Toutefois, Chrome a depuis longtemps un problème : il propage overscroll-behavior à partir de <body> plutôt qu'à partir de la racine. Ce comportement n'est pas interopérable avec d'autres navigateurs. Ce changement permet à Chrome de se conformer à la spécification et de devenir interopérable avec d'autres implémentations.

Option de conteneur ScrollIntoView

L'option de conteneur ScrollIntoViewOptions permet aux développeurs d'effectuer une opération scrollIntoView qui ne fait défiler que le conteneur de défilement ancêtre le plus proche. Par exemple, l'extrait suivant ne fait défiler que le conteneur de défilement de target pour afficher target, mais ne fait pas défiler tous les conteneurs de défilement jusqu'à la fenêtre d'affichage :

target.scrollIntoView({container: 'nearest'});

Ajouter la propriété CSS caret-animation

Chromium est compatible avec l'animation de la propriété caret-color. Toutefois, lorsque le curseur est animé, son clignotement par défaut interfère avec l'animation.

La propriété CSS caret-animation peut prendre deux valeurs : auto et manual. auto signifie que l'animation du curseur de saisie est celle par défaut du navigateur (clignotement), et manual signifie que le développeur contrôle l'animation du curseur de saisie. De plus, les utilisateurs qui sont dérangés par les éléments visuels clignotants ou qui y sont sensibles peuvent les désactiver à l'aide d'une feuille de style utilisateur.

L'API highlightsFromPoint

L'API highlightsFromPoint permet aux développeurs d'interagir avec les mises en surbrillance personnalisées. Il détecte les mises en surbrillance qui existent à un moment précis dans un document. Cette interactivité est utile pour les fonctionnalités Web complexes où plusieurs mises en évidence peuvent se chevaucher ou exister dans le DOM fantôme. En fournissant une détection précise des temps forts basée sur des points, l'API permet aux développeurs de gérer plus efficacement les interactions dynamiques avec des temps forts personnalisés. Par exemple, les développeurs peuvent répondre aux clics ou aux événements de survol des utilisateurs sur les régions mises en évidence pour déclencher des info-bulles personnalisées, des menus contextuels ou d'autres fonctionnalités interactives.

Modifier le timing de la promesse de fin de la transition de vue

Le timing actuel de la promesse terminée se produit lors des étapes du cycle de vie du rendu. Cela signifie que le code qui s'exécute à la suite de la résolution de la promesse se produit après la production du frame visuel qui supprime la transition de vue. Cela peut entraîner un scintillement à la fin de l'animation si le script déplace les styles pour préserver un état visuellement similaire. Cette modification résout le problème en déplaçant les étapes de nettoyage de ViewTransition pour qu'elles s'exécutent de manière asynchrone une fois le cycle de vie terminé.

Ajouter l'attribut source ToggleEvent

L'attribut source d'un ToggleEvent contient l'élément qui a déclenché le ToggleEvent, le cas échéant. Par exemple, si un utilisateur clique sur un élément <button> avec l'attribut popovertarget ou commandfor défini pour ouvrir un popover, l'événement ToggleEvent déclenché sur le popover aura son attribut source défini sur l'élément <button> d'appel.

Empêcher le SVG foreignObject de corrompre le canevas pour les URL blob

Tous les navigateurs prennent en charge depuis longtemps l'utilisation d'un élément <img> avec une source SVG dans une opération drawImage de canevas HTML. Toutefois, le comportement de la coloration du canevas varie selon les plates-formes. Tous les navigateurs corrompent le canevas lorsque la source SVG inclut une balise foreignObject et est référencée avec un URI HTTP. Lorsque le même SVG est référencé via un URI de données, tous les navigateurs ne corrompent pas le canevas. Toutefois, lorsqu'un URI blob est utilisé, Chromium (avant cette modification) et WebKit corrompent le canevas, mais pas Gecko. Lorsque cette fonctionnalité sera disponible, le comportement de Chromium correspondra à celui de Gecko, ce qui permettra d'utiliser un plus large éventail de contenu SVG dans les appels drawImage du canevas sans le rendre non sécurisé.

Prise en charge du descripteur font-variation-settings dans @font-face rule

Le CSS permet aux développeurs d'ajuster le poids, la largeur, l'inclinaison et d'autres axes d'une police à l'aide de la propriété font-variation-settings sur des éléments individuels. Toutefois, les navigateurs basés sur Chromium ne prennent pas en charge cette propriété dans les déclarations @font-face. Cette fonctionnalité est compatible avec la syntaxe basée sur des chaînes pour font-variation-settings, telle que définie dans CSS Fonts Level 4. Les tags de caractéristiques non valides ou non reconnus sont ignorés conformément aux spécifications. Les formulaires binaires ou non standards ne sont pas acceptés. Les polices variables sont de plus en plus utilisées pour leurs performances et leur flexibilité typographique. L'ajout de la compatibilité avec ce descripteur dans Chromium améliore le contrôle, réduit la répétition et permet une approche plus évolutive et moderne de la typographie Web.

API Web

Convertir Uint8Array en base64 et en hexadécimal, et vice versa

Base64 est une méthode courante pour représenter des données binaires arbitraires au format ASCII. JavaScript utilise Uint8Arrays pour les données binaires. Toutefois, il ne dispose pas de mécanisme intégré pour encoder ces données en base64 ni pour prendre des données base64 et produire un Uint8Array correspondant. Cette fonctionnalité ajoute la possibilité et les méthodes de conversion entre les chaînes hexadécimales et Uint8Arrays.

Utiliser l'option min ReadableStreamBYOBReader

Cette fonctionnalité ajoute une option min à la méthode ReadableStreamBYOBReader.read(view) existante. La méthode accepte déjà un ArrayBufferView dans lequel elle lit les données, mais ne garantit pas actuellement le nombre d'éléments écrits avant la résolution de la lecture. En spécifiant une valeur min, vous pouvez exiger que le flux attende qu'au moins ce nombre d'éléments soient disponibles avant de résoudre la lecture. Cela améliore le comportement actuel, où les lectures peuvent se résoudre avec moins d'éléments que la vue ne peut en contenir.

Dans certains cas, il est important de distinguer côté serveur les cookies définis par le serveur de ceux définis par le client. C'est le cas, par exemple, des cookies normalement toujours définis par le serveur. Toutefois, du code inattendu (comme une exploitation XSS, une extension malveillante ou un commit d'un développeur confus) peut les définir sur le client. Cette proposition ajoute un signal qui permet aux serveurs de faire cette distinction. Plus précisément, il définit les préfixes __Http et __HostHttp, qui garantissent qu'aucun cookie n'est défini côté client à l'aide d'un script.

Restrictions d'accès au réseau local

Chrome 140 limite la possibilité d'envoyer des requêtes au réseau local de l'utilisateur, qui est contrôlée par une demande d'autorisation. Une requête réseau locale est une requête envoyée depuis un site Web public à une adresse IP locale ou une interface de rebouclage, ou depuis un site Web local (un intranet, par exemple) à une interface de rebouclage. Restreindre la capacité des sites Web à effectuer ces requêtes derrière une autorisation atténue le risque d'attaques de type falsification de requêtes intersites contre des appareils du réseau local, tels que les routeurs. Elle réduit également la capacité des sites à utiliser ces requêtes pour identifier le réseau local de l'utilisateur. Cette autorisation est limitée aux contextes sécurisés. Si elle est accordée, l'autorisation assouplit également le blocage du contenu mixte pour les demandes d'accès au réseau local, car de nombreux appareils locaux ne peuvent pas obtenir de certificats TLS publiquement fiables pour diverses raisons.

Pour en savoir plus, consultez Nouvelle invite d'autorisation pour l'accès au réseau local.

Activer les scripts SharedWorker pour qu'ils héritent du contrôleur pour les URL de script blob

La spécification indique que les workers doivent hériter des contrôleurs pour l'URL blob. Toutefois, le code existant n'autorise que les workers dédiés à hériter du contrôleur, et les workers partagés n'en héritent pas. Cela permet d'ajuster le comportement de Chrome à la spécification. La règle d'entreprise SharedWorkerBlobURLFixEnabled contrôle cette fonctionnalité.

Ajouter ServiceWorkerStaticRouterTimingInfo

Cette fonctionnalité ajoute des informations de timing pour l'API de routage statique ServiceWorker, exposées dans l'API Navigation Timing et l'API Resource Timing pour les développeurs. ServiceWorker fournit des informations de timing pour marquer certains points dans le temps.

Cette fonctionnalité ajoute deux informations de timing pertinentes pour l'API Static Routing :

  • RouterEvaluationStart : délai avant de commencer à faire correspondre une requête avec les règles de routeur enregistrées.
  • CacheLookupStart : heure à laquelle commencer à rechercher le stockage du cache si la source est "cache".

De plus, cette fonctionnalité ajoute deux informations sur la source du routeur : la source du routeur correspondante et la source du routeur finale.

Activer la création conditionnelle de l'authentification Web sur Android (non disponible)

Applications Web isolées

Présentation de l'API Controlled Frame

Cette fonctionnalité ajoute une API Controlled Frame disponible uniquement pour les applications Web isolées (AWI). Comme les API portant un nom similaire sur d'autres plates-formes, Controlled Frame permet d'intégrer tous les contenus, y compris les contenus tiers qui ne peuvent pas être intégrés dans <iframe>. Controlled Frame permet également de contrôler le contenu intégré à l'aide d'une collection de méthodes et d'événements d'API. Pour en savoir plus sur les applications Web isolées, consultez la description des applications Web isolées.

Nouvelles phases d'évaluation

Dans Chrome 140, vous pouvez activer les nouvelles versions d'essai d'origine suivantes.

Ajouter l'événement clipboardchange

L'événement clipboardchange se déclenche chaque fois qu'une application Web ou toute autre application système modifie le contenu du presse-papiers système. Cela permet aux applications Web, comme les clients de bureau à distance, de synchroniser leur presse-papiers avec le presse-papiers du système. Il s'agit d'une alternative efficace à l'interrogation du presse-papiers avec JavaScript pour les modifications.

Activer les notifications d'appels entrants

Cette fonctionnalité étend l'API Notifications pour permettre aux PWA installées d'envoyer des notifications d'appels entrants (notifications avec des boutons de style appel et une sonnerie). Cette extension aide les applications Web VoIP à créer des expériences plus attrayantes en permettant aux utilisateurs de reconnaître et de répondre plus facilement aux notifications d'appel. De plus, cette fonctionnalité permet de combler le fossé entre les implémentations natives et Web des applications qui en disposent.

Présentation de l'API de rapports d'erreur avec clés-valeurs

Cette fonctionnalité introduit une nouvelle API clé-valeur, provisoirement window.crashReport, soutenue par une carte par document qui contient les données ajoutées aux rapports d'erreur.

Les données placées dans la carte de sauvegarde de cette API sont envoyées dans CrashReportBody en cas de plantage du processus de rendu sur le site. Cela permet aux développeurs de déboguer l'état spécifique de leur application qui peut être à l'origine d'un plantage donné.

Arrêts et suppressions

Cette version de Chrome introduit les abandons et les suppressions listés ci-dessous. Consultez ChromeStatus.com pour obtenir la liste des abandons prévus, des abandons en cours et des suppressions précédentes.

Cette version de Chrome abandonne une fonctionnalité.

Abandon des règles spéciales de taille de police pour <h1> dans certains éléments

La spécification HTML contient une liste de règles spéciales pour les balises <h1> imbriquées dans les éléments <article>, <aside>, <nav> ou <section>.

Ces règles spéciales sont obsolètes, car elles entraînent des problèmes d'accessibilité. En d'autres termes, elles réduisent visuellement la taille de la police des <h1> imbriquées pour qu'elles ressemblent à des <h2>, mais rien dans l'arborescence d'accessibilité ne reflète ce changement visuel.