Chrome 136

Date de sortie de la version stable:29 avril 2025

Sauf indication contraire, les modifications suivantes s'appliquent à la version stable du canal Chrome 136 pour Android, ChromeOS, Linux, macOS et Windows.

HTML et DOM

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 paramètres régionaux, ce qui peut entraîner un état dans lequel un canevas hors écran produit des résultats de rendu différents de celui dans lequel sa sortie est utilisée. Cette fonctionnalité ajoute un attribut IDL lang à CanvasTextDrawingStyles pour donner aux développeurs un contrôle direct sur la langue pour le dessin et les métriques du texte.

Bug 385006131 | Enregistrement sur ChromeStatus.com | Spécification

CSS et UI

Propriété dynamic-range-limit

Permet à une page de limiter la luminosité maximale du contenu HDR.

Bug 1470298 | Enregistrement sur ChromeStatus.com | Spécification

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.

Une exception s'applique aux "liens auto", pour lesquels les liens pointant vers les pages d'un site peuvent être stylisés en tant que :visited, même si les utilisateurs n'ont jamais cliqué dessus sur ce site de premier niveau et cette origine de frame. Cette exception n'est activée que dans les frames de premier niveau ou les sous-frames ayant la même origine que le frame de premier niveau. Les avantages en termes de confidentialité sont toujours préservés, car les sites connaissent déjà les sous-pages qu'un utilisateur a consultées. Aucune nouvelle information n'est donc exposée. Cette exception demandée par la communauté améliore l'expérience utilisateur.

Bug 1448609 en cours de suivi | Enregistrement sur ChromeStatus.com | Spécification

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.

Documentation MDN | Bug 376381169 | Enregistrement sur ChromeStatus.com | Spécification

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, à partir de Chrome 136, attr(data-foo string) devient attr(data-foo raw-string).

Bug 400981738 | Enregistrement sur ChromeStatus.com | Spécification

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.

Bug de suivi 372475301 | Enregistrement sur ChromeStatus.com

API Web

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 désormais 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.

Bug de suivi 40851596 | Enregistrement sur ChromeStatus.com | Spécification

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 sont encodées sous forme de commentaires magiques.

Bug 13917 | Enregistrement sur ChromeStatus.com | Spécification

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 à l'aide 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é.

Bug de suivi 398784714 | Enregistrement sur ChromeStatus.com | Spécification

API Protected Audience: outils d'aide à la conversion de texte

Les scripts d'enchères et d'évaluation de l'API Protected Audience qui interagissent avec WebAssembly doivent convertir efficacement les données de type chaîne en (et à partir de) tableaux d'octets (par exemple, pour transmettre des chaînes dans et hors de WebAssembly avec l'ArrayBuffer "memory"). Cela fournit deux fonctions autonomes, protectedAudience.encodeUtf8 et protectedAudience.decodeUtf8, pour effectuer ces tâches environ un ordre de grandeur plus efficacement qu'en JavaScript.

Enregistrement sur ChromeStatus.com

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)); 

Enregistrement sur ChromeStatus.com | Spécification

Règles de spéculation: champ de balise

Cela permet aux développeurs d'ajouter un champ de balise 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.

Bug 381687257 | Enregistrement sur ChromeStatus.com | Spécification

Modifier 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 passant progressivement de 0 à 1. Cela correspond au comportement par défaut de l'élément HTML <progress> si l'attribut max est omis.

Enregistrement sur ChromeStatus.com | Spécification

Confidentialité et sécurité

Rapports sur les règles d'autorisation pour les iFrames

Introduction d'un nouveau type d'infraction appelé "Potential Permissions Policy violation" (Possibilité de non-respect du 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.

Bug 40941424 suivi | Enregistrement sur ChromeStatus.com | Spécification

Réduire l'empreinte digitale dans les informations de l'en-tête Accept-Language

Réduit la quantité d'informations que la chaîne de valeur de l'en-tête Accept-Language expose dans les requêtes HTTP et dans navigator.languages. Au lieu d'envoyer la liste complète des langues préférées de l'utilisateur à chaque requête HTTP, Chrome envoie désormais la langue préférée de l'utilisateur dans l'en-tête "Accept-Language".

Bug 1306905 en cours de suivi | Enregistrement sur ChromeStatus.com

Identité

Mises à jour de FedCM

Permet à FedCM d'afficher plusieurs fournisseurs d'identité dans la même boîte de dialogue, en regroupant tous les fournisseurs dans le même appel get(). Les développeurs pourront ainsi présenter facilement tous les fournisseurs d'identité compatibles aux utilisateurs.

Chrome 136 ne permet plus d'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.

Bug de suivi 1348262 | Enregistrement sur ChromeStatus.com | Spécification

Création conditionnelle d'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.

Bug 377758786 | Enregistrement sur ChromeStatus.com | Spécification

Images et contenus multimédias

AudioContext État interrompu

Ajoute un état "interrupted" à AudioContextState. Ce nouvel état permet à l'agent utilisateur de suspendre la lecture lors d'un accès audio exclusif (VoIP) ou lorsque le capot d'un ordinateur portable est fermé.

Bug de suivi 374805121 | Enregistrement sur ChromeStatus.com | Spécification

Contrôle de la surface capturée

API Web permettant aux applications Web d'effectuer les opérations suivantes:

  1. Transférez les événements de roue vers un onglet capturé.
  2. Lire et modifier le niveau de zoom d'un onglet capturé

Bug de suivi 1466247 | Enregistrement sur ChromeStatus.com | Spécification

CapturedSurfaceResolution

Exposer le format de la surface capturée lors du partage d'écran

Cette fonctionnalité aide 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.

Bug de suivi 383946052 | Enregistrement sur ChromeStatus.com | Spécification

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

Après ce changement, 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.

Bug de suivi 391903235 | Enregistrement sur ChromeStatus.com | Spécification

Mises à jour de la compatibilité avec le codec H26x pour MediaRecorder

L'API MediaRecorder de Chromium est désormais compatible avec l'encodage HEVC, avec l'introduction de la chaîne de codec hvc1.* et l'ajout 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 la plate-forme HEVC a été ajoutée dans WebCodecs dans Chromium M130. 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 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 fonctionnalités nécessaires.

Enregistrement sur ChromeStatus.com

Utiliser DOMPointInit pour getCharNumAtPosition, isPointInFill et isPointInStroke

Ce changement met le code Chromium en conformité avec la dernière spécification du W3C pour SVGGeometryElement et SVGPathElement en termes d'utilisation de DOMPointInit sur SVGPoint pour getCharNumAtPosition, isPointInFill et isPointInStroke.

Bug de suivi 40572887 | Enregistrement sur ChromeStatus.com | Spécification

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.

Bug de suivi 403172841 | Enregistrement sur ChromeStatus.com | Spécification

Modifications apportées au navigateur

Barres de défilement fluides

Cette fonctionnalité modernise les barres de défilement Chromium (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 Chromium a toujours été alignée sur celle de Windows. La manière d'activer les barres de défilement Fluent en superposition est encore à l'étude.

Bug 1292117 en cours de suivi | Enregistrement sur ChromeStatus.com

Phases d'évaluation

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.

Test Origin | Enregistrement sur ChromeStatus.com | Spécification

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.

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.

Test Origin | Bug de suivi 1413848 | Enregistrement sur ChromeStatus.com | Spécification

Mise à jour de l'implémentation du rendu du texte Canvas

Il ne s'agit pas d'un changement exposé sur le Web.

L'implémentation de CanvasRenderingContext2D, measureText(), fillText() et strokeText() a subi un changement radical. Cela peut avoir un impact sur les performances. Nous souhaitons donc effectuer un test d'origine afin que les applications axées sur le canevas puissent essayer la nouvelle implémentation.

Phase d'évaluation Origin | Bug 389726691 | Enregistrement sur ChromeStatus.com

Abandons et suppressions

Supprimer HTMLFencedFrameElement.canLoadOpaqueURL()

La méthode canLoadOpaqueURL() de HTMLFencedFrameElement a été remplacée par navigator.canLoadAdAuctionFencedFrame() en 2023. Depuis, son appel génère un avertissement de suppression dans la console, qui pointe vers la nouvelle API. La méthode est supprimée de Chrome 136.

Enregistrement sur ChromeStatus.com