Chrome 124 bêta

Sauf indication contraire, les modifications suivantes 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 124 est en version bêta depuis le 20 mars 2024. Vous pouvez télécharger la dernière version sur Google.com pour ordinateur ou sur le Google Play Store sur Android.

CSS

Cette version inclut deux nouvelles fonctionnalités CSS.

CSSImportRule.styleSheet

Autorise CSSImportRule.styleSheet à avoir une valeur nulle. L'attribut styleSheet dans CSSImportRule peut être nul si aucune feuille de style CSS n'est associée.

CSSKeyframesRule.length

Il expose l'attribut length de CSSKeyframesRule. Les interfaces qui acceptent les propriétés indexées doivent définir un attribut de type entier nommé length.

HTML

Cette version inclut deux nouvelles fonctionnalités HTML.

Attribut writingsuggestions

Les navigateurs commencent à proposer des suggestions de texte aux utilisateurs lorsqu'ils saisissent du texte dans différents champs modifiables du Web. Bien que cela soit généralement utile pour les utilisateurs, il peut arriver que les développeurs souhaitent désactiver l'aide à la rédaction fournie par le navigateur, comme les extensions ou les sites fournissant des fonctionnalités similaires.

Le nouvel attribut writingsuggestions comporte des valeurs true ou false qui permettent aux développeurs d'activer ou de désactiver les suggestions rédactionnelles fournies par le navigateur. L'état de l'attribut d'un élément peut également être hérité des éléments ancêtres, ce qui permet aux développeurs de contrôler cette fonctionnalité à l'échelle de chaque élément, document ou sous-document.

Conteneurs de défilement pouvant être sélectionnés au clavier

Améliore l'accessibilité en rendant les conteneurs de défilement sélectionnables à l'aide de la navigation de sélection séquentielle. Avant cette modification, la touche de tabulation ne mettait pas en surbrillance les défilements, sauf si tabIndex est explicitement défini sur 0 ou plus.

En rendant le curseur sélectionnable par défaut, les utilisateurs qui ne peuvent pas (ou ne veulent pas) utiliser une souris pourront sélectionner le contenu tronqué à l'aide de la touche de tabulation et des touches fléchées du clavier. Ce comportement n'est activé que si le conteneur de défilement ne contient aucun enfant sélectionnable au clavier.

Cette fonctionnalité sera déployée progressivement à partir de Chrome 124 et disponible pour tous les utilisateurs dans Chrome 125. En savoir plus sur les défileurs sélectionnables au clavier

API Web

Ajouts à l'API Attribution Reporting

Des fonctionnalités ont été ajoutées à l'API Attribution Reporting pour créer des fonctionnalités de débogage supplémentaires compatibles avec les rapports de débogage des échecs d'analyse, améliorer l'ergonomie de l'API en prenant en charge un champ permettant de spécifier la plate-forme d'enregistrement préférée et améliorer la confidentialité.

Document Picture-in-picture: ajout d'une option pour masquer le bouton "Revenir à l'onglet"

Cela ajoute un nouveau paramètre (disallowReturnToOpener) à l'API Picture-in-picture du document qui, lorsqu'il est défini sur "true", indique au navigateur qu'il ne doit pas afficher de bouton dans la fenêtre Picture-in-picture pour permettre à l'utilisateur de revenir à l'onglet d'ouverture.

Bien qu'il soit toujours judicieux d'ajouter un bouton pour revenir à l'onglet d'ouverture dans le cas Picture-in-picture de la vidéo (le flux vidéo peut être renvoyé à l'élément vidéo dans l'onglet d'ouverture), ce n'est pas toujours le cas pour les expériences Picture-in-picture de document. Cela permet aux développeurs de mieux contrôler l'expérience utilisateur lorsqu'ils estiment qu'un tel bouton n'est pas pertinent pour leur cas d'utilisation.

Pour en savoir plus, consultez la documentation sur les documents Picture-in-picture.

Blocage de l'affichage des documents

Cette fonctionnalité permet aux auteurs de bloquer l'affichage d'un document jusqu'à ce que le contenu critique ait été analysé, ce qui garantit un premier rendu cohérent dans tous les navigateurs. Sans cette fonctionnalité, l'état du premier rendu dépend des méthodes heuristiques de rendement de l'analyse, qui peuvent varier d'un navigateur à l'autre.

Cela est particulièrement important pour les transitions de vue, où l'état du DOM analysé sur la première image peut modifier considérablement la transition créée.

Notez que cette fonctionnalité implémente une syntaxe <link rel=expect href="#id"> qui permet à un élément "link" de faire référence à un autre élément attendu sur la page. Le rendu est ensuite bloqué jusqu'à ce que l'élément attendu soit entièrement analysé. Cela remplace l'implémentation précédente d'un attribut HTML qui permet de bloquer l'affichage de l'ensemble du document.

jitterBufferTarget attribut

L'attribut jitterBufferTarget permet aux applications de spécifier une durée cible en millisecondes de contenu multimédia que le tampon de gigue RTCRtpReceiver doit contenir. Cela a une incidence sur la quantité de mise en mémoire tampon effectuée par le user-agent, ce qui affecte les retransmissions et la récupération après la perte de paquets. Modifier la valeur cible permet aux applications de contrôler le compromis entre le délai de lecture et le risque de manquer d'images audio ou vidéo en raison de la gigue du réseau.

pageswap événement

L'événement pageswap est déclenché sur l'objet de fenêtre d'un document lorsqu'une navigation remplacera ce document par un nouveau document. L'événement fournit des informations d'activation sur la navigation (type, NavigationHistoryEntry pour le nouveau document).

Si la navigation comporte une transition d'affichage inter-document, l'événement est envoyé avant la capture de l'état de l'ancien document. Cela permet au développeur de configurer l'ancien état capturé pour la transition en fonction des informations d'activation de la navigation et de l'état visuel actuel de l'ancien document.

En-tête de requête HTTP priority

Cette opération ajoute l'en-tête de requête priority pour toutes les requêtes HTTP avec les informations de priorité de la requête au moment de son envoi.

RFC 9218 (Extensible Prioritization Scheme pour HTTP) définit un en-tête de requête HTTP priority à utiliser pour signaler la priorité de la requête aux origines (et aux intermédiaires). Il définit également les processus de négociation et les trames au niveau du protocole pour que HTTP/2 et HTTP/3 fournissent les mêmes informations de priorité.

L'en-tête ne peut signaler la priorité initiale d'une ressource que lors de sa première demande, tandis que les mécanismes basés sur les frames permettent de modifier la priorité par la suite.

L'en-tête peut fonctionner de bout en bout avec les serveurs d'origine (et fournir un mécanisme permettant à l'origine de remplacer la priorité si elle est reconnue par des intermédiaires), tandis que les trames sont limitées à fonctionner au niveau d'une liaison.

Cette fonctionnalité est spécifiquement conçue pour prendre en charge le schéma de priorisation basé sur l'en-tête.

Autorisation d'accès au réseau privé pour assouplir le contenu mixte

Pour établir des connexions à des appareils sur un réseau local qui n'ont pas de noms uniques et qui ne peuvent donc pas obtenir de certificats TLS, cette fonctionnalité introduit une nouvelle option dans fetch(), qui permet de déclarer l'intention d'un développeur de communiquer avec un tel appareil. Cela inclut une nouvelle fonctionnalité contrôlée par des règles pour contrôler l'accès de chaque site à cette fonctionnalité, ainsi que de nouveaux en-têtes pour la réponse préliminaire du serveur afin de fournir des métadonnées supplémentaires.

Conseil client Sec-CH-UA-Form-Factors

Cette suggestion fournit au serveur des informations sur les facteurs de forme de l'user-agent. Elle renvoie une ou plusieurs des valeurs de facteur de forme suivantes:

  • Ordinateur: user-agent exécuté sur un ordinateur personnel.
  • Automobile: user-agent intégré à un véhicule, où l'utilisateur peut être responsable de l'utilisation du véhicule et ne pas être en mesure de soigner les petits détails.
  • Mobile: petit appareil tactile généralement porté par la personne de l'utilisateur.
  • Tablette: appareil tactile plus grand que "Mobile" et qui n'est généralement pas porté par la personne de l'utilisateur.
  • XR: appareils immersifs qui enrichissent ou remplacent l'environnement qui entoure l'utilisateur.
  • EInk: appareil caractérisé par des mises à jour de l'écran lentes, et une résolution des couleurs limitée ou inexistante.
  • Montre: appareil mobile doté d'un petit écran (généralement moins de 2 pouces) porté de manière à permettre à l'utilisateur de le regarder rapidement.

setHTMLUnsafe et parseHTMLUnsafe

Les méthodes setHTMLUnsafe et parseHTMLUnsafe permettent d'utiliser la fonction Shadow DOM déclarative à partir de JavaScript. Ces méthodes permettent également d'analyser impérativement le code HTML dans le DOM, par rapport à innerHTML ou DOMParser.

Mises à jour de l'API Shared Storage

Cette mise à jour permet d'exécuter des Worklets de différentes origines sans qu'il soit nécessaire de créer un iFrame.

API Streams: itération asynchrone ReadableStream

Les API de flux fournissent des primitives interopérables et omniprésentes pour créer, composer et consommer des flux de données. Cette modification prend en charge le protocole itérable asynchrone de l'API ReadableStream, ce qui permet d'utiliser des flux lisibles comme source des boucles await...of.

SVG context-fill et context-stroke

Intègre une fonctionnalité SVG existante qui autorise les mots clés context-fill et context-stroke lorsque vous spécifiez les propriétés de remplissage et de trait. Cela ne concerne que les sous-arborescences SVG instanciées avec un élément <use> et les éléments <marker> instanciés à l'aide de la propriété marker sur un élément <path>. Dans ce cas, context-fill et context-stroke sont résolus sur la valeur des propriétés fill et stroke du <use> ou du <path>.

WebGPU: compatibilité avec ServiceWorker et SharedWorker

Ajout de la prise en charge de ServiceWorker et de SharedWorker dans WebGPU, conformément aux fonctionnalités WebGL existantes.

Les service workers activent les fonctionnalités hors connexion et le traitement en arrière-plan pour WebGPU. Cela signifie que les applications Web ou les extensions Chrome exigeantes en ressources graphiques peuvent mettre en cache des ressources et effectuer des calculs même lorsque l'utilisateur n'interagit pas activement avec la page.

Les workers partagés permettent à plusieurs onglets ou contextes d'extension de coordonner et de partager les ressources WebGPU. Cela se traduit par des performances plus fluides et une utilisation plus efficace du matériel graphique de l'utilisateur.

API WebSocketStream

L'API WebSocket fournit une interface JavaScript au protocole WebSocket RFC6455. Bien qu'il ait été efficace, il est gênant d'un point de vue ergonomique et il lui manque la caractéristique importante de contre-pression. L'objectif de l'API WebSocketStream est de résoudre ces problèmes en intégrant les flux WHATWG à l'API WebSocket.

Pour en savoir plus, consultez l'article WebSocketStream: intégrer des flux à l'aide de l'API WebSocket.

Encapsulation de clé X25519Kyber768 pour TLS

Protège le trafic TLS actuel de Chrome contre la future cryptanalyse quantique en déployant l'algorithme de contrat de clé antiquantique Kyber768.

Il s'agit d'un accord clé hybride X25519 et Kyber768 basé sur la norme IETF. Cette spécification et ce lancement n'entrent pas dans le cadre du W3C. Cet accord clé sera lancé sous la forme d'un algorithme de chiffrement TLS et doit être transparent pour les utilisateurs.

Pour en savoir plus, consultez Protéger le trafic Chrome avec Kyber KEM hybride.

Essais d'origine en cours

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

Essai d'abandon pour les événements de mutation

Les événements de mutation, y compris DOMSubtreeModified, DOMNodeInserted, DOMNodeRemoved, DOMNodeRemovedFromDocument, DOMNodeInsertedIntoDocument et DOMCharacterDataModified, peuvent nuire aux performances des pages et augmenter considérablement la complexité liée à l'ajout de nouvelles fonctionnalités sur le Web. Ces API ont été abandonnées dans la spécification en 2011 et ont été remplacées (en 2012) par l'API Mutation Observer, qui s'est avérée beaucoup plus performante.

La prise en charge des événements de mutation sera désactivée par défaut à partir de Chrome 127, aux alentours du 30 juillet 2024. Le code doit être migré vers l'API Mutation Observer avant cette date pour éviter le dysfonctionnement du site. Si vous avez besoin de plus de temps, inscrivez-vous à l'essai d'abandon des événements Mutation pour réactiver la fonctionnalité pendant une durée limitée sur un site donné. Vous pouvez l'utiliser jusqu'à Chrome 134, qui prendra fin le 25 mars 2025.

Une règle d'entreprise MutationEventsEnabled peut également être utilisée aux mêmes fins, également via Chrome 134.

Inscrivez-vous à l'essai d'abandon des événements de mutation.

Abandons et suppressions

Cette version de Chrome présente les abandons et suppressions suivants. Accédez à ChromeStatus.com pour consulter la liste des abandons planifiés, des abandons actuels et des suppressions précédentes.

Cette version de Chrome supprime une fonctionnalité.

Suppression de l'alias "window-placement" pour l'autorisation et la règle d'autorisation "window-management"

Supprime l'alias "window-placement" pour l'autorisation et la règle d'autorisation "window-management". Cela s'inscrit dans une démarche plus vaste de renommer les chaînes en abandonnant et en supprimant l'option "window-placement" à terme. Ce changement de terminologie améliore la longévité du descripteur à mesure que l'API Window Management évolue.