Publié le 3 avril 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 136 est en version bêta depuis le 3 avril 2025. Vous pouvez télécharger la dernière version sur Google.com pour ordinateur ou sur le Google Play Store pour Android.
CSS et UI
Cette version ajoute six nouvelles fonctionnalités CSS et d'UI.
Propriété CSS dynamic-range-limit
Permet à une page de limiter la luminosité maximale du contenu HDR.
Ignorer l'espacement entre les lettres dans les scripts cursifs
Cette fonctionnalité ajoute une logique permettant d'ignorer le paramètre d'espacement des lettres pour les scripts cursifs, même s'il est spécifié par le développeur conformément à la spécification, afin de s'assurer que l'espacement des lettres ne sépare pas les mots.
Partitionnement de l'historique des liens :visited
Pour éviter les fuites de l'historique de navigation des utilisateurs, les éléments d'ancrage ne sont stylisés en tant que :visited que si les utilisateurs ont déjà cliqué dessus à partir de ce site de premier niveau et de cette origine de frame.
En n'appliquant un style qu'aux liens sur lesquels l'utilisateur a cliqué sur ce site et dans le frame précédent, les nombreuses attaques par canal auxiliaire qui ont été développées pour obtenir des informations sur le style des liens :visited sont désormais obsolètes. Elles ne fournissent plus aux sites de nouvelles informations sur les utilisateurs.
En savoir plus sur ces améliorations apportées à la confidentialité des liens :visited
Renommer le type string attr() en raw-string
Le groupe de travail CSS a décidé de remplacer le type attr() string par raw-string.
Par conséquent, Chrome a modifié la syntaxe de attr(), de sorte que attr(data-foo string)
devient attr(data-foo raw-string).
var() de secours indépendant du type
La partie de secours d'une fonction var() n'est pas validée par rapport au type de propriété personnalisée référencée.
Sans préfixe print-color-adjust
La propriété print-color-adjust vous permet d'ajuster les couleurs des pages Web imprimées. Il s'agit de la même chose que le -webkit-print-color-adjust déjà pris en charge par Chrome, mais avec un nom standardisé. La version préfixée -webkit n'est pas supprimée.
API Web
État interrompu d'AudioContext
Ajoute un état "interrupted" à AudioContextState. Ce nouvel état permet à l'UA de mettre en pause la lecture dans ces scénarios et aux applications Web de répondre de manière appropriée.
Partitionnement des URL blob : extraction/navigation
Dans le cadre de la proposition Storage Partitioning, cela implémente le partitionnement de l'accès aux URL blob par clé de stockage (site de premier niveau, origine des frames et valeur booléenne has-cross-site-ancestor), à l'exception des navigations de niveau supérieur qui ne seront partitionnées que par origine de frame. Ce comportement est semblable à celui actuellement implémenté par Firefox et Safari, et aligne l'utilisation des URL blob sur le schéma de partitionnement adopté par d'autres API de stockage dans le cadre de Storage Partitioning.
De plus, noopener est désormais appliqué aux navigations de niveau supérieur initiées par le moteur de rendu sur des URL blob lorsque le site correspondant est de type intersites par rapport au site de premier niveau effectuant la navigation. Cela permet à Chrome d'adopter un comportement semblable à celui de Safari. Les spécifications concernées ont été mises à jour pour refléter ces changements.
Piles d'appels dans les rapports d'erreur provenant de pages Web qui ne répondent pas
Cette fonctionnalité capture la pile d'appels JavaScript lorsqu'une page Web ne répond plus en raison d'un code JavaScript exécutant une boucle infinie ou un autre calcul très long. Cela permet aux développeurs d'identifier la cause de l'absence de réponse. La pile d'appels JavaScript est incluse dans l'API de signalement des plantages lorsque la raison est "Ne répond pas".
API Captured Surface Control
L'API Captured Surface Control permet aux applications Web de transférer les événements de la molette vers un onglet capturé, et de lire et modifier le niveau de zoom d'un onglet capturé.
CapturedSurfaceResolution
Expose le ratio de pixels de la surface capturée lors du partage d'écran. Cette fonctionnalité aidera les applications à économiser leurs ressources système ou à adapter le compromis entre qualité et bande passante en fonction des résolutions physiques et logiques de la surface capturée.
Distribuer les événements de clic au pointeur capturé
Si un pointeur est capturé lors de l'envoi de l'événement pointerup, l'événement click est envoyé à la cible capturée au lieu de l'ancêtre commun le plus proche des événements pointerdown et pointerup, conformément à la spécification des événements d'interface utilisateur. Pour les pointeurs non capturés, la cible click reste inchangée.
Indication de compilation explicite avec des commentaires magiques
Permet d'ajouter des informations sur les fonctions qui doivent être analysées et compilées de manière anticipée dans les fichiers JavaScript. Les informations seront encodées sous forme de commentaires magiques.
Mises à jour de FedCM : compatibilité avec plusieurs IdP, suppression de la fonctionnalité "Ajouter un autre compte" en mode passif
Grâce à cette mise à jour, FedCM peut afficher plusieurs fournisseurs d'identité dans la même boîte de dialogue.
Les développeurs pourront ainsi présenter facilement tous les fournisseurs d'identité compatibles aux utilisateurs. Nous prévoyons d'abord de traiter le cas simple où tous les fournisseurs se trouvent dans le même appel get(). Nous supprimons également la compatibilité de la fonctionnalité "Ajouter un autre compte" en mode FedCM passif. Cette fonctionnalité permet d'afficher un bouton "Utiliser un autre compte" à côté des autres comptes d'IdP dans le sélecteur. Cette fonctionnalité n'est actuellement pas utilisée, et les échanges concernant l'expérience utilisateur nous ont amenés à penser qu'elle complique le parcours sans grand intérêt. Cette fonctionnalité continuera de fonctionner en mode FedCM actif.
Barres de défilement fluides.
Cette fonctionnalité modernise les barres de défilement Chrome (avec ou sans superposition) sur Windows et Linux pour les adapter au langage de conception Fluent de Windows 11. Les barres de défilement Fluent non superposées seront activées par défaut sous Linux et Windows. Cette modification s'applique également à Linux, car la conception de la barre de défilement de Chrome pour Linux a toujours été alignée sur celle de Windows.
Compatibilité du codec H265 (HEVC) dans WebRTC
À partir de Chrome 136, HEVC rejoindra VP8, H.264, VP9 et AV1 en tant que codecs compatibles dans WebRTC. La compatibilité pourra être interrogée à l'aide de l'API MediaCapabilities.
Ce codec plus récent offre une meilleure efficacité de compression (qualité supérieure par débit binaire) par rapport aux codecs de génération plus ancienne tels que VP8 et H264, et bénéficie d'une très bonne prise en charge matérielle depuis plus de dix ans. Cela se traduit par une autonomie de la batterie accrue et un risque réduit de problèmes de performances. De plus, selon les performances de l'encodeur matériel sous-jacent, l'expérience visuelle sera souvent améliorée lorsque les encodeurs matériels VP9 ou AV1 ne sont pas disponibles.
Mises à jour de la compatibilité avec le codec H26x pour MediaRecorder
L'API MediaRecorder est désormais compatible avec l'encodage HEVC, avec l'introduction de la chaîne de codec hvc1.*, et ajoute de nouveaux codecs (hev1.* et avc3.*) prenant en charge les vidéos à résolution variable au format MP4. La prise en charge de l'encodage HEVC sur la plate-forme a été ajoutée à WebCodecs dans Chrome 130. Par la suite, la compatibilité avec l'API MediaRecorder a été ajoutée à Chromium. L'API est désormais compatible avec les types de multiplexeurs MP4 et Matroska, avec différentes spécifications de type MIME HEVC et H.264. L'encodage HEVC n'est compatible que si l'appareil et le système d'exploitation de l'utilisateur fournissent les capacités nécessaires.
Journalisation et création de rapports sur les adresses IP dans Chrome Enterprise
Chrome Enterprise améliore ses fonctionnalités de surveillance de la sécurité et de réponse aux incidents en collectant et en signalant les adresses IP locales et distantes, puis en les envoyant aux journaux d'investigation de sécurité (SIT). De plus, Chrome Enterprise permettra aux administrateurs d'envoyer les adresses IP à des fournisseurs de solutions SIEM propriétaires et tiers à l'aide du connecteur de reporting Chrome Enterprise. Cette fonctionnalité sera disponible pour les clients Chrome Enterprise Core.
Intégrer l'initiateur de navigation dans la clé de partition du cache HTTP
Le schéma de clé de cache HTTP de Chrome est mis à jour pour inclure un booléen is-cross-site-main-frame-navigation afin d'atténuer les attaques de fuite intersites impliquant la navigation de premier niveau. Plus précisément, cela empêchera les attaques multisites dans lesquelles un pirate informatique peut lancer une navigation de premier niveau vers une page donnée, puis accéder à une ressource connue pour être chargée par la page afin d'en déduire des informations sensibles à partir du timing de chargement. Cette modification améliore également la confidentialité en empêchant un site malveillant d'utiliser la navigation pour déduire si un utilisateur a déjà visité un site donné.
Langues disponibles pour CanvasTextDrawingStyles
L'élément DOM <canvas>, comme tous les éléments DOM, accepte un attribut lang qui est utilisé pour définir un traitement spécifique à la langue pour la sélection de la police (lorsque les polices ont des glyphes spécifiques à la langue). Les navigateurs respectent cet attribut. Toutefois, lorsqu'un OffscreenCanvas est créé, il n'est pas possible de définir des informations régionales, ce qui peut entraîner un état dans lequel un canevas hors écran produit des résultats rendus différents de ceux du canevas dans lequel sa sortie est utilisée. Cette fonctionnalité ajoute un attribut IDL lang à CanvasTextDrawingStyles pour permettre de contrôler directement la langue du dessin et des métriques du texte.
Rapports sur les règles relatives aux autorisations pour les iFrames
Nous avons ajouté un nouveau type de non-respect appelé "Non-respect potentiel du règlement sur les autorisations". Il ne concerne que le règlement sur les autorisations (y compris le règlement en mode rapport uniquement) et l'ensemble d'attributs allow défini dans les iFrames pour détecter les conflits entre le règlement sur les autorisations appliqué et les autorisations propagées aux iFrames.
Quota de stockage enregistré prévisible
Signaler un quota de stockage prévisible à partir de l'API d'estimation de StorageManager pour les sites qui ne disposent pas d'autorisations de stockage illimitées. Il est possible de détecter le mode de navigation d'un utilisateur à l'aide du quota de stockage indiqué, car l'espace de stockage disponible est nettement plus petit en mode navigation privée qu'en mode normal.
API Private Aggregation : agrégation des rapports d'erreurs
Vous pouvez rencontrer différentes conditions d'erreur lorsque vous utilisez l'API Private Aggregation. Par exemple, le budget dédié à la confidentialité peut être épuisé, ce qui empêche toute autre contribution à l'histogramme. Cette fonctionnalité permet aux développeurs d'enregistrer des contributions d'histogramme qui ne doivent être envoyées qu'en cas d'erreur d'un type particulier. Cette fonctionnalité permet de mesurer la fréquence des conditions d'erreur et de répartir ces mesures selon les dimensions pertinentes spécifiées par le développeur (par exemple, la version du code déployé). Étant donné que les erreurs elles-mêmes peuvent contenir des informations multisites, nous ne pouvons pas simplement les exposer sur la page pour les utilisateurs sans cookies tiers. Au lieu de cela, cette fonctionnalité réutilise les pipelines de création de rapports agrégés et bruités existants via le service d'agrégation.
RegExp.escape
RegExp.escape est une méthode statique qui accepte une chaîne et renvoie une version échappée pouvant être utilisée comme modèle dans une expression régulière. Exemple :
const str = prompt("Please enter a string");
const escaped = RegExp.escape(str);
const re = new RegExp(escaped, 'g'); // handles reg exp special tokens with the replacement.
console.log(ourLongText.replace(re));
Règles de spéculation : champ de tag
Permet aux développeurs d'ajouter la balise field aux règles de spéculation. Ce champ facultatif peut être utilisé pour suivre la source des règles de spéculation. Par exemple, pour les traiter différemment sur un serveur intermédiaire. Tous les tags associés à une spéculation seront envoyés avec l'en-tête Sec-Speculation-Tags.
Règle stricte de même origine pour l'API Storage Access
Ajuste la sémantique de l'API Storage Access pour respecter strictement la règle de même origine. En d'autres termes, l'utilisation de document.requestStorageAccess() dans un frame associe par défaut uniquement les cookies aux requêtes envoyées à l'origine de l'iFrame (et non au site). Notez que la règle CookiesAllowedForUrls ou les en-têtes Storage Access peuvent toujours être utilisés pour débloquer les cookies intersites.
Mettre à jour ProgressEvent pour utiliser le type double pour loaded et total
ProgressEvent possède les attributs loaded et total qui indiquent la progression. Leur type est désormais unsigned long long. Avec cette fonctionnalité, le type de ces deux attributs devient double, ce qui donne au développeur plus de contrôle sur la valeur. Par exemple, les développeurs peuvent désormais créer un ProgressEvent avec un total de 1 et une valeur loaded qui passe progressivement de 0 à 1. Cela correspond au comportement par défaut de l'élément HTML <progress> si l'attribut "max" est omis.
Utiliser DOMPointInit pour getCharNumAtPosition, isPointInFill, isPointInStroke
Cette modification aligne le code Chromium sur la dernière spécification W3C pour SVGGeometryElement et SVGPathElement en termes d'utilisation de DOMPointInit sur SVGPoint pour getCharNumAtPosition, isPointInFill et isPointInStroke.
Création conditionnelle de l'authentification Web (mise à niveau des clés d'accès)
Les requêtes de création conditionnelle WebAuthn permettent aux sites Web de mettre à niveau les identifiants de mot de passe existants vers une clé d'accès.
WebGPU : attribut GPUAdapterInfo isFallbackAdapter
L'attribut booléen GPUAdapterInfo isFallbackAdapter indique si un adaptateur présente des limites de performances importantes en échange d'une compatibilité plus large, d'un comportement plus prévisible ou d'une confidentialité améliorée. Notez qu'un adaptateur de secours peut ne pas être présent sur tous les systèmes.
Nouvelles phases d'évaluation
Dans Chrome 136, vous pouvez participer aux nouvelles phases d'évaluation Origin Trial suivantes.
API Audio Output Devices : setDefaultSinkId()
Cette fonctionnalité ajoute setDefaultSinkId() à MediaDevices, ce qui permet au frame de niveau supérieur de modifier le périphérique de sortie audio par défaut utilisé par ses sous-frames.
Permettre aux applications Web de comprendre les timings de performances bimodales
Les applications Web peuvent souffrir d'une distribution bimodale en termes de performances de chargement de page, en raison de facteurs indépendants de leur contrôle. Exemple :
- Lorsqu'un agent utilisateur est lancé pour la première fois (scénario de "démarrage à froid"), il doit effectuer de nombreuses tâches d'initialisation coûteuses qui se font concurrence pour les ressources du système.
- Les extensions de navigateur peuvent affecter les performances d'un site Web. Par exemple, certaines extensions exécutent du code supplémentaire sur chaque page que vous consultez, ce qui peut augmenter l'utilisation du processeur et entraîner des temps de réponse plus lents.
- Lorsqu'une machine est occupée à effectuer des tâches intensives, le chargement des pages Web peut être plus lent.
Dans ces scénarios, le contenu que l'application Web tente de charger sera en concurrence avec d'autres tâches en cours sur le système. Il est donc difficile de détecter si des problèmes de performances existent dans les applications Web elles-mêmes ou en raison de facteurs externes.
Un nouveau champ confidence sur l'objet PerformanceNavigationTiming permettra aux développeurs de déterminer si les timings de navigation sont représentatifs de leur application Web.
Identifiants de session liés à l'appareil
Méthode permettant aux sites Web d'associer de manière sécurisée une session à un seul appareil.
Il permet aux serveurs d'avoir une session sécurisée associée à un appareil. Le navigateur renouvellera la session périodiquement, comme demandé par le serveur, avec une preuve de possession d'une clé privée.
Mise à jour de l'implémentation du rendu de texte du canevas
Les éléments internes de measureText(), fillText() et strokeText() de CanvasRenderingContext2D et OffscreenCanvasRenderingContext2D ont été remplacés par une nouvelle implémentation qui prend mieux en charge le texte RTL et la mise en cache. Cela peut affecter les performances et la sortie de texte BIDI. Cet essai Origin Trial permet donc aux applications de canevas contenant beaucoup de texte d'essayer la nouvelle implémentation et de signaler tout problème qu'elles pourraient rencontrer.
Arrêts et suppressions
Cette version de Chrome introduit les abandons et suppressions suivants. 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 deux fonctionnalités.
Abandon des getters dans Intl Locale Info
L'API Intl Locale Info est une proposition ECMAScript TC39 de phase 3 visant à améliorer l'objet Intl.Locale en exposant des informations sur les paramètres régionaux, telles que les données relatives aux semaines (premier jour de la semaine, jour de début du week-end, jour de fin du week-end, valeur minimale du jour de la première semaine), l'orientation du texte et le cycle horaire utilisé dans les paramètres régionaux. Cette modification supprime certains getters obsolètes dans une modification de spécification depuis leur lancement.
Supprimez HTMLFencedFrameElement.canLoadOpaqueURL().
canLoadOpaqueURL() a été remplacé par navigator.canLoadAdAuctionFencedFrame() en 2023. Depuis, un avertissement de dépréciation s'affiche dans la console lorsque vous l'appelez, redirigeant les développeurs vers la nouvelle API. Il n'est pas logique d'associer la fonction à HTMLFencedFrameElement. Elle doit plutôt être associée à l'objet navigator (qui contient d'autres méthodes d'enchères publicitaires et de frames cloisonnés).