Chrome 120 bêta

Masquage CSS, règles assouplies pour l'imbrication CSS, création de modèles en accordéon avec l'élément <details>, l'action enterpictureinpicture pour l'API Media Session.

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 disponibles, cliquez sur les liens fournis ou consultez la liste disponible sur chromestatus.com. Chrome 120 est en version bêta depuis le 1er novembre 2023. Vous pouvez télécharger les dernières mises à jour sur Google.com pour ordinateur ou sur le Google Play Store pour Android.

CSS

Cette version ajoute sept nouvelles fonctionnalités CSS.

Syntaxe CSS <image> pour les propriétés personnalisées enregistrées

Accepte l'utilisation de la syntaxe <image> pour les propriétés personnalisées enregistrées avec @property ou registerProperty(). La syntaxe <image> permet de limiter les valeurs de la propriété personnalisée aux valeurs url() et de générer des images telles que des dégradés.

Syntaxe CSS <transform-function> et <transform-list> pour les propriétés personnalisées enregistrées

Accepte l'utilisation des syntaxes <transform-function> et <transform-list> pour les propriétés personnalisées enregistrées avec @property ou registerProperty().

La syntaxe permet de restreindre les valeurs de la propriété personnalisée afin de représenter des transformations. Cela permet également d'utiliser des transitions et des animations directement sur ces propriétés personnalisées enregistrées.

Requêtes média: fonctionnalité de script

La fonctionnalité de support de script permet de demander si les langages de script, tels que JavaScript, sont compatibles avec le document actuel. Les options valides sont "enabled" (activé), "initial-only" (initiale uniquement) et "none" (aucune). Toutefois, "initial-only" ne correspond jamais dans un navigateur.

Sélecteur de pseudo-classe :dir()

Le sélecteur de pseudo-classe CSS :dir() établit une correspondance avec les éléments en fonction de l'orientation, déterminée en fonction de l'attribut "dir" HTML.

:dir(ltr) correspond à l'orientation du texte de gauche à droite. :dir(rtl) établit une correspondance avec les éléments dont l'orientation du texte est de droite à gauche.

Il n'est pas équivalent aux sélecteurs d'attributs [dir], car ils correspondent aux itinéraires hérités d'un ancêtre avec l'attribut dir, et au sens calculé à partir de dir=auto (qui détermine l'orientation à partir du premier caractère du texte à forte direction).

Fonctions exponentielles CSS

Ajoute les fonctions exponentielles CSS pow(), sqrt(), hypot(), log() et exp() issues de la spécification des valeurs et unités CSS de niveau 4.

Masquage CSS

Le code CSS mask et les propriétés associées telles que mask-image et mask-mode permettent de masquer un élément (partiellement ou complètement) en masquant ou en rognant l'image à des points spécifiques.

Cette fonctionnalité annule le préfixe des propriétés -webkit-mask* et les met en conformité avec la spécification actuelle. Cela inclut mask-image, mask-mode, mask-repeat, mask-position, mask-clip, mask-origin, mask-size et mask-composite, ainsi que le raccourci mask. Les références mask-image locales sont prises en charge, la sérialisation correspond désormais à la spécification, et les valeurs acceptées correspondent désormais à la spécification (par exemple, add au lieu de source-over pour mask-composite).

Imbrication CSS décontractée

Grâce à cette modification de l'implémentation de l'imbrication CSS, les règles de style imbriquées peuvent commencer par un élément, par exemple h1, au lieu d'avoir à faire précéder le symbole & ou d'être encapsulé avec is(). L'exemple suivant est désormais valide dans la spécification et fonctionne dans Chrome 120.

.card {
  h1 {
    /* h1 does not start with a symbol */
  }
}

HTML

Motif en accordéon utilisant l'attribut nom sur <details>

Cette fonctionnalité permet de construire des accordéons à l'aide d'une séquence d'éléments HTML <details>. Elle ajoute un attribut "name" à l'élément <details>. Lorsque cet attribut est utilisé, plusieurs éléments <details> portant le même nom forment un groupe. Un seul élément du groupe peut être ouvert à la fois.

API Web

Autoriser le transfert de ArrayBuffer dans les constructeurs VideoFrame, AudioData, EncodedVideoChunk, EncodedAudioChunk et ImageDecoder

Cela permettra de dissocier les tampons du tableau et d'utiliser les tampons correspondants dans VideoFrame, ImageDecoder, EncodedVideoChunk, EncodedAudioChunk et AudioData sans copie.

FontFaceSet de l'API CSS Font Loading: méthode check()

La méthode check() de FontFaceSet vérifie s'il est possible d'afficher du texte à l'aide des polices spécifiées sans essayer d'utiliser des polices dans FontFaceSet dont le chargement n'est pas terminé. Cela permet aux utilisateurs d'utiliser la police en toute sécurité sans déclencher par la suite un remplacement.

Requêtes de fermeture et CloseWatcher

Les demandes de fermeture sont un nouveau concept qui englobe les demandes de fermeture d'un élément actuellement ouvert à l'aide de la touche Échap sur un ordinateur, ou du geste ou du bouton Retour sur Android. Leur intégration dans Chrome s'accompagne de deux changements:

  • CloseWatcher, une nouvelle API permettant d'écouter et de répondre directement aux requêtes de fermeture.
  • Mise à niveau vers <dialog> et popover="" pour utiliser le nouveau framework de requête de fermeture et répondre au bouton "Retour" d'Android.

Nœuds de calcul dédiés et API Storage Access

Les nœuds de calcul dédiés héritent de l'état d'accès au stockage du contexte parent. Par conséquent, si un document obtient un accès au stockage via document.requestStorageAccess(), puis crée un nœud de calcul dédié, celui-ci aura également accès au stockage (et pourra accéder aux cookies non partitionnés).

FedCM: API Error et AutoSelectedFlag

API dédiées pour aider les développeurs et les utilisateurs à mieux comprendre le flux d'authentification. Les deux API sont déclenchées après avoir autorisé l'utilisateur à se connecter à un site Web ou à une application (dans ce contexte, on parle de tiers de confiance) avec un fournisseur d'identité. En d'autres termes, après que l'utilisateur a cliqué sur le bouton Continuer en tant que.

Avec l'API Error, si la tentative de connexion d'un utilisateur échoue, le fournisseur d'identité peut en indiquer les raisons au navigateur pour tenir les utilisateurs et les développeurs RP informés.

Grâce à l'API AutoSelectedFlag, les développeurs de fournisseurs d'identité et de tiers assujettis à des restrictions peuvent mieux comprendre l'expérience utilisateur de connexion, et évaluer les performances et les métriques de segment en conséquence.

Pour en savoir plus, consultez cet article de blog de FedCM sur Chrome 120.

Mises à jour du fonctionnement des cadres cloisonnés

Il existe une option de format supplémentaire pour les macros de taille d'annonce Protected Audience dans l'API Protected Audience au sein de la Privacy Sandbox. Une fonctionnalité d'activation vous permet d'utiliser des macros pour spécifier la taille de l'URL de l'annonce qui remporte l'enchère, par exemple:

https://ad.com?width={/�_WIDTH%}&height={/�_HEIGHT%}

Pour plus de cohérence avec d'autres types de macros dans Protected Audience, comme ceux utilisés par deprecatedReplaceInURN et registerAdMacro(), nous ajoutons la possibilité d'utiliser ${AD_WIDTH} et ${AD_HEIGHT} comme format pour les macros dans Chrome 120, en plus du format actuel.

Les balises automatiques seront désormais envoyées à toutes les URL enregistrées. Auparavant, seules les destinations spécifiées lors de l'appel de setReportEventDataForAutomaticBeacons() recevaient des balises automatiques, même si cette destination appelait registerAdBeacon() pour reserved.top_navigation dans leur Worklet. Désormais, toute destination qui appelle registerAdBeacon() pour reserved.top_navigation recevra une balise automatique, mais seules les destinations spécifiées dans setReportEventDataForAutomaticBeacons() recevront des données de balise automatiques en plus de la balise. Le paramètre once dans setReportEventDataForAutomaticBeacons() détermine désormais si les données sont envoyées une seule fois, au lieu de déterminer si la balise entière est envoyée une seule fois.

Marge de défilement de l'observateur d'intersection

Intersection Observer scrollMargin permet aux développeurs d'observer des cibles dans des conteneurs de défilement imbriqués qui sont actuellement tronqués par les conteneurs de défilement. Pour ce faire, développez le rectangle de rognage du conteneur à l'aide de scrollMargin lors du calcul de l'intersection.

Signalements de non-respect des règles relatives aux autorisations

Cela permet d'intégrer l'API Permissions Policy à l'API Reporting, ce qui permet aux développeurs Web de configurer les points de terminaison auxquels les rapports de non-respect des règles d'autorisation seront envoyés. Les propriétaires de sites pourront ainsi voir à quel moment les fonctionnalités non autorisées sont demandées sur leurs pages dans le champ.

Il inclut également l'en-tête Permissions-Policy-Report-Only, qui permet d'envoyer des rapports en fonction d'une règle proposée (analogique à Content-Security-Policy-Report-Only). Cela permet d'évaluer les modifications de stratégie afin de détecter tout problème potentiel avant de les implémenter en mode d'application standard.

API Media Session: action enterpictureinpicture

Ajoute une action enterpictureinpicture à l'API Media Session. Les sites Web peuvent enregistrer un gestionnaire d'actions qui peut être utilisé pour ouvrir une fenêtre Picture-in-picture ou Picture-in-picture pour les documents.

Pour en savoir plus, consultez Picture-in-picture automatique pour les applications Web.

Compatibilité avec WebGPU f16

Permet d'utiliser le type à virgule flottante f16 à demi-précision dans les nuanceurs WebGPU (WGSL).

Les développeurs peuvent utiliser le nuanceur "shader-f16". disponible dans les spécifications WebGPU et "f16" de la spécification WGSL pour accéder aux variables et aux API à virgule flottante 16 bits dans leurs nuanceurs.

MediaCapacités: prise en charge des requêtes HDR avec decodingInfo()

Étend l'API Media Capabilities pour permettre la détection de la compatibilité avec le rendu HDR via trois nouveaux champs de dictionnaire VideoConfiguration: hdrMetadataType, colorGamut et transferFunction. Chrome implémente ses propres algorithmes de mappage des tons. Par conséquent, la valeur "true" est toujours renvoyée pour les métadonnées statiques HDR10 (smpteSt2086). Les métadonnées dynamiques HDR10 (smpteSt2094-10) et Dolby Vision (smpteSt2094-40) ne sont actuellement pas prises en charge. Par conséquent, la valeur renvoyée sera "false". Nous prévoyons d'ajouter la prise en charge des métadonnées dynamiques à l'avenir. Cette API permettra donc aux développeurs de sélectionner le contenu approprié pour les utilisateurs compatibles.

Statistiques MediaStreamTrack (vidéo)

API qui expose les compteurs d'images (diffusés, supprimés, totaux) pour les MediaStreamTracks de type vidéo. Les statistiques audio seront couvertes par une nouvelle fonctionnalité Chrome.

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

Modification de l'API Private Aggregation pour fournir 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 effectué avec une option supplémentaire dans les appels SharedStorage run() et selectURL(), ainsi que dans les appels Protected Audience runAdAuction() et joinAdInterestGroup(). L'approche globale correspond en grande partie à celle de l'API Attribution Reporting.

API Login Status dans FedCM

L'API Login Status (anciennement API IdP Sign-in Status) permet aux fournisseurs d'identité d'indiquer au navigateur quand leurs utilisateurs se connectent ou se déconnectent.

FedCM s'en sert pour faire face à une attaque par temps silencieux, ce qui lui permet de fonctionner sans cookies tiers.

À l'avenir, cette API sera peut-être disponible pour d'autres cas d'utilisation.

Pour en savoir plus, consultez cet article de blog.

Afficher les transitions: rendre le rappel non nullable

L'appel startViewTransition accepte actuellement un type de rappel facultatif pouvant avoir une valeur nulle avec une valeur par défaut "null" : startViewTransition(optional UpdateCallback? callback = null).

Cette fonctionnalité le transforme en un type ne pouvant pas avoir une valeur nulle: startViewTransition(optional UpdateCallback callback).

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é résistant aux quantiques Kyber768. Il s'agit d'un contrat clé hybride X25519 Kyber768 basé sur une norme IETF. Cette spécification et ce lancement sont en dehors du champ d'application du W3C. Cet accord de clé sera lancé sous la forme d'un algorithme de chiffrement TLS et doit être transparent pour les utilisateurs.

Phases d'évaluation en cours

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

'priorité' En-tête de requête HTTP

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

Le document RFC 9218 (Extensible Prioritization Scheme pour HTTP) définit une "priorité" En-tête de requête HTTP à utiliser pour signaler la priorité de la requête aux origines (et intermédiaires). Il définit également les processus de négociation et les trames au niveau du protocole pour HTTP/2 et HTTP/3 afin de transmettre 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 des trames permettent de modifier la priorité a posteriori. L'en-tête peut fonctionner de bout en bout vers les serveurs d'origine (et fournir un mécanisme permettant à l'origine de remplacer la priorité s'il est reconnu par des intermédiaires), tandis que les trames sont limitées au fonctionnement au niveau d'une liaison. Cette fonctionnalité est spécifiquement destinée à prendre en charge le schéma de priorisation basé sur les en-têtes.

Nous proposons une extension de l'API Storage Access (rétrocompatible) pour autoriser l'accès au stockage non partitionné (cookie et non-cookie) dans un contexte tiers.

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

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

Inscrivez-vous à la phase d'évaluation de l'invite d'autorisation d'accès au réseau privé.

Accès non restreint à performance.measureUserAgentSpecificMemory()

performance.measureUserAgentSpecificMemory() est spécifié pour n'être disponible que dans les environnements isolés multi-origines (derrière COOP/COEP). Cette fonctionnalité supprime la restriction COOP/COEP pour permettre des tests de régression et la mesure de l'impact lorsque le déploiement complet de COOP/COEP est impossible. Notez que performance.memory (ancienne API) ne peut pas être utilisée à cette fin, car elle n'a jamais été activée sur les nœuds de calcul.

performance.measureUserAgentSpecificMemory()

Cette fonctionnalité ajoute une fonction performance.measureUserAgentSpecificMemory() qui estime l'utilisation de la mémoire de la page Web. Pour utiliser l'API, le site Web doit être isolé multi-origine.

Abandons et suppressions

Cette version de Chrome introduit les abandons et les suppressions indiqués ci-dessous. Consultez le site ChromeStatus.com pour obtenir la liste des abandons prévus, des abandons actuels et des suppressions précédentes.

Dans cette version de Chrome, une fonctionnalité n'est plus disponible.

Arrêt et suppression de la compatibilité avec Theora

En raison de nouveaux risques de sécurité, le codec vidéo Theora ne sera plus pris en charge dans le navigateur Chrome pour ordinateur. L'utilisation faible (et souvent incorrecte) de Theora ne justifie plus la prise en charge de la plupart des utilisateurs.

Cette version de Chrome comporte deux fonctionnalités.

Supprimer des données: URL dans SVGUseElement

L'attribution d'une URL "data:" dans SVGUseElement peut entraîner un XSS. Cela a également conduit à un contournement des Trusted Types. C'est pourquoi nous prévoyons d'y mettre un terme et de supprimer cette compatibilité.

Suppression de l'application globale de l'origine commune dans CSPEE

Supprime un traitement spécial pour les iFrames de même origine de l'application intégrée par CSP. Cela permet d'aligner le comportement de l'application de l'application de CSP intégrée pour les iFrames multi-origines et les iFrames de même origine.