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
.
Fonctions liées aux signes: abs()
et sign()
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.
Partitionner 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 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.
Associer rel="facilitated-payment"
pour accepter les paiements par transfert
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 surmaxInterStageShaderVariables
, qui est plus approprié et plus complet.