Version bêta de Chrome 135

Publié le 5 mars 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 135 est en version bêta depuis le 5 mars 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 treize nouvelles fonctionnalités CSS et d'UI.

Le positionnement des ancres a mémorisé le décalage de défilement

Ajout de la prise en charge du concept de décalage de défilement mémorisé. Lorsqu'un élément positionné possède un ancrage par défaut et qu'il est rattaché à cet ancrage à une extrémité et au bloc contenant d'origine à l'autre extrémité, le décalage de défilement est pris en compte pour dimensionner l'élément. Cela signifie que vous pouvez utiliser tout l'espace visible (à l'aide de position-area) pour l'élément ancré lorsque le document est défilé à un décalage de défilement donné. Pour éviter la mise en page (redimensionnement de l'élément) chaque fois que le document est fait défiler, le navigateur utilise le décalage de défilement mémorisé, plutôt que d'utiliser toujours le décalage de défilement actuel. Le décalage de défilement mémorisé est mis à jour à un point de recalcul d'ancrage, qui correspond à la position à laquelle l'élément positionné est initialement affiché ou, lorsqu'une autre option de position (position-try-fallbacks) est choisie.

Inertie CSS

Rendre un élément inerte détermine s'il peut être mis au premier plan, modifié, sélectionné et recherché par la recherche dans la page. Elle détermine également si elle est visible dans l'arborescence d'accessibilité. La propriété interactivity spécifie si un élément et ses descendants d'arborescence plate (y compris les lignes de texte) sont inertes ou non. La propriété interactivity accepte l'une des deux valeurs suivantes: auto ou inert.

Propriétés de débordement logique

Les propriétés CSS overflow-inline et overflow-block vous permettent de définir le débordement dans les directions inline et block par rapport au mode d'écriture. En mode d'écriture horizontal, overflow-inline est mappé sur overflow-x, tandis qu'en mode d'écriture verticale, il est mappé sur overflow-y.

Les fonctions liées au signe ​abs() et sign() calculent diverses fonctions liées au signe de leur argument.

Propriété dynamic-range-limit

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

Fonction shape()

La fonction shape() permet d'utiliser des formes libres responsives dans la propriété clip-path. Il vous permet de définir une série de commandes, équivalentes aux commandes de path(). Toutefois, les commandes acceptent les unités responsives (par exemple, % ou vw), ainsi que toutes les valeurs CSS telles que les propriétés personnalisées.

Le pseudo-élément ::column

Un pseudo-élément ::column, qui permet d'appliquer un ensemble limité de styles aux fragments générés. Plus précisément, cela se limite aux styles qui n'affectent pas la mise en page et qui peuvent donc être appliqués après la mise en page.

Pseudo-éléments ::scroll-button()

Autorisez la création de boutons de défilement interactifs en tant que pseudo-éléments. Exemple :

.scroller {
  overflow: auto;
}

.scroller::scroll-button(inline-start) {
  content: "<";
}

.scroller::scroll-button(inline-end) {
  content: ">";
}

Ils doivent pouvoir être sélectionnés et se comporter comme un bouton (y compris leurs styles UA). Lorsqu'il est activé, un défilement doit être effectué dans la direction indiquée d'une certaine quantité. Lorsqu'il n'est pas possible de faire défiler l'écran dans cette direction, ils doivent être désactivés (et stylisés avec :disabled). Sinon, ils sont activés (et stylisés avec :enabled). Le sélecteur vous permet de définir des boutons dans quatre directions logiques : block-start, block-end, inline-start et inline-end, ainsi que dans quatre directions physiques: up, down, left et right.

::scroll-marker et ::scroll-marker-group

Ajoute les ::scroll-marker et ::scroll-marker-group pour les conteneurs à défilement. Ces pseudo-éléments vous permettent de créer un ensemble de repères pouvant être sélectionnés pour tous les éléments associés dans le conteneur à défilement.

Style des pseudo-éléments imbriqués

Active le style des pseudo-éléments imbriqués dans d'autres pseudo-éléments. Jusqu'à présent, la compatibilité est définie pour ::before::marker et ::after::marker, et ::column::scroll-marker sera compatible à l'avenir.

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 s'ils ont déjà été cliqués à partir de ce site racine et de cette origine de frame. En ne stylisant que les liens sur lesquels les utilisateurs ont déjà cliqué sur ce site et dans ce frame, les nombreuses attaques par canal auxiliaire développées pour obtenir des informations de style sur les liens :visited sont désormais obsolètes, car elles ne fournissent plus de nouvelles informations sur les utilisateurs aux sites.

Une exception s'applique aux liens vers soi-même, où les liens vers les pages d'un site peuvent être stylisés en :visited, même s'ils n'ont pas encore été cliqués sur ce site de niveau supérieur et cette origine de frame exacts. Cette exception n'est activée que dans les cadres ou sous-cadres de niveau supérieur qui ont la même origine que le cadre de niveau supérieur. Les avantages en termes de confidentialité sont toujours obtenus, car les sites savent déjà quelles sous-pages un utilisateur a consultées. Aucune nouvelle information n'est donc exposée. Il s'agit d'une exception demandée par la communauté qui améliore l'expérience utilisateur.

Notations fonctionnelles de progression de l'interpolation: fonctions CSS *progress()

Les notations fonctionnelles progress(), media-progress() et container-progress() représentent la distance proportionnelle d'une valeur donnée (la valeur de progression) d'une valeur (la valeur de début de progression) à une autre valeur (la valeur de fin de progression). Ils permettent de dessiner un ratio de progression à partir de fonctions mathématiques, de fonctionnalités multimédias et de fonctionnalités de conteneur, respectivement.

Variables safe-area-max-inset-*

En plus des variables d'environnement safe-area-inset, Chrome prend désormais également en charge les variantes max-area-safe-inset-* de ces variables. Contrairement aux marges intérieures dynamiques, les marges intérieures maximales ne changent pas et représentent la marge intérieure maximale possible de la zone de sécurité.

Ces valeurs sont nécessaires lors de la création d'expériences Web performantes de bout en bout.

API Web

Ajout de la prise en charge de MediaStreamTrack à l'API Web Speech

Ajout de la prise en charge de MediaStreamTrack à l'API Web Speech. L'API Web Speech est une API Web standard qui permet aux développeurs d'intégrer la reconnaissance et la synthèse vocales à leurs pages Web. Actuellement, l'API Web Speech utilise le micro par défaut de l'utilisateur comme entrée audio. La prise en charge de MediaStreamTrack permet aux sites Web d'utiliser l'API Web Speech pour ajouter des sous-titres à d'autres sources audio, y compris des pistes audio distantes.

Partitionnement des URL blob: extraction et navigation

Dans le cadre de la proposition Storage Partitioning, cette fonctionnalité 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.

require-sri-for du fournisseur de services pour les créateurs pour les scripts

La directive require-sri-for vous permet d'affirmer que chaque ressource d'un type donné doit être vérifiée pour son intégrité. Si une ressource de ce type est tentée d'être chargée sans métadonnées d'intégrité, cette tentative échouera et déclenchera un rapport de non-respect du CSP. Cet intent couvre la valeur "script" de cette directive.

Créer un client de service worker et hériter du contrôleur de service worker pour l'iFrame srcdoc

Les documents de contexte srcdoc ne sont actuellement pas des clients de service worker et ne sont pas couverts par le service worker de leur page parente. Cela entraîne des divergences (par exemple, l'entrée Resource Timing indique les URL que ces documents chargent, mais le service worker ne les intercepte pas). L'objectif est de corriger les divergences en créant des clients de service worker pour les iFrames srcdoc et en les faisant hériter du contrôleur de service worker de leur parent.

Distribution 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.

Float16Array

Ajoute le tableau typé Float16Array. Les valeurs numériques sont arrondies à IEEE fp16 lors de l'écriture dans des instances Float16Array.

Intégration de l'initiateur de navigation dans la clé de partition de cache HTTP

Le schéma de clé de cache HTTP de Chrome a été 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 via le 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é.

Prévention du suivi HSTS

Limite le suivi des utilisateurs par des tiers via le cache HSTS.

Cette fonctionnalité n'autorise que les mises à niveau HSTS pour les navigations de niveau supérieur et bloque les mises à niveau HSTS pour les demandes de sous-ressources. Cela rend impossible l'utilisation du cache HSTS par les sites tiers pour suivre les utilisateurs sur le Web.

Commandes d'appelant: attributs command et commandfor

Les attributs command et commandfor des éléments <button> vous permettent d'attribuer un comportement aux boutons de manière plus accessible et déclarative, tout en réduisant les bugs et en simplifiant la quantité de code JavaScript nécessaire pour l'interactivité. Lorsque vous cliquez, appuyez ou activez un bouton avec les attributs commandfor et command, un CommandEvent est envoyé sur l'élément référencé par commandfor, avec certains comportements par défaut tels que l'ouverture de boîtes de dialogue et de pop-ups.

Ajout de la prise en charge de <link rel="facilitated-payment" href="..."> comme indice indiquant que le navigateur doit informer les clients de paiement enregistrés d'un paiement par transfert en attente.

Propriété sourceElement de NavigateEvent

Lorsqu'une navigation est initiée par un élément (c'est-à-dire un clic sur un lien ou l'envoi d'un formulaire), la propriété sourceElement sur NavigateEvent renvoie l'élément initiateur.

Modification du nom de la raison de l'API NotRestoredReasons

L'API NotRestoredReasons modifie certains des textes de motif pour les aligner sur les noms normalisés. Les développeurs qui surveillent ces raisons peuvent constater un changement dans les textes de justification.

API Web Speech sur l'appareil

Cette fonctionnalité ajoute la compatibilité avec la reconnaissance vocale sur l'appareil à l'API Web Speech, ce qui permet aux sites Web de s'assurer qu'aucun contenu audio ni aucune transcription vocale n'est envoyé à un service tiers pour traitement. Les sites Web peuvent interroger la disponibilité de la reconnaissance vocale sur l'appareil pour des langues spécifiques, inviter les utilisateurs à installer les ressources nécessaires à la reconnaissance vocale sur l'appareil et choisir entre la reconnaissance vocale sur l'appareil ou dans le cloud selon les besoins.

L'URL du client du service worker ignore les modifications history.pushState

Modifie la propriété Client.url du service worker pour ignorer les modifications de l'URL du document à l'aide de history.pushState() et d'autres API d'historique similaires. La propriété Client.url est destinée à être l'URL de création du document HTML, qui ignore ces modifications.

Prise en charge des attributs rel et relList pour SVGAElement

L'interface SVGAElement dans SVG 2.0 permet de manipuler des éléments <a> semblables aux éléments d'ancrage HTML. La prise en charge des attributs rel et relList améliore la sécurité et la confidentialité pour les développeurs. Cet alignement avec les éléments d'ancrage HTML garantit la cohérence et la facilité d'utilisation dans les technologies Web.

Codes temporels pour les trames encodées RTC

Cette fonctionnalité consiste à exposer sur le Web certains codes temporels présents dans les images encodées WebRTC transmises via RTCPeerConnection. Les codes temporels en question sont les suivants:

  • Code temporel de capture: code temporel de la capture initiale d'un frame.
  • Code temporel de réception: code temporel de réception d'une trame

Mettez à jour 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.

L'API fetchLater

L'API fetchLater() est une API JavaScript permettant de demander une récupération différée, particulièrement utile pour une balise plus fiable à la fin de la durée de vie d'une page. Une fois appelée dans un document, une requête différée est mise en file d'attente par le navigateur dans l'état "PENDING" (EN ATTENTE) et est appelée par la première des conditions suivantes:

Le document est détruit. Après un délai spécifié par l'utilisateur. Pour des raisons de confidentialité, toutes les requêtes en attente sont effacées lorsque le document entre dans bfcache, quel que soit le temps restant. Le navigateur décide qu'il est temps de l'envoyer.

L'API renvoie un FetchLaterResult contenant un champ booléen activated pouvant être mis à jour pour indiquer si la requête différée a été envoyée ou non. En cas d'envoi réussi, l'ensemble de la réponse est ignoré par le navigateur, y compris le corps et les en-têtes.

Notez que du point de vue de l'utilisateur de l'API, l'heure d'envoi exacte est inconnue.

Nouveaux tests Origin

Dans Chrome 135, vous pouvez activer les nouvelles phases d'évaluation de l'origine suivantes.

Demandeurs d'intérêts

Cette fonctionnalité ajoute un attribut interesttarget aux éléments <button> et <a>. L'attribut interesttarget ajoute des comportements d'intérêt à l'élément. Ainsi, lorsque l'utilisateur "manifeste de l'intérêt" pour l'élément, des actions sont déclenchées sur l'élément cible. Les actions peuvent inclure l'affichage d'un pop-up, par exemple. L'agent utilisateur se charge de détecter quand l'utilisateur "manifeste de l'intérêt" pour l'élément, à l'aide de méthodes telles que le survol de l'élément avec une souris, l'appui sur des touches de raccourci spéciales sur le clavier ou l'appui prolongé sur l'élément sur les écrans tactiles. Lorsqu'un intérêt est exprimé ou perdu, un InterestEvent est déclenché sur la cible, qui a des actions par défaut dans le cas des popovers (affichage et masquage du popover).

Intégrité basée sur les signatures

Cette fonctionnalité fournit aux développeurs Web un mécanisme permettant de vérifier la provenance des ressources sur lesquelles ils dépendent, créant ainsi une base technique pour la confiance dans les dépendances d'un site. En résumé: les serveurs peuvent signer les réponses avec une paire de clés Ed25519, et les développeurs Web peuvent demander à l'agent utilisateur de valider la signature à l'aide d'une clé publique spécifique. Cela constitue un complément utile aux vérifications basées sur les URL proposées par le Content Security Policy, d'une part, et aux vérifications basées sur le contenu de l'intégrité des sous-ressources, d'autre part.

Abandons et suppressions

Cette version de Chrome introduit les abandons et suppressions listés ci-dessous. 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 une fonctionnalité.

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. Chrome a implémenté une implémentation dans Chrome 99. Cependant, la proposition a changé pour déplacer plusieurs getters dans des fonctions. Nous devons supprimer les getters obsolètes et relancer les fonctions renommées.

Cette version de Chrome supprime trois fonctionnalités.

Suppression de la méthode navigator.xr.supportsSession obsolète

navigator.xr.supportsSession a été remplacé dans la spécification WebXR par la méthode navigator.xr.isSessionSupported en septembre 2019 après avoir reçu des commentaires de la part du TAG sur la forme de l'API. Depuis, elle a été marquée comme obsolète dans Chrome, ce qui génère un avertissement dans la console redirigeant les développeurs vers l'API mise à jour. L'utilisation de l'appel est très faible, et il a été confirmé que tous les principaux frameworks utilisés pour créer du contenu WebXR ont été mis à jour pour utiliser l'appel plus récent.

Supprimer la propriété canTransition de NavigateEvent

Dans Chrome 108, la méthode transitionWhile() et la propriété canTransition de NavigateEvent ont été remplacées par la nouvelle méthode intercept() et la propriété canIntercept. À ce moment-là, la méthode transitionWhile() a été supprimée. Cependant, nous avons oublié de supprimer la propriété canTransition. Nous l'avons plutôt laissée en tant qu'alias de canIntercept. Dans Chrome 135, nous allons corriger ce problème et supprimer canTransition. Toutes les utilisations de canTransition peuvent être remplacées par canIntercept, sans modification du comportement.

Suppression de la limite WebGPU maxInterStageShaderComponents

La limite maxInterStageShaderComponents est supprimée en raison d'une combinaison de facteurs:

  • Redondance avec maxInterStageShaderVariables: cette limite remplit déjà un objectif similaire, à savoir contrôler la quantité de données transmises entre les étapes de nuanceur.
  • Différences mineures: bien que les deux limites soient calculées de manière légèrement différente, ces différences sont mineures et peuvent être gérées efficacement dans maxInterStageShaderVariables limit.
  • Simplification: la suppression de maxInterStageShaderComponents simplifie l'interface du nuanceur et réduit la complexité pour les développeurs. Au lieu de gérer deux limites distinctes (qui s'appliquent simultanément, mais avec des différences subtiles), ils peuvent se concentrer sur maxInterStageShaderVariables, qui est plus approprié et plus complet.