Chrome 116 bêta

Trajectoire d'animation CSS, API NotRestoredReason et cache amélioré du document, Picture-in-picture, etc.

Sauf indication contraire, les modifications décrites s'appliquent à la dernière version bêta de Chrome pour Android, ChromeOS, Linux, macOS et Windows. Pour en savoir plus sur les fonctionnalités listées ici, cliquez sur les liens fournis ou consultez la liste sur ChromeStatus.com. Chrome 116 est en version bêta depuis le 19 juillet 2023. Vous pouvez télécharger la dernière version sur Google.com sur un ordinateur ou sur le Google Play Store sur Android.

CSS

Cette version inclut deux nouvelles fonctionnalités CSS.

Trajectoire d'animation CSS

Une trajectoire d'animation permet aux auteurs de positionner n'importe quel objet graphique et de l'animer selon un tracé spécifié par le développeur. Cela permet un certain nombre de nouvelles possibilités de transformation puissantes, telles que le positionnement à l'aide de coordonnées polaires (avec la fonction ray()) plutôt que par les coordonnées rectangulaires standards utilisées par la fonction translate(), ou l'animation d'un élément le long d'un tracé défini. Il est ainsi plus facile de définir des transitions spatiales en 2D complexes et attrayantes. Un chemin d'accès peut être spécifié en tant que circle(), ellipse(), rect(), inset(), xywh(), polygon(), ray() et url().

Animations d'affichage et de visibilité du contenu

Chrome 116 est compatible avec les propriétés display et content-visibility dans les animations d'images clés. Cela permet aux développeurs de créer des animations de sortie. L'élément devient alors automatiquement display: none ou content-visibility: hidden, sans qu'il soit nécessaire d'écrire de code JavaScript pour gérer ce changement une fois l'animation terminée. Cela permet d'ajouter des animations de sortie pour des éléments uniquement en CSS.

API Web

AbortSignal.any()

Renvoie un signal qui est abandonné lorsque l'un des signaux sources est annulé. Les développeurs peuvent s'en servir pour combiner des sources d'abandon indépendantes (par exemple, des délais avant expiration spécifiés avec AbortSignal.timeout() et des signaux associés à un AbortController), puis les transmettre à des API asynchrones telles que fetch().

Compatibilité BYOB avec Fetch

L'implémentation de ReadableStream dans Chrome est compatible avec les lecteurs BYOB (Bring Your OwnBuffer) pour les flux d'octets lisibles. Désormais, Response.body est également un flux d'octets lisible au lieu d'un flux lisible "par défaut". Cela permet d'utiliser l'API Fetch avec les lecteurs BYOB, de réduire les frais et les copies liés à la récupération de mémoire et d'améliorer la réactivité pour les utilisateurs. Blob.stream() bénéficie désormais également de cette optimisation.

API NotRestoredReason du cache amélioré

L'API NotRestoredReason indique les raisons pour lesquelles une page n'est pas diffusée depuis BFcache dans une arborescence de frames, via l'API PerformanceNavigationTiming.

Document Picture-in-picture

Document Picture-in-picture ajoute une API pour ouvrir une fenêtre toujours affichée en haut de page pouvant être renseignée avec des HTMLElements arbitraires. Il s'agit d'une extension de l'API HTMLVideoElement existante qui permet uniquement d'insérer un HTMLVideoElement dans une fenêtre Picture-in-picture (PIP). Cela permet aux développeurs Web d'offrir une meilleure expérience PIP aux utilisateurs.

Caractères génériques développés dans les origines des règles d'autorisation

Les caractères génériques de sous-domaines dans les listes d'autorisation offraient une certaine flexibilité, mais se différencient des analyseurs de caractères génériques existants et exigent de nouveaux codes et spécifications. Cet intent permet de réduire ces frais en réutilisant certaines parties de la spécification Content Security Policy existante, et en autorisant scheme + wildcard domain et wildcard port dans la liste d'autorisation. Plus précisément, cet intent adopterait la définition de "host-source" et de "schema-source" au lieu de l'origine dans la définition de la liste d'autorisation, tout en exigeant que la partie "path-part" soit vide (car les règles d'autorisation s'appliquent aux origines correspondantes).

Lot FedCM: API Login Hint, User Info et RP Context

Cette mise à jour groupée permet de personnaliser les flux de connexion fédérée qui utilisent l'API Federated Credential Management (FedCM).

Avec l'API Login Hint, le tiers de confiance peut fournir une indication sur le compte utilisateur qu'il souhaite afficher dans l'interface utilisateur FedCM. Cela sert principalement à offrir une meilleure expérience utilisateur aux utilisateurs connus.

L'API User Info permet au fournisseur d'identité (IdP) de récupérer les informations sur l'utilisateur afin de personnaliser l'expérience de connexion des utilisateurs connus, par exemple à l'aide de boutons personnalisés "Se connecter avec un IdP".

Avec l'API RP Context, le tiers assujetti à des restrictions peut demander à la boîte de dialogue FedCM de remplacer le titre "Se connecter" par "S'inscrire", "Utiliser" ou "Continuer", afin d'aligner l'intention réelle de l'utilisateur.

Événements d'entrée/sortie non composés au niveau de la souris et du pointeur

Faites en sorte que la propriété event.composed dans les événements mouseenter, mouseleave, pointerenter et pointerleave "false" soit conforme aux spécifications et corrige les écarts d'interopérabilité. Les spécifications des événements d'interface utilisateur pour les événements de souris et de pointeur définissent ces événements comme non composés. Les deux spécifications ont cessé leurs définitions d'origine il y a quelques années: https://github.com/w3c/uievents/pull/210 https://github.com/w3c/pointerevents/pull/461. En plus de combler l'écart d'interopérabilité, ce changement corrige une envoi erronée de ces événements à un hôte Shadow DOM dans Chromium lorsque le DOM écoute également.

Supprimer l'héritage du bac à sable document.open

Actuellement, les indicateurs de bac à sable de l'appelant sont appliqués à l'appelé lorsque document.open cible une autre fenêtre. Après cette modification, ce ne sera plus le cas.

Signaler le problème "Critical-CH" à l'origine d'un redémarrage dans NavigationTiming

Les sites Web peuvent indiquer qu'un Hint client spécifique est essentiel à la page en l'incluant dans un en-tête de réponse HTTP Critical-CH. Cela déclenchera un redémarrage de la connexion si l'indication indiquée dans l'en-tête de réponse HTTP Critical-CH a pu être (mais ne l'a pas été) incluse dans la requête HTTP envoyée initialement. Cet intent propose d'ajouter readonly attribute DOMHighResTimeStamp criticalCHRestart; à l'interface PerformanceNavigationTiming.

Essais d'origine en cours

Dans Chrome 116, vous pouvez activer les nouvelles phases d'évaluation suivantes.

COOP: restrict-properties

Cross-Origin-Opener-Policy permet de rompre la relation entre les fenêtres pop-up et les ouvertures afin de renforcer la sécurité. "restrict-properties" est une valeur proposée qui limite la relation au lieu de la supprimer complètement. En cas d'association avec COEP, il activerait crossOriginIsolated.

Inscrivez-vous à l'essai d'origines des restrictions de propriétés COOP.

API FedCM Sign-In Status

L'API IdP Sign-In Status de l'API Federated Credential Management (FedCM) permet à un fournisseur d'identité (IdP) d'envoyer un signal au navigateur lorsque ses utilisateurs se connectent ou se déconnectent. FedCM peut ainsi améliorer ses propriétés de confidentialité en optimisant son expérience utilisateur.

S'inscrire à la phase d'évaluation FedCM Sign-In Status

API EditContext

L'API EditContext simplifie le processus d'intégration d'une application Web à l'aide de méthodes de saisie de texte avancées, telles que l'écriture de formes VK, les panneaux d'écriture manuscrite, la reconnaissance vocale et les compositions IME. L'API améliore l'accessibilité et les performances, et offre de nouvelles fonctionnalités aux éditeurs Web.

S'inscrire à la phase d'évaluation de l'API EditContext

Temps de rendu des frames d'animation (long)

Il s'agit d'une extension des longues tâches. Elle mesure la tâche ainsi que sa mise à jour de rendu ultérieure, en ajoutant des informations telles que les scripts de longue durée, le temps d'affichage et le temps passé dans la mise en page et le style forcés, ce que l'on appelle le thrashing de la mise en page.

Les développeurs peuvent s'en servir pour diagnostiquer la "lenteur", mesurée par l'INP, en identifiant les causes de la congestion du thread principal, qui est souvent la cause d'un INP incorrect.

S'inscrire à la phase d'évaluation de Long Animation Frame Timing