Chrome 121 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 121 est en version bêta depuis le 6 décembre 2023. Vous pouvez télécharger la dernière version sur Google.com sur un ordinateur ou sur le Google Play Store pour un appareil Android.

CSS

Cette version comprend six nouvelles fonctionnalités CSS.

Héritage des points forts CSS

Avec l'héritage CSS Highlight Inheritance, les pseudo-classes de mise en surbrillance CSS, telles que ::selection et ::highlight, héritent de leurs propriétés via la chaîne de pseudo-mise en surbrillance plutôt que via la chaîne d'éléments. Résultat : le modèle d'héritage des propriétés dans les temps forts est plus intuitif.

Cela permet de mettre en œuvre les exigences de la spécification CSS de niveau 4:

"Lorsqu'aucune valeur prise en charge n'est attribuée à une propriété prise en charge par la cascade ... la valeur spécifiée est déterminée par l'héritage du pseudo-élément de mise en surbrillance correspondant de l'élément parent de son élément d'origine."

Barres de défilement CSS: scrollbar-color et scrollbar-width

La spécification CSS Scrollbars permet aux développeurs de styliser les barres de défilement en spécifiant leur couleur et leur épaisseur. Cette spécification ajoute les deux propriétés suivantes. La propriété scrollbar-color permet de modifier le jeu de couleurs des barres de défilement afin qu'elles s'adaptent mieux au style particulier d'une page Web. La propriété scrollbar-width permet d'utiliser des barres de défilement plus étroites, qui peuvent être plus adaptées à certains cas d'utilisation, ou même de les masquer complètement sans affecter la facilité de défilement.

Animation CSS font-palette pour les polices de couleur

La propriété CSS font-palette permet de sélectionner une palette spécifique utilisée pour afficher une police de couleurs. Avec la nouvelle prise en charge de l'animation de cette propriété, le passage d'une palette à l'autre n'est plus une étape discrète, mais une transition en douceur entre deux palettes sélectionnées. Cette méthode fonctionne partout dans les animations et les transitions CSS.

Fonctionnalités CSS orthographiques et grammaticales

Le CSS met en surbrillance les pseudo-éléments permettant de styliser le texte que l'user-agent a signalé comme mal orthographié ou comme grammaticalement incorrect, et des décorations de ligne qui exposent les décorations par défaut du user-agent en cas de fautes d'orthographe et de grammaire. Ces fonctionnalités permettent aux développeurs de choisir des couleurs plus lisibles pour les fautes d'orthographe et de grammaire par défaut, de mettre en surbrillance les mots mal orthographiés avec des couleurs d'arrière-plan ou d'autres décorations, et d'implémenter un correcteur orthographique personnalisé qui se fond dans l'expérience sur l'appareil.

Amélioration du masquage CSS pour le format SVG

Cette nouveauté fait suite à l'amélioration de la prise en charge des masques CSS dans Chrome 120, en ajoutant la prise en charge des masques SVG (plusieurs masques, ainsi que mask-mode, mask-composite, mask-position et mask-repeat). En outre, les masques SVG distants (mask: url(masks.svg#star), par exemple) sont désormais pris en charge.

Valeurs d'affichage spécifiques à Ruby

De nouvelles valeurs de propriétés d'affichage CSS (ruby et ruby-text) ont été ajoutées. Les valeurs d'affichage par défaut de <ruby> et <rt> sont remplacées respectivement par ruby et ruby-text, et la mise en page Ruby respecte ces valeurs d'affichage. Les auteurs Web peuvent utiliser n'importe quel élément tel que <div> pour afficher Ruby en définissant les nouvelles valeurs d'affichage.

API Web

Bundle de fonctionnalités Attribution Reporting: délais d'agrégation réduits, champ Epsilon du rapport au niveau de l'événement, clés réservées

Chrome inclut des modifications de l'API Attribution Reporting axées sur les éléments suivants:

  • Réduction de la perte de transmission grâce à la réduction des retards dans les rapports globaux
  • Configurabilité supplémentaire de l'API grâce à la prise en charge d'un champ epsilon de création de rapports au niveau des événements.
  • Amélioration de l'extensibilité de l'API grâce à l'échec des enregistrements en cas de détection de clés réservées.

API notRestoredReason du cache amélioré

L'API notRestoredReason indique les raisons pour lesquelles une page n'est pas diffusée à partir du cache amélioré à l'aide de l'API PerformanceNavigationTiming.

Exiger un geste de l'utilisateur pour les API de redimensionnement dans le mode Picture-in-picture du document

Cela active les méthodes resizeBy() et resizeTo() sur les fenêtres Picture-in-picture des documents, mais avec la restriction supplémentaire liée aux gestes de l'utilisateur pour atténuer les risques d'abus.

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. Elle améliore l'accessibilité et les performances, et offre de nouvelles fonctionnalités aux éditeurs Web.

Détection de fonctionnalités pour les formats de presse-papiers compatibles

Vous pouvez maintenant vérifier si l'API Async Clipboard prend en charge un certain type MIME en appelant la nouvelle fonction supports() et en transmettant le type MIME en tant qu'argument (par exemple, ClipboardItem.supports('image/png')).

HTMLSelectElement showPicker()

La méthode showPicker() de HTMLSelectElement permet aux développeurs d'ouvrir de manière automatisée le sélecteur d'options d'un élément <select>, selon le format de input.showPicker().

MediaCapabilities: interroger la compatibilité HDR avec decodingInfo()

Étend l'API Media Capabilities pour permettre la détection de la prise en charge du rendu HDR via trois nouveaux champs de dictionnaire VideoConfiguration: hdrMetadataType, colorGamut et TransferFunction.

Chromium implémente ses propres algorithmes de mappage des tons. Par conséquent, il renvoie toujours la valeur "true" pour les métadonnées statiques HDR10 (smpteSt2086). Les métadonnées dynamiques smpteSt2094-40 (HDR10+) et smpteSt2094-10 ne sont actuellement pas acceptées. Par conséquent, elle renvoie la valeur "false".

API Private Aggregation: sélection du coordinateur d'agrégation

Cette modification de l'API Private Aggregation fournit un mécanisme permettant de sélectionner le coordinateur à utiliser pour le chiffrement de la charge utile (à partir d'une liste d'autorisation spécifiée par le fournisseur). Le choix du service est possible avec une option supplémentaire dans les appels run() et selectURL() du stockage partagé, ainsi que dans les appels runAdAuction() et joinAdInterestGroup() de Protected Audience. L'approche générale correspond en grande partie à celle de l'API Attribution Reporting.

API Remote Playback sur ordinateur

Cette API étend le HTMLMediaElement, qui permet de contrôler à distance la lecture de contenus multimédias à partir d'une page Web. Ce produit, disponible sur Android dans Chrome 56, est disponible sur ordinateur à partir de Chrome 121.

API Speculation Rules

L'API Speculation Rules inclut de nouvelles fonctionnalités.

Prise en charge des règles de document: il s'agit d'une extension de la syntaxe des règles de spéculation qui permet au navigateur d'obtenir la liste des URL pour le chargement spéculatif à partir des éléments <a> d'une page. Ils peuvent inclure des critères indiquant lesquels de ces liens peuvent être utilisés. Associée au nouveau champ "eagerness" pour les règles de spéculation, les développeurs peuvent automatiquement précharger ou précharger automatiquement les liens sur les pages, immédiatement, en passant la souris ou en cliquant dessus.

Une modification distincte permet de spécifier des règles de spéculation à l'aide de l'en-tête de réponse HTTP Speculation-Rules au lieu d'utiliser des éléments <script> intégrés. La valeur de cet en-tête doit être une URL pointant vers une ressource de texte avec le type MIME "application/speculationrules+json". Les règles de la ressource seront ajoutées au jeu de règles du document.

Enfin, l'indice No-Vary-Search permet de mettre en correspondance les préchargements spéculatifs même si les paramètres de requête d'URL changent. L'en-tête de réponse HTTP No-Vary-Search déclare qu'une partie ou la totalité de la requête d'une URL peut être ignorée à des fins de mise en correspondance. Il peut déclarer que l'ordre des clés des paramètres de requête ne doit pas empêcher les correspondances, que des paramètres de requête spécifiques ne doivent pas empêcher les correspondances ou que seuls certains paramètres de requête connus doivent entraîner des incohérences.

Objets d'interface SpeechSynthesis et SpeechSynthesisVoice

Ajout des objets d'interface pour SpeechSynthesis et SpeechSynthesisVoice aux fonctionnalités déjà prises en charge. Cela rend possible la détection de caractéristiques à l'aide de SpeechSynthesisVoice.prototype.

API Storage Buckets

Les buckets de stockage permettent aux sites d'organiser les données sur l'appareil dans des "buckets" distincts. Les user-agents peuvent ainsi évincer les données groupées indépendamment de celles qui se trouvent dans d'autres buckets, et les sites peuvent gérer les données sémantiquement liées. Chaque bucket de stockage peut contenir des données associées à des API de stockage établies telles que IndexedDB et CacheStorage.

URLPattern: héritage à gauche, caractère générique à droite

Le comportement change pour les formats construits à l'aide d'une URL de base, de la syntaxe de chaîne de constructeur ou des deux, mais pas de modèles qui spécifient explicitement les composants séparément sans URL de base.

Les composants ne sont pas hérités d'une URL de base si un composant "précédent" est explicitement spécifié. Dans le format de chaîne, les composants non spécifiés "ultérieurement" comportent implicitement des caractères génériques au lieu d'être vides (à l'exception du port, qui est toujours considéré comme spécifié lorsque le nom d'hôte est). Le nom d'utilisateur et le mot de passe ne sont jamais spécifiés ni hérités implicitement.

Cela rend les modèles plus étendus qu'auparavant, dans les cas où des caractères génériques sont susceptibles d'être souhaitables.

URLPattern: option RegExp v au lieu de u

L'API URL Pattern permet aux développeurs de spécifier des chaînes de format. Celles-ci sont transformées en expressions régulières en interne.

Lorsque l'API a été implémentée pour la première fois, ces expressions régulières étaient compilées avec l'indicateur u. Chrome 121 la remplace par l'indicateur v, ce qui active les ensembles Unicode.

Ajouts à WebGPU

WebGPU permet désormais aux développeurs d'omettre les points d'entrée des modules de nuanceurs lors de la création d'un pipeline, ce qui améliore l'ergonomie. Si aucun point d'entrée par défaut n'est trouvé, une erreur GPUValidationError est déclenchée comme d'habitude.

Les requêtes d'horodatage WebGPU permettent aux applications WebGPU de mesurer avec précision (à la nanoseconde près) le temps nécessaire à l'exécution des commandes GPU, en particulier au début et à la fin des passes. Les requêtes d'horodatage sont fortement utilisées pour obtenir des insights sur les performances et le comportement des charges de travail GPU.

Bien que la spécification WebGPU rende les requêtes d'horodatage une fonctionnalité facultative en raison de problèmes liés aux attaques par code temporel, nous pensons que la quantification des requêtes d'horodatage offre un bon compromis en réduisant la précision des minuteurs avec une résolution de 100 microsecondes.

Encapsulation de clé X25519Kyber768 pour TLS

Protégez le trafic TLS actuel de Chrome contre la future cryptanalyse quantique en déployant l'algorithme de contrat de clés antiquantique Kyber768. Il s'agit d'un accord clé hybride X25519 + Kyber768 basé sur une 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.

Essais d'origine en cours

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

API Element Capture

L'API Element Capture fournit des méthodes pour capturer une sous-arborescence du DOM.

Pour une vidéo MediaStreamTrack obtenue par des moyens préexistants pour lancer la capture d'onglet, la capture d'élément permet de modifier la piste pour capturer uniquement une sous-arborescence du DOM à partir d'un élément donné.

Bien que l'API présente une certaine ressemblance avec l'API Region Capture, elle offre une plus grande flexibilité pour les applications, car les contenus masqués et masqués sont tous deux exclus de la capture.

S'inscrire à la phase d'évaluation d'ElementCapture

Modifications apportées au comportement existant

Chrome 121 apporte la modification suivante au comportement existant, inclus ici afin que les développeurs soient informés de ce changement .

Supprimer les événements d'entrée vers les iFrames d'origine différente récemment déplacés

Si un iFrame multi-origine a récemment été déplacé dans sa page d'intégration, Chrome supprime automatiquement les événements qui le ciblent. Cela s'explique par le fait que si l'iFrame a été déplacé récemment, l'utilisateur n'aurait probablement pas eu l'intention de cliquer ou d'appuyer dessus.

Cette modification a été déployée sous forme limitée en 2019: elle ne concernait que les iFrames contenant un script utilisant les fonctionnalités de version 2 d'IntersectionObserver (c'est-à-dire la détection d'effets ou d'occlusion). Ce comportement s'appliquera à tous les iFrames multi-origines. Il sera d'abord testé de façon limitée dans Chrome 121, puis sera intensif.