Version bêta de Chrome 136

Publié le 3 avril 2025

Sauf indication contraire, les modifications suivantes s'appliquent à la dernière version du canal 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 sur 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 écritures cursives

Cette fonctionnalité ajoute une logique pour 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 aux spécifications, afin de s'assurer que l'espacement des lettres ne casse pas les mots.

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 des utilisateurs ont déjà cliqué dessus à partir de ce site de premier niveau et de cette origine de frame.

En ne stylisant que les liens sur lesquels l'utilisateur a déjà cliqué sur ce site et dans ce frame, les nombreuses attaques par canal auxiliaire développées pour obtenir des informations de stylisation des liens :visited sont désormais obsolètes. Elles ne fournissent plus de nouvelles informations sur les utilisateurs aux sites.

En savoir plus sur ces améliorations de la confidentialité des liens :visited

Renommer le type attr() de string 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 attr(), de sorte que attr(data-foo string) devienne attr(data-foo raw-string).

Solution de remplacement var() indépendante du type

La partie de remplacement d'une fonction var() n'est pas validée par rapport au type de la propriété personnalisée référencée.

print-color-adjust sans préfixe

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 -webkit-print-color-adjust, déjà pris en charge par Chrome, mais avec un nom standardisé. La version avec le préfixe -webkit n'est pas supprimée.

API Web

État interrompu d'AudioContext

Ajoute un état "interrupted" à AudioContextState. Cet état permet à l'UA de suspendre la lecture dans ces scénarios et de permettre 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 du partitionnement du stockage.

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 du code JavaScript qui exécute 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 ne répond pas.

API Captured Surface Control

L'API Captured Surface Control permet aux applications Web de transmettre les événements de la roue à un onglet capturé, et de lire et de modifier le niveau de zoom d'un onglet capturé.

CapturedSurfaceResolution

Affiche le format en pixels de la surface capturée lors du partage d'écran. Cette fonctionnalité aidera les applications à conserver leurs ressources système ou à adapter le compromis qualité/bande passante en fonction des résolutions physiques et logiques de la surface capturée.

Distribuer des événements de clic au pointeur capturé

Si un pointeur est capturé pendant 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 aux spécifications de l'événement d'interface utilisateur. Pour les pointeurs non capturés, la cible click reste inchangée.

Conseils de compilation explicites avec des commentaires magiques

Permet d'associer des informations sur les fonctions à analyser et compiler de manière anticipée dans les fichiers JavaScript. Les informations seront encodées en tant que commentaires magiques.

Mises à jour de FedCM: prise en charge de plusieurs IdP, suppression de la fonctionnalité "Ajouter un autre compte" en mode passif

Avec cette mise à jour, FedCM peut afficher plusieurs fournisseurs d'identité dans la même boîte de dialogue. Cela permet aux développeurs de 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é avec la fonctionnalité "Ajouter un autre compte" en mode passif FedCM. Cette fonctionnalité permet d'afficher un bouton "Utiliser un autre compte" à côté d'autres comptes d'IDP dans le sélecteur. Cette fonctionnalité n'est actuellement pas utilisée, et les discussions sur l'expérience utilisateur nous ont convaincus que l'implémentation de cette fonctionnalité entraînerait un flux plus complexe 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 (superposées et non superposées) sous 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 Linux de Chrome a toujours été alignée sur celle de Windows.

Compatibilité avec le codec H.265 (HEVC) dans WebRTC

À partir de Chrome 136, HEVC rejoindra VP8, H.264, VP9 et AV1 en tant que codecs compatibles dans WebRTC. Vous pourrez interroger la compatibilité à l'aide de l'API MediaCapabilities.

Ce nouveau codec offre une meilleure efficacité de compression (qualité supérieure par débit) par rapport aux codecs de génération précédente tels que VP8 et H264, et une compatibilité matérielle très forte depuis plus de 10 ans. Cela se traduit par une meilleure autonomie de la batterie et une réduction du risque de problèmes de performances. En fonction des performances de l'encodeur matériel sous-jacent, cela améliore souvent l'expérience visuelle lorsque des encodeurs VP9 ou AV1 matériels 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.*) compatibles avec la vidéo à résolution variable au format MP4. La prise en charge de l'encodage de plate-forme HEVC a été ajoutée dans WebCodecs dans Chrome 130. Par la suite, la prise en charge de l'API MediaRecorder a été ajoutée dans Chromium. L'API est désormais compatible avec les types de muxeurs MP4 et Matroska avec différentes spécifications de type mime HEVC et H.264. L'encodage HEVC n'est accepté que si l'appareil et le système d'exploitation de l'utilisateur fournissent les fonctionnalités nécessaires.

Enregistrement et création de rapports sur les adresses IP dans Chrome Enterprise

Chrome Enterprise améliore les fonctionnalités de surveillance de la sécurité et de gestion des 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 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 de cache HTTP

Le schéma de clé de cache HTTP de Chrome est mis à jour pour inclure une valeur booléenne is-cross-site-main-frame-navigation afin de limiter les attaques de fuite intersites impliquant la navigation de premier niveau. Plus précisément, cela permet d'éviter les attaques intersites, 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'inférer des informations sensibles à partir du temps de chargement. Cette modification améliore également la confidentialité en empêchant un site malveillant d'utiliser les navigations pour déduire si un utilisateur a déjà visité un site donné.

Langues acceptées pour CanvasTextDrawingStyles

Comme tous les éléments DOM, l'élément DOM <canvas> accepte un attribut lang qui permet de définir un traitement spécifique à la langue pour la sélection de police (lorsque les polices comportent 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 de locale, ce qui peut entraîner un état dans lequel un canevas hors écran produit des résultats de rendu différents de ceux du canevas dans lequel sa sortie est utilisée. Cette fonctionnalité ajoute un attribut IDL lang à CanvasTextDrawingStyles pour contrôler directement la langue du dessin et des métriques du texte.

Rapports sur les règles sur les autorisations pour les iFrames

Introduction d'un nouveau type d'infraction appelé "Potential Permissions Policy violation" (Incompatibilité potentielle avec le règlement sur les autorisations), qui n'examinera que le règlement sur les autorisations (y compris le règlement "Rapport uniquement") et l'attribut allow défini dans les iFrames pour détecter le conflit entre le règlement sur les autorisations appliqué et les autorisations propagées aux iFrames.

Quota de stockage enregistré prévisible

Enregistrez un quota de stockage prévisible à partir de l'API Estimate 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: création de rapports d'erreur agrégables

De nombreuses conditions d'erreur peuvent se produire lors de l'utilisation de l'API Private Aggregation. Par exemple, le budget dédié à la confidentialité peut s'épuiser, 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 que si un type d'erreur particulier se produit. Cette fonctionnalité permet de mesurer la fréquence des conditions d'erreur et de diviser ces mesures en fonction des 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 être des informations intersites, nous ne pouvons pas simplement les exposer sur la page pour les utilisateurs sans cookies tiers. À la place, 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 prend 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 balise

Permet aux développeurs d'ajouter la balise field aux règles de spéculation. Ce champ facultatif permet de 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. Autrement dit, 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 vous pouvez toujours utiliser la règle CookiesAllowedForUrls ou les en-têtes Storage Access pour débloquer les cookies intersites.

Mise à jour de ProgressEvent pour utiliser le type double pour loaded et total

ProgressEvent possède les attributs loaded et total qui indiquent la progression, et leur type est désormais unsigned long long. Avec cette fonctionnalité, le type de ces deux attributs est remplacé par 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 total de 1 et loaded augmentant 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 et isPointInStroke

Cette modification met le code Chromium en conformité avec la dernière spécification du W3C pour SVGGeometryElement et SVGPathElement en termes d'utilisation de DOMPointInit par rapport à 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 convertir les identifiants de mot de passe existants en clé d'accès.

WebGPU: attribut isFallbackAdapter GPUAdapterInfo

L'attribut booléen isFallbackAdapter GPUAdapterInfo 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 remplacement n'est pas nécessairement présent sur tous les systèmes.

Nouveaux tests Origin

Dans Chrome 136, vous pouvez activer les nouveaux essais Origin Trial suivants.

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 temps de performances bimodales

Les applications Web peuvent présenter une distribution bimodale des performances de chargement de page en raison de facteurs hors de leur contrôle. Exemple :

  • Lorsqu'un user-agent 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 disputent 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 ralenti.

Dans ces scénarios, le contenu que l'application Web tente de charger sera en concurrence avec d'autres tâches effectuées sur le système. Il est donc difficile de détecter si des problèmes de performances existent au sein des 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 délais de navigation sont représentatifs de leur application Web.

Identifiants de session liés à l'appareil

Méthode permettant aux sites Web de lier de manière sécurisée une session à un seul appareil.

Il permet aux serveurs d'avoir une session liée de manière sécurisée à un appareil. Le navigateur renouvellera la session régulièrement, comme demandé par le serveur, avec une preuve de possession d'une clé privée.

Mise à jour de l'implémentation du rendu du texte dans le 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 le cache. Cela peut avoir un impact sur les performances et la sortie du texte BIDI. Par conséquent, ce test d'origine permet aux applications Canvas axées sur le texte d'essayer la nouvelle implémentation et de signaler les problèmes qu'elles peuvent rencontrer.

Abandons et suppressions

Cette version de Chrome introduit les abandons et suppressions suivants. Consultez ChromeStatus.com pour obtenir la liste des fonctionnalités abandonnées prévues, des fonctionnalités abandonnées en cours et des fonctionnalités supprimées précédemment.

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 un changement de spécification depuis leur publication.

Supprimez HTMLFencedFrameElement.canLoadOpaqueURL().

canLoadOpaqueURL() a été remplacé par navigator.canLoadAdAuctionFencedFrame() en 2023. Depuis, son appel génère un avertissement de suppression dans la console, qui redirige 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 de frame clôturé et d'enchères publicitaires).