Date de sortie de la version stable:4 février 2025
Sauf indication contraire, les modifications suivantes s'appliquent à la version du canal stable Chrome 133 pour Android, ChromeOS, Linux, macOS et Windows.
HTML et DOM
Valeur d'indice de l'attribut popover
L'API Popover spécifie le comportement pour deux valeurs de l'attribut popover : "auto" et "manual". Cette fonctionnalité décrit une troisième valeur, popover=hint
. Les indices, qui sont le plus souvent associés à des comportements de type "info-bulle", ont des comportements légèrement différents. La principale différence est qu'une suggestion est subordonnée à l'option automatique lors de l'ouverture de piles imbriquées de popovers. Il est donc possible d'ouvrir un popover d'indice sans rapport alors qu'une pile existante de popovers automatiques reste ouverte.
L'exemple canonique est un sélecteur <select>
ouvert (popover=auto
) et une info-bulle déclenchée par le survol (popover=hint
). Cette action ne ferme pas le sélecteur <select>
.
Bug 1416284 suivi | Enregistrement sur ChromeStatus.com
Améliorations apportées aux demandeurs et aux ancres des popovers
Ajoute une méthode impérative pour définir les relations des appelants entre les popovers avec popover.showPopover({source})
. Permet aux relations des invocateurs de créer des références à des éléments d'ancres implicites.
Bug de suivi 364669918 | Enregistrement sur ChromeStatus.com
Le popover imbriqué dans l'appelant ne doit pas l'invoquer à nouveau
Dans le cas suivant, le clic sur le bouton active correctement le pop-up. Toutefois, le clic sur le pop-up lui-même après cela ne devrait pas le fermer.
<button popovertarget=foo>Activate
<div popover id=foo>Clicking me shouldn't close me</div>
</button>
Auparavant, cela se produisait, car le clic du popover se propage jusqu'à <button>
et active l'appelant, ce qui ferme le popover. Ce comportement a été modifié pour correspondre à celui attendu.
Bug de suivi https://crbug.com/379241451 | Enregistrement sur ChromeStatus.com
CSS
Fonction attr()
CSS avancée
Implémente l'augmentation de attr()
spécifiée dans le niveau 5 du CSS, qui permet d'utiliser d'autres types que <string>
et dans toutes les propriétés CSS (en plus de la compatibilité existante avec le contenu du pseudo-élément).
MDN attr() | Bug de suivi 246571 | Enregistrement sur ChromeStatus.com | Spécification
Pseudo-classe CSS :open
La pseudo-classe :open
correspond à <dialog>
et <details>
lorsqu'ils sont ouverts, et à <select>
et <input>
lorsqu'ils sont dans des modes qui comportent un sélecteur et que celui-ci s'affiche.
Bug 324293874 | Enregistrement sur ChromeStatus.com | Spécification
Requêtes de conteneur d'état de défilement CSS
Utilisez des requêtes de conteneur pour styliser les descendants de conteneurs en fonction de leur état de défilement.
Le conteneur de requête est un conteneur de défilement ou un élément affecté par la position de défilement d'un conteneur de défilement. Vous pouvez interroger les états suivants:
stuck
: un conteneur positionné de manière fixe est collé à l'un des bords de la barre de défilement.snapped
: un conteneur aligné sur le point d'ancrage de défilement est actuellement ancré horizontalement ou verticalement.scrollable
: indique si un conteneur de défilement peut être défilé dans la direction de la requête.
Un nouveau type de conteneur: scroll-state
permet d'interroger les conteneurs.
Bug de suivi 40268059 | Enregistrement sur ChromeStatus.com | Spécification
CSS text-box
, text-box-trim
et text-box-edge
Pour obtenir un équilibre optimal du contenu textuel, les propriétés text-box-trim
et text-box-edge, ainsi que la propriété abrégée text-box, permettent de mieux contrôler l'alignement vertical du texte.
La propriété text-box-trim
spécifie les côtés à couper, au-dessus ou en dessous, et la propriété text-box-edge
spécifie comment la bordure doit être coupée.
Ces propriétés vous permettent de contrôler précisément l'espacement vertical à l'aide des métriques de police.
Bug de suivi 1411581 | Enregistrement sur ChromeStatus.com | Spécification
API Web
Animation.overallProgress
Fournit aux développeurs une représentation pratique et cohérente de l'avancement d'une animation au fil de ses itérations, quelle que soit la nature de sa chronologie. Sans la propriété overallProgress
, vous devez calculer manuellement l'avancement d'une animation, en tenant compte du nombre d'itérations de l'animation et si le currentTime
de l'animation est un pourcentage du temps total (comme dans le cas des animations basées sur le défilement) ou une quantité de temps absolue (comme dans le cas des animations basées sur le temps).
Bug 40914396 | Enregistrement sur ChromeStatus.com | Spécification
Méthode pause()
de l'objet Atomics
Ajoute la méthode pause()
à l'objet d'espace de noms Atomics
pour indiquer au processeur que le code actuel exécute un spinlock.
Enregistrement sur ChromeStatus.com | Spécification
Rapports sur les hachages CSP pour les scripts
Pour des raisons de sécurité, les applications Web complexes doivent souvent suivre les sous-ressources qu'elles téléchargent.
En particulier, les normes et bonnes pratiques du secteur à venir (par exemple, la version 4 de la norme PCI-DSS) exigent que les applications Web conservent un inventaire de tous les scripts qu'elles téléchargent et exécutent.
Cette fonctionnalité s'appuie sur le CSP et l'API Reporting pour signaler les URL et les hachages (pour CORS/même origine) de toutes les ressources de script que le document charge.
Bug de suivi 377830102 | Enregistrement sur ChromeStatus.com
Déplacement préservant l'état DOM
Ajoute une primitive DOM (Node.prototype.moveBefore
) qui vous permet de déplacer des éléments dans une arborescence DOM, sans réinitialiser l'état de l'élément.
Lorsque vous déplacez un élément au lieu de le supprimer et de l'insérer, l'état suivant est conservé:
- Les éléments
<iframe>
restent chargés. - L'élément actif reste sélectionné.
- Les pop-ups, les boîtes de dialogue en plein écran et les boîtes de dialogue modales restent ouverts.
- Les transitions et les animations CSS continuent.
Enregistrement sur ChromeStatus.com
Exposez l'attribut attributionsrc
sur <area>
.
Aligne l'exposition de l'attribut attributionsrc
sur <area>
avec le comportement de traitement existant de l'attribut, même lorsqu'il n'était pas exposé.
De plus, il est logique de prendre en charge l'attribut sur <area>
, car cet élément est une surface de navigation de premier ordre, et Chrome est déjà compatible avec les autres surfaces de <a>
et window.open
.
Bug de suivi 379275911 | Enregistrement sur ChromeStatus.com | Spécification
Interface FileSystemObserver
L'interface FileSystemObserver
informe les sites Web des modifications apportées au système de fichiers. Les sites observent les modifications apportées aux fichiers et aux répertoires auxquels l'utilisateur a précédemment accordé une autorisation, sur son appareil local ou dans le système de fichiers Bucket (également appelé système de fichiers privé d'origine). Ils sont informés des informations de modification de base, telles que le type de modification.
Bug 40105284 en cours de suivi | Enregistrement sur ChromeStatus.com
Plusieurs cartes d'importation
Actuellement, les cartes d'importation doivent être chargées avant tout module ES. Il ne peut y avoir qu'une seule carte d'importation par document. Cela les rend fragiles et potentiellement lents à utiliser dans des scénarios réels: tout module qui se charge avant eux casse l'application entière. Dans les applications comportant de nombreux modules, ils deviennent une grande ressource bloquante, car la carte complète de tous les modules possibles doit d'abord se charger.
Cette fonctionnalité permet d'utiliser plusieurs cartes d'importation par document, en les fusionnant de manière cohérente et déterministe.
Enregistrement sur ChromeStatus.com
En-têtes d'accès au stockage
Fournit un autre moyen pour les composants intégrés authentifiés d'activer les cookies non partitionnés. Ces en-têtes indiquent si des cookies non partitionnés sont (ou peuvent être) inclus dans une requête réseau donnée et permettent aux serveurs d 'activer les autorisations d'accès au stockage qui leur ont déjà été accordées. Fournir une autre méthode pour activer l'autorisation "storage-access" permet aux ressources autres que les iFrames de l'utiliser et peut réduire la latence pour les éléments intégrés authentifiés.
Bug 329698698 en cours de suivi | Enregistrement sur ChromeStatus.com | Spécification
Prise en charge de la création de ClipboardItem
avec Promise<DOMString>
ClipboardItem
, qui est l'entrée de la méthode write()
de presse-papiers asynchrone, accepte désormais des valeurs de chaîne en plus des blobs dans son constructeur. ClipboardItemData
peut être un Blob, une chaîne ou une promesse qui se résout en Blob ou en chaîne.
Bug de suivi 40766145 | Enregistrement sur ChromeStatus.com | Spécification
WebAssembly Memory64
La proposition memory64 permet de prendre en charge les mémoires WebAssembly linéaires dont la taille est supérieure à 2^32 bits. Il ne fournit aucune nouvelle instruction, mais étend les instructions existantes pour permettre des index 64 bits pour les mémoires et les tables.
Enregistrement sur ChromeStatus.com | Spécification
API Web Authentication: méthode getClientCapabilities()
PublicKeyCredential
La méthode getClientCapabilities()
PublicKeyCredential
vous permet de déterminer quelles fonctionnalités WebAuthn sont compatibles avec le client de l'utilisateur. La méthode renvoie une liste des fonctionnalités compatibles, ce qui permet aux développeurs d'adapter les expériences et les workflows d'authentification en fonction des fonctionnalités spécifiques du client.
Bug de suivi 360327828 | Enregistrement sur ChromeStatus.com | Spécification
Algorithme X25519 de l'API Web Cryptography
L'algorithme "X25519" fournit des outils permettant d'effectuer un accord de clé à l'aide de la fonction X25519 spécifiée dans [RFC7748]. L'identifiant de l'algorithme "X25519" peut être utilisé dans l'interface SubtleCrypto pour accéder aux opérations implémentées: generateKey, importKey, exportKey, deriveKey et deriveBits.
Bug de suivi 378856322 | Article sur ChromeStatus.com | Spécification
Performances
Figement en mode Économiseur d'énergie
Lorsque l'économiseur d'énergie est activé, Chrome fige un "groupe de contexte de navigation" masqué et silencieux depuis plus de cinq minutes si un sous-groupe de cadres de même origine dépasse un seuil d'utilisation du processeur, sauf dans les cas suivants:
- Fournit une fonctionnalité d'audioconférence ou de visioconférence (détectée en identifiant un micro, une caméra ou une capture d'écran/de fenêtre/d'onglet, ou une interface RTCPeerConnection avec un RTCDataChannel "ouvert" ou un MediaStreamTrack "en direct").
- Contrôle un appareil externe (détecté à l'aide de WebUSB, Web Bluetooth, WebHID ou Web Serial).
- Maintient un verrouillage Web ou une connexion IndexedDB qui bloque une mise à jour de version ou une transaction sur une autre connexion.
- Le blocage consiste à suspendre l'exécution. Il est officiellement défini dans l'API Page Lifecycle.
Le seuil d'utilisation du processeur sera calibré pour figer environ 10% des onglets en arrière-plan lorsque l'économiseur d'énergie est activé.
Bug 325954772 en cours de suivi | Enregistrement sur ChromeStatus.com
Exposer des renderTime
cross-origin affinés dans le timing des éléments et le LCP (quelle que soit la valeur de Timing-Allow-Origin
)
Le timing des éléments et les entrées LCP comportent un attribut renderTime
, aligné sur le premier frame dans lequel une image ou un texte a été peint.
Cet attribut est actuellement protégé pour les images inter-origines en exigeant un en-tête Timing-Allow-Origin
sur la ressource image. Toutefois, cette restriction est facile à contourner (par exemple, en affichant une image de même origine et une image de source différente dans le même frame).
Comme cela a été source de confusion, nous prévoyons de supprimer cette restriction et d'augmenter tous les temps de rendu de 4 ms lorsque le document n'est pas isolé entre les origines. Cette valeur semble suffisamment grossière pour éviter toute fuite d'informations utiles sur le moment du décodage des images inter-origines.
Bug de suivi 373263977 | Enregistrement sur ChromeStatus.com | Spécification
Rétablir responseStart
et introduire firstResponseHeadersStart
Lorsque les premiers indices 103 sont activés, les réponses comportent deux codes temporels:
- Lorsque les premiers indices arrivent (103)
- Lorsque les en-têtes finaux arrivent (par exemple, 200)
- Lorsque Chrome 115 a publié
firstInterimResponseStart
pour permettre de mesurer ces deux codes temporels, nous avons également modifié la signification deresponseStart
(utilisé par le temps de latence du premier octet (TTFB)) pour qu'il signifie "les en-têtes finaux". Cela a créé un problème de compatibilité Web avec les navigateurs et les outils qui n'ont pas effectué de modification similaire pour cette métrique couramment utilisée.
Chrome 133 annule cette modification de responseStart
pour résoudre ce problème de compatibilité et introduit firstResponseHeadersStart
pour permettre aux sites de mesurer le temps d'accès aux en-têtes finaux, tout en conservant la définition d'origine du TTFB.
Bug 40251053 | Enregistrement sur ChromeStatus.com | Spécification
Rendu et graphiques
WebGPU: formats de sommet à un composant (et unorm8x4-bgra)
Ajout de formats de sommets supplémentaires qui n'étaient pas présents dans la version initiale de WebGPU en raison d'une incompatibilité ou d'anciennes versions de macOS (qui ne sont plus compatibles avec aucun navigateur). Les formats de sommets à un composant permettent aux applications de ne demander que les données nécessaires, alors qu'auparavant, elles devaient en demander au moins deux fois plus pour les types de données 8 et 16 bits. Le format unorm8x4-bgra permet de charger plus facilement les couleurs de sommets encodées en BGRA tout en conservant le même nuanceur.
Bug 376924407 en cours de suivi | Enregistrement sur ChromeStatus.com
Phases d'évaluation
Désactiver le gel en mode Économiseur d'énergie
Cet essai désactivable permet aux sites de désactiver le comportement de figement en mode Économiseur d'énergie fourni dans Chrome 133.
Test Origin | Bug de suivi 325954772 | Enregistrement sur ChromeStatus.com | Spécification
Cible de référence pour ARIA multi-racine
La cible de référence est une fonctionnalité qui permet d'utiliser des attributs IDREF tels que for
et aria-labelledby
pour faire référence à des éléments dans le Shadow DOM d'un composant, tout en maintenant l'encapsulation des détails internes du Shadow DOM. L'objectif principal de cette fonctionnalité est de permettre à ARIA de fonctionner au-delà des limites de la racine d'ombre.
Un composant peut spécifier un élément dans son arbre d'ombre pour qu'il agisse en tant que "cible de référence". Lorsque le composant hôte est la cible d'un IDREF, comme l'attribut for
d'un libellé, la cible de référence devient la cible effective du libellé.
La racine fantôme spécifie l'ID de l'élément cible dans le Shadow DOM. Pour ce faire, utilisez JavaScript avec l'attribut referenceTarget
sur l'objet ShadowRoot
ou la balise HTML avec l'attribut shadowrootreferencetarget
sur l'élément <template>
.
Test Origin | Enregistrement sur ChromeStatus.com
Abandons et suppressions
Abandon de la limite WebGPU maxInterStageShaderComponents
maxInterStageShaderComponents limit
est obsolète en raison d'une combinaison de facteurs. Date prévue de suppression dans Chrome 135.
- 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 la limite
maxInterStageShaderVariables
. - 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 avec des différences subtiles, ils peuvent se concentrer sur l'maxInterStageShaderVariables
plus approprié et plus complet.
Enregistrement sur ChromeStatus.com
Supprimer la règle de cinq minutes <link rel=prefetch>
Auparavant, lorsqu'une ressource était préchargée à l'aide de <link rel=prefetch>
, Chrome ignorait sa sémantique de cache (à savoir max-age
et no-cache
) pour la première utilisation dans les cinq minutes, afin d'éviter de la récupérer à nouveau. Chrome supprime désormais ce cas particulier et utilise la sémantique de cache HTTP normale.
Cela signifie que les développeurs Web doivent inclure les en-têtes de mise en cache appropriés (Cache-Control ou Expires) pour profiter des avantages de <link rel=prefetch>
.
Cela affecte également les <link rel=prerender>
non standards.
Bug 40232065 en cours de suivi | Enregistrement sur ChromeStatus.com
Suppression du déclenchement de la page d'accueil de Chrome avec les onglets de première utilisation des préférences initiales
L'ajout de chrome://welcome
à la propriété first_run_tabs
du fichier initial_preferences
n'aura désormais aucun effet. Le déclenchement a été supprimé, car cette page est redondante avec l'expérience de première utilisation qui se déclenche sur les plates-formes de bureau.