Chrome 147

Date de disponibilité de la version stable : 7 avril 2026

Sauf indication contraire, les modifications suivantes s'appliquent à la version stable de Chrome 147 channel pour Android, ChromeOS, Linux, macOS et Windows.

CSS et UI

Transitions de vue limitées aux éléments

Expose element.startViewTransition() sur des éléments HTML arbitraires. L'élément établit une portée pour la transition, ce qui signifie que les pseudo-éléments de transition sont affectés par les clips et les transformations des ancêtres, et que plusieurs transitions sur des éléments distincts peuvent s'exécuter simultanément.

Bug de suivi #394052227 | Entrée ChromeStatus.com | Spécification

CSS contrast-color()

Cette fonction vous aide à respecter les exigences de contraste pour l'accessibilité.

Vous pouvez utiliser la fonction contrast-color() n'importe où dans le CSS où une valeur de couleur est attendue. Elle prend un argument de valeur de couleur et renvoie "black" ou "white", selon celui qui offre le contraste le plus élevé par rapport à l'argument de couleur.

Bug de suivi #40142548 | Entrée ChromeStatus.com | Spécification

Plage nommée de la chronologie scroll

Cette fonctionnalité étend l'ensemble des plages nommées pour les chronologies de vue en ajoutant une plage scroll à l'ensemble existant de entry, exit, cover et contain.

Bug de suivi #41483848 | Entrée ChromeStatus.com | Spécification

Propriété CSS border-shape

La propriété CSS border-shape vous permet de créer des bordures non rectangulaires avec n'importe quelle forme arbitraire, par exemple un polygone, un cercle ou shape().

Bien que border-shape accepte les mêmes formes que clip-path, elle est fondamentalement différente. border-shape définit la forme de la bordure, la décore et ne découpe que l'intérieur.

border-shape comporte deux variantes : l'une qui trace une forme et l'autre qui remplit l'espace entre deux formes.

Bug de suivi #370041145 | Entrée ChromeStatus.com | Spécification

Interface CSSPseudoElement

L'interface CSSPseudoElement représente un pseudo-élément en JavaScript.

CSSPseudoElement est renvoyé par Element.pseudo(type), où type est actuellement ::after, ::before ou ::marker. CSSPseudoElement est un objet proxy qui représente un pseudo-élément. Contrairement à un pseudo-élément, un CSSPseudoElement existe toujours.

Le CSSPseudoElement comporte les attributs et méthodes suivants :

  • L'attribut type est une chaîne qui représente le type du pseudo-élément.
  • L'attribut element est l'élément d'origine ultime du pseudo-élément.
  • L'attribut parent est l'élément d'origine du pseudo-élément (soit Element ou CSSPseudoElement pour les pseudo-éléments imbriqués).
  • La méthode pseudo(type) récupère les pseudo-éléments imbriqués.

Bug de suivi #40639103 | Entrée ChromeStatus.com | Spécification

Pseudo-cible sur les événements

Les événements spécifiques incluent désormais un .pseudoTarget, qui est CSSPseudoElement (si l'interaction a eu lieu avec un pseudo-élément) ou null.

Cela fournit des informations plus spécifiques sur l'origine de l'événement. Par exemple, cela indique qu'un pseudo-élément ::after a été cliqué, et pas seulement l'élément d'origine ultime (Event.target). Notez que Event.target reste inchangé. L'événement ne contient donc que des informations supplémentaires sur l'interaction avec le pseudo-élément.

Les événements sont UIEvent, AnimationEvent et TransitionEvent.

mouseover, mouseout, mouseenter, mouseleave et leurs homologues pointer* ne sont pas encore compatibles.

Bug de suivi #40639103 | Entrée ChromeStatus.com | Spécification

Dissocier les propriétés *-width et *-style

Chrome 147 s'aligne sur les spécifications CSS mises à jour concernant le comportement des propriétés border-width, outline-width et column-rule-width. Auparavant, si les propriétés border-style, outline-style ou column-rule-style correspondantes étaient définies sur none ou hidden, la largeur calculée de ces propriétés était forcée à 0px, quelle que soit la valeur spécifiée.

Avec ce changement, les valeurs calculées de border-width, outline-width et column-rule-width reflètent toujours les valeurs spécifiées par l'auteur, indépendamment de la propriété *-style. De plus, les valeurs résolues (telles que renvoyées par getComputedStyle()) pour outline-width et column-rule-width reflètent également les valeurs spécifiées.

Cette modification aligne Chrome sur Firefox et WebKit, qui ont déjà implémenté ce comportement.

Bug de suivi #393631108 | Entrée ChromeStatus.com | Spécification

Compatibilité avec l'attribut path sur l'élément SVG <textPath>

Cette modification ajoute la compatibilité avec l'attribut path sur l'élément SVG <textPath>. Cela permet aux développeurs de définir la géométrie du tracé de texte en ligne à l'aide de données de tracé SVG et réduit le besoin d'éléments <path> définis séparément.

L'élément <textPath> résout sa géométrie de tracé de texte à l'aide des règles suivantes :

  1. Si path et href sont présents, la géométrie est résolue à partir de l'attribut path.
  2. Si seul l'attribut path est présent et qu'il est analysé correctement, la définition du chemin d'accès intégré est utilisée.
  3. Si l'attribut path est absent ou ne peut pas être analysé, et qu'un attribut href est fourni, l'élément <path> référencé est utilisé comme solution de secours.
  4. Le comportement existant href-only est conservé sans modification.

Cette implémentation suit la définition de l'attribut path sur <textPath>de la spécification SVG 2. Le comportement de résolution est cohérent avec les autres moteurs de navigateur, ce qui améliore l'interopérabilité et la conformité aux normes. Remarque : Lorsque path et href sont spécifiés sur <textPath>, path est désormais prioritaire, conformément à la spécification SVG 2.

Bug de suivi #374010056 | Entrée ChromeStatus.com | Spécification

Appareil

Détection de plans WebXR

L'API WebXR Plane Detection permet aux sites de récupérer l'ensemble des plans détectés dans l'environnement de l'utilisateur. Cela demande moins de travail aux développeurs et est plus puissant que d'utiliser la fonctionnalité WebXR de détection de profondeur. Par exemple, les plans tels que les murs qui sont masqués par des objets peuvent toujours être entièrement représentés si le système connaît les limites du mur. Une carte de profondeur afficherait le mur, mais les objets devant le mur le diviseraient, ce qui pourrait masquer toute l'étendue du mur. De plus, les informations d'étiquetage sémantique sont exposées lorsque l'appareil connaît ces étiquettes et qu'elles correspondent à des catégories prédéfinies, ce qui permet de mieux comprendre le monde.

Bug de suivi #394636076 | Entrée ChromeStatus.com | Spécification

DOM

Ajoute la compatibilité avec les types de modules JSON et de style en tant que <link rel="modulepreload"> destinations. <link rel="modulepreload"> est déjà compatible avec Chromium (voir la fonctionnalité Chromestatus), mais il ne prend actuellement en charge que le préchargement des scripts de module de type script. Cette fonctionnalité comble une lacune, car les scripts de module JSON et CSS sont compatibles avec Chromium ailleurs, mais pas en tant que <link rel="modulepreload"> destinations. Vous pouvez précharger des modules de style avec <link rel="modulepreload" as="style" href="..."> et des modules JSON avec <link rel="modulepreload" as="json" href="...">.

Bug de suivi #466888680 | Entrée ChromeStatus.com | Spécification

Analyse XML en Rust pour les scénarios non XSLT

Implémente l'analyseur XML Rust pour les scénarios où aucun traitement XSLT n'est requis.

L'analyseur XML Rust améliore la sécurité en éliminant les bugs de corruption de mémoire lors de l'analyse XML. Il remplace l'utilisation de libxml2 (écrit en C) par une alternative sécurisée.

Nous allons abandonner XSLT. Pendant ce processus, vous pouvez déjà utiliser l'analyse XML Rust sécurisée dans les scénarios où XSLT n'est pas requis.

Bug de suivi #466303347 | Entrée ChromeStatus.com

Graphiques

Calques WebXR

Les calques WebXR offrent un moyen plus efficace de dessiner du contenu immersif.

En plus de prendre en charge les textures de couleur et de profondeur natives, ainsi que les tableaux de textures, il est également compatible avec différents types de calques gérés par le compositeur système (par opposition à JavaScript).

Bug de suivi #409255534 | Entrée ChromeStatus.com | Spécification

JavaScript

Math.sumPrecise

Implémente une proposition TC39 visant à ajouter une méthode pour additionner plusieurs valeurs en JavaScript.

Ajoutez une méthode Math.sumPrecise prenant un itérable qui renvoie la somme des valeurs de l'itérable à l'aide d'un algorithme plus précis que la somme naïve.

Bug de suivi #374310075 | Entrée ChromeStatus.com | Spécification

Réseau / Connectivité

Attribut Request.isReloadNavigation

Ajoute l'attribut booléen en lecture seule isReloadNavigation à l'interface Request de l'API Fetch. Cet attribut indique si la requête de navigation actuelle a été lancée en tant que rechargement déclenché par l'utilisateur (par exemple, à l'aide du bouton Actualiser , location.reload() ou history.go(0)). Ce signal est principalement exposé sur l'objet Request dans le FetchEvent d'un service worker.

Bug de suivi #40487194 | Entrée ChromeStatus.com | Spécification

Performances

Mettre à jour les limites de l'API Device Memory

Mise à jour d'un nouvel ensemble de valeurs possibles pour l'API Device Memory :

  • Android: 1, 2, 4, 8
  • Autres : 2, 4, 8, 16, 32 Ces valeurs remplacent les anciennes valeurs 0,25, 0,5, 1, 2, 4 et 8, qui sont devenues obsolètes.

Cela réduit les risques d'empreintes digitales à l'extrémité inférieure, car les capacités des appareils se sont améliorées depuis leur définition. Cela permet également une meilleure utilisation et segmentation des appareils haut de gamme, comme l'ont demandé les développeurs. Pour en savoir plus, consultez le problème lié à la mémoire de l'appareil Device Memory issue.

Bug de suivi #454354290 | Entrée ChromeStatus.com | Spécification

Accès au réseau local (ANL)

Pour en savoir plus sur l'ANL, consultez Accès au réseau local.

Restrictions d'accès au réseau local sur le service worker WindowClient.navigate()

Des restrictions d'accès au réseau local (ANL) ont récemment été ajoutées pour empêcher les sites Web d'envoyer unilatéralement des requêtes aux réseaux locaux et aux appareils locaux. Ces restrictions ont été ajoutées pour les requêtes d'extraction lancées par le service worker, mais pas pour les navigations effectuées par les services workers via WindowClient.navigate().

Ce lancement comble cette lacune en ajoutant des restrictions d'ANL aux appels WindowClient.navigate(). Il utilise le WindowClient comme initiateur de la navigation pour déterminer si la navigation est une requête d'ANL.

Cela ne s'applique que si le WindowClient en cours de navigation est un sous-cadre. Chrome n'applique actuellement aucune restriction d'ANL aux navigations de cadre principal.

Entrée ChromeStatus.com

Restrictions d'accès au réseau local pour WebTransport

Limite la possibilité d'envoyer des requêtes au réseau local de l'utilisateur à l'aide de WebTransport, qui est contrôlé 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 réduit la possibilité pour les sites d'utiliser ces requêtes pour identifier le réseau local de l'utilisateur.

Cette autorisation est limitée aux contextes sécurisés.

Bug de suivi #421216834 | Entrée ChromeStatus.com | Spécification

Restrictions d'accès au réseau local pour WebSockets

Les restrictions d'accès au réseau local (ANL) sont étendues à WebSockets. Les connexions WebSockets aux adresses locales déclenchent désormais des demandes d'autorisation.

Toutes les règles d'entreprise d'ANL actuelles s'appliquent toujours aux restrictions d'ANL WebSockets (LocalNetworkAccessAllowedForUrls, LocalNetworkAccessBlockedForUrls et LocalNetworkAccessRestrictionsTemporaryOptOut).

Bug de suivi #421156866 | Entrée ChromeStatus.com | Spécification

Applications Web isolées (AWI)

API Web Printing

Cette API permet une intégration plus poussée aux fonctionnalités liées à l'imprimante dans les applications Web isolées.

Cette API ne cible que les applications Web isolées et suit le processus des applications Web isolées.

Cette API fournit un ensemble de méthodes JavaScript qui permettent aux développeurs d'interroger les imprimantes locales, d'envoyer des tâches d'impression aux imprimantes les plus appropriées et de gérer les options et l'état des tâches d'impression. Pour représenter ces concepts, elle s'appuie sur les noms d'attributs et la sémantique des spécifications IPP (Internet Printing Protocol).

Bug de suivi #302505962 | Entrée ChromeStatus.com | Spécification

Phases d'évaluation

Prérendre les iFrame inter-origines

Prérend les iFrame inter-origines à l'aide d'un en-tête de réponse d'activation.

Les navigateurs prérendent désormais tous les cadres inter-origines si la réponse HTTP du cadre de niveau supérieur inclut Supports-Loading-Mode: prerender-cross-origin-frames.

Phase d'évaluation | Bug de suivi #440387014 | Entrée ChromeStatus.com | Spécification

Événement de saisie automatique

La saisie automatique est une fonctionnalité Web essentielle qui réduit les frictions pour des millions d'utilisateurs chaque jour. Toutefois, il faut beaucoup d'efforts pour que la saisie automatique fonctionne de manière fiable avec les formulaires dynamiques dans plusieurs implémentations.

Cette fonctionnalité ajoute un événement autofill qui permet aux développeurs de modifier leurs formulaires pour qu'ils correspondent aux données remplies automatiquement et d'informer le navigateur lorsqu'ils l'ont fait.

Phase d'évaluation | Bug de suivi #466333215 | Entrée ChromeStatus.com | Spécification

WebNN

WebNN permet aux applications et frameworks Web de tirer parti des services de système d'exploitation natifs pour le machine learning et des capacités matérielles sous-jacentes disponibles sur l'ordinateur d'un utilisateur. Cela permet d'implémenter des expériences de ML cohérentes, efficaces et fiables sur le Web.

Phase d'évaluation | Bug de suivi #40206287 | Entrée ChromeStatus.com | Spécification

Abandon et suppression

Supprimer XSLT intégré pour la production de SVG

Un fichier XML spécialement conçu peut contenir une feuille de style XSLT qui transforme des données XML génériques en fichier SVG.

Pour obtenir un exemple, consultez gist.github.com.

Il s'agit d'un cas particulier de traitement XSLT qui, selon les compteurs d'utilisation récemment introduits XSLPIInSVGImage (ID UseCounter 5777) et XSLPIInSVGStandaloneDoc (ID UseCounter 5778), est considéré comme pratiquement inexistant sur le Web. Nous souhaitons l'abandonner et le supprimer avant de supprimer complètement XSLT.

Ce déploiement est synchronisé avec les tests expérimentaux de l'analyseur XML basé sur Rust. Il ne sera pas déployé immédiatement à 100 % dans Chrome 147.

Bug de suivi #482223009 | Entrée ChromeStatus.com