Chrome 131 bêta

Publié le 16 octobre 2024

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, consultez les liens fournis ou la liste sur ChromeStatus.com. Chrome 131 est en version bêta depuis le 16 octobre 2024. Vous pouvez télécharger la dernière version sur Google.com pour ordinateur ou sur le Google Play Store pour Android.

CSS

Cette version ajoute huit nouvelles fonctionnalités CSS.

Positionnement des ancres CSS : anchor-scope

La propriété anchor-scope permet de limiter la visibilité des noms d'ancres à un sous-arbre donné.

​CSS font-variant-emoji

La propriété CSS font-variant-emoji permet de choisir entre les glyphes emoji colorés (style emoji) et monochromes (style texte). Vous pouvez également ajouter un sélecteur de variante d'emoji, en particulier U+FE0E pour le texte et U+FE0F pour les emoji, après chaque point de code d'emoji.

Héritage de la mise en surbrillance CSS

Avec l'héritage de la mise en surbrillance CSS, 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 mise en surbrillance pseudo, plutôt que via la chaîne d'éléments. Résultat : le modèle d'héritage des propriétés de mise en surbrillance est plus intuitif.

Pour en savoir plus, consultez l'article de blog Inheritance changes for CSS selection styling (Modifications de l'héritage pour le style de sélection CSS) rédigé par Stephen Chenney d'Igalia.

Améliorations apportées au style de la structure des éléments <details> et <summary>

Davantage de styles CSS sont pris en charge pour la structure des éléments <details> et <summary>. Cela peut faciliter l'utilisation de ces éléments lorsque des widgets de divulgation ou des widgets accordéon sont créés sur le Web. Plus précisément, ce changement supprime les restrictions qui empêchaient de définir la propriété d'affichage sur ces éléments et ajoute un pseudo-élément ::details-content pour styliser le conteneur de la partie qui se développe et se réduit.

@page zones de marge

Ajout de la prise en charge des zones de marge de page lors de l'impression d'un document Web ou de son exportation au format PDF.

Les marges @page vous permettent de définir le contenu de la marge d'une page, par exemple pour fournir des en-têtes et des pieds de page personnalisés, plutôt que d'utiliser ceux intégrés générés par le navigateur.

Une boîte de marge est définie à l'aide d'une règle at dans une règle CSS @page. L'apparence et le contenu d'une boîte de marge sont spécifiés avec des propriétés CSS à l'intérieur de la règle at, y compris la propriété content. Les compteurs sont également acceptés pour la numérotation des pages. La spécification définit deux noms de compteur spéciaux : page pour le numéro de la page actuelle et pages pour le nombre total de pages.

Prise en charge de la syntaxe @property <string>

Prise en charge du nom du composant de syntaxe <string> pour les propriétés personnalisées enregistrées.

Prise en charge de currentcolor dans la syntaxe de couleur relative

Autoriser les couleurs relatives dans CSS (à l'aide du mot clé from) pour utiliser currentcolor comme base. Cela vous permet de définir des couleurs complémentaires, basées sur la couleur du texte d'un élément, pour les bordures, les ombres ou les arrière-plans de cet élément.

Cette fonctionnalité inclut également les cas d'utilisation où les fonctions de couleur sont imbriquées avec une dépendance sur currentcolor, par exemple color-mix(in srgb, rgb(from currentcolor r g b), white)) ou rgb(from rgb(from currentcolor 1 g b) b g r).

Compatibilité des ressources SVG externes avec les propriétés clip-path, fill, stroke et marker-*

Cette fonctionnalité ajoute la compatibilité avec les références externes pour les masques de découpe, les repères et les serveurs de peinture (pour les propriétés "fill" et "stroke"). Par exemple, clip-path: url("resources.svg#myPath").

API Web

API Direct Sockets

Permet aux applications Web isolées d'établir des communications directes via les protocoles TCP (Transmission Control Protocol) et UDP (User Datagram Protocol) avec les appareils et systèmes réseau, ainsi que d'écouter et d'accepter les connexions entrantes.

Exempter l'en-tête Speculation-Rules des restrictions CSP

Mise à jour de l'intégration entre les règles de spéculation et CSP afin que CSP ne s'applique qu'à <script type=speculationrules> et non à l'en-tête Speculation-Rules. Les règles de script de la CSP sont destinées à protéger contre l'injection de scripts dans le code HTML. Le modèle de menace de la CSP n'est pas lié aux en-têtes HTTP. Cela permet de déployer plus facilement des règles de spéculation à partir de CDN et d'autres serveurs périphériques.

FedCM comme signal de confiance pour l'API Storage Access

Réconcilie les API FedCM et Storage Access en faisant d'une autorisation FedCM antérieure une raison valable pour approuver automatiquement une demande d'accès au stockage.

Lorsqu'un utilisateur autorise l'utilisation de son identité avec un fournisseur d'identité (IdP) tiers sur une partie de confiance (RP), de nombreux IdP nécessitent des cookies tiers pour fonctionner correctement et de manière sécurisée. Cette proposition vise à répondre à cette exigence de manière privée et sécurisée en mettant à jour les vérifications des autorisations de l'API Storage Access (SAA) pour qu'elles acceptent non seulement l'autorisation accordée par une invite d'accès au stockage, mais aussi celle accordée par une invite FedCM.

Une propriété clé de ce mécanisme consiste à limiter l'octroi aux cas explicitement autorisés par le RP avec la règle d'autorisation FedCM, en appliquant un contrôle par frame pour le RP et en empêchant la surveillance passive par l'IdP au-delà des capacités que FedCM accorde déjà.

Valeur COOP noopener-allow-popups

Certaines origines peuvent contenir différentes applications avec des niveaux d'exigences de sécurité différents. Dans ce cas, il peut être utile d'empêcher les scripts exécutés dans une application d'ouvrir et de scripter les pages d'une autre application de même origine.

Dans ce cas, il peut être utile pour un document de s'assurer que son ouvreur ne peut pas le scripter, même si le document ouvreur est de même origine. La valeur noopener-allow-popups Cross-Origin-Opener-Policy permet aux documents de définir ce comportement.

API Private Aggregation : augmentation de la limite de contribution à 100 pour les appelants Protected Audience

Permet aux exécuteurs de scripts Protected Audience d'effectuer jusqu'à 100 contributions par rapport d'agrégation privée, contre 20 actuellement.

L'agrégation privée limite le nombre de contributions à l'histogramme qui peuvent être intégrées dans un même rapport agrégable. Toute contribution supplémentaire est supprimée. Les appelants Shared Storage peuvent contourner la limite en appelant une autre opération Shared Storage. Toutefois, les appelants Protected Audience ne disposent pas de stockage persistant. Ils perdent donc leurs contributions excédentaires à la fin de leur enchère. Notez que cette modification n'a aucun impact sur la confidentialité, car les contributions de l'API sont toujours limitées par le même budget de confidentialité.

En raison du remplissage, chaque rapport Protected Audience aura une charge utile plus importante, même s'il n'avait pas besoin de la limite de contribution plus élevée. Nous prévoyons que ces rapports plus volumineux augmenteront le coût d'exploitation du service d'agrégation.

Sélectionner l'assouplissement de l'analyseur

Cette modification permet à l'analyseur HTML d'autoriser des balises supplémentaires dans <select>, hormis dans <option>, <optgroup> et <hr>.

Cette modification est compatible avec la fonctionnalité <select> personnalisable, mais elle est déployée en premier, car elle peut être effectuée indépendamment et présente certains risques de compatibilité sur lesquels l'équipe Chrome aimerait recueillir des commentaires.

WebGPU : distances de découpe

Ajoute la fonctionnalité de GPU facultative clip-distances qui permet de définir des distances de clipping définies par l'utilisateur dans les sorties du nuanceur de vertex. Cette technique est particulièrement utile pour les applications qui doivent découper tous les sommets d'une scène qui se trouvent au-delà d'un plan défini par l'utilisateur, comme de nombreuses applications de CAO.

WebGPU : GPUCanvasContext getConfiguration()

Une fois que GPUCanvasContext configure() a été appelé avec un dictionnaire de configuration, vous pouvez utiliser la méthode GPUCanvasContext getConfiguration() pour vérifier la configuration du contexte du canevas. Il inclut les membres GPU device, format, usage, viewFormats, colorSpace, toneMapping et alphaMode. Comme indiqué dans le problème 4828, les applications Web peuvent l'utiliser pour détecter si le canevas HDR est compatible avec WebGPU.

WebHID sur les workers dédiés

Active WebHID dans les contextes de worker dédiés. Cela vous permet d'effectuer des E/S et un traitement de données importants à partir d'un périphérique HID sur un thread distinct, ce qui contribue à réduire l'impact sur les performances du thread principal.

WebRTC RTCRtpEncodingParameters.scaleResolutionDownTo

API qui configure les encodeurs WebRTC pour mettre à l'échelle les frames d'entrée s'ils sont supérieurs aux valeurs maxWidth et maxHeight spécifiées. Cette API est semblable à scaleResolutionDownBy, sauf que les contraintes de résolution sont exprimées en termes absolus (par exemple, 640 x 360) plutôt qu'en termes relatifs (par exemple, réduire par deux), ce qui évite les conditions de concurrence liées à la modification de la taille du frame d'entrée à la volée.

Nouvelles phases d'évaluation

Dans Chrome 131, vous pouvez activer les nouveaux essais Origin Trial suivants.

Statistiques de lecture pour WebAudio

La fonctionnalité AudioContext.playoutStats permet à une application de mesurer la qualité et la latence de la lecture audio à l'aide de WebAudio.

API Summarizer

API JavaScript permettant de générer des résumés du texte saisi, basés sur un modèle de langage basé sur l'IA.

Arrêts et suppressions

Cette version de Chrome introduit les abandons et les suppressions suivants. Consultez ChromeStatus.com pour obtenir la liste des abandons planifiés, des abandons en cours et des suppressions précédentes.

Cette version de Chrome supprime trois fonctionnalités.

Supprimer la propriété de positionnement des ancres CSS inset-area

Le groupe de travail CSS ayant décidé de renommer la propriété inset-area en position-area, cette suppression permet de nettoyer l'implémentation dans Chromium pour une fonctionnalité conforme aux normes.

Supprimer la possibilité de désactiver BeforeunloadEventCancelByPreventDefault

La fonctionnalité BeforeunloadEventCancelByPreventDefault a été déployée dans Chrome 117, mais une règle d'entreprise permet de désactiver ce flag de manière forcée. Cette règle d'entreprise sera supprimée dans Chrome 131.

Suppression de la méthode requestAdapterInfo() non standard de GPUAdapter

Le groupe de travail WebGPU a estimé que la méthode requestAdapterInfo() n'était pas pratique pour déclencher une demande d'autorisation. Il a donc supprimé cette option et l'a remplacée par l'attribut GPUAdapter info afin que les développeurs Web puissent obtenir la même valeur GPUAdapterInfo de manière synchrone.