Chrome 117 bêta

Sous-grille CSS de la grille, prise en charge des animations d'entrée et de sortie pour CSS, regroupement de tableaux, assistants d'itérateur, 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 disponibles sur cette page, cliquez sur les liens fournis ou consultez la liste disponible sur ChromeStatus.com. Chrome 117 est en version bêta depuis le 16 août 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 six nouvelles fonctionnalités CSS. Les trois premières propriétés font partie du travail d'activation des transitions au niveau de propriétés discrètes, qui permettent d'activer des animations d'entrée et de sortie.

Règle de style @starting

Cette règle "at" permet aux auteurs de lancer des transitions CSS lors de la première mise à jour du style.

Les transitions CSS ne déclenchent pas de transitions depuis les styles initiaux lors de la première mise à jour du style d'un élément ou lorsque le type d'affichage passe de none à un autre type. Cela permet d'éviter des transitions inattendues entre les styles initiaux. Pour lancer une transition à partir de la première mise à jour de style, vous pouvez désormais appliquer des styles à partir d'une règle @starting-style. Par exemple, le CSS suivant lance une transition de couleur d'arrière-plan du vert au vert citron lors de la première mise à jour du style d'un élément div:

div { 
  transition: background-color 0.5s; 
  background-color: lime; 
} 

@starting-style {
  div { 
    background-color: green; 
  } 
}

Propriété de superposition

La propriété overlay permet aux développeurs de conserver des éléments dans la couche supérieure pour une transition de sortie. La propriété de superposition est ajoutée pour indiquer si un élément se trouve ou non dans la couche supérieure. Elle peut accepter deux valeurs: none ou auto.

Propriété CSS liée au comportement de transition

La propriété CSS transition-behavior est une version longue de la propriété transition, qui permet d'utiliser des propriétés discrètes dans les transitions. Si vous spécifiez la valeur allow-discrete pour le comportement de transition, les propriétés discrètes lancent désormais des animations et passent de leur valeur initiale à leur valeur finale à 50%. Pour les transitions où display: none et content-visibility: hidden sont l'une des valeurs initiales ou finales, la valeur visible est utilisée pendant toute la durée de la transition.

Valeur de la sous-grille de la grille CSS

La valeur subgrid pour grid-template-columns et grid-template-rows est désormais implémentée dans Chrome. Cette valeur permet à une grille imbriquée d'utiliser les pistes définies dans son élément parent au lieu de créer une nouvelle définition de piste pour les lignes, les colonnes ou les deux.

Code CSS du texte à la ligne: beauté

La valeur pretty de la propriété CSS text-wrap optimise la mise en page plutôt que la vitesse. Il est destiné au corps du texte et attend donc plusieurs lignes. En utilisant pretty, un développeur active explicitement une méthode de mise en page qui peut être plus lente que wrap, qui optimise les performances. La mise en œuvre actuelle de Chrome est optimisée pour les orphelins afin d'empêcher l'affichage d'un seul mot au bas d'un paragraphe de texte.

Dans Chrome 117, essayez cette démonstration de "text-wrap: beauté" et voyez comment la valeur modifie la présentation du texte.

container-intrinsic-size: prise en charge automatique aucune

Cette fonctionnalité étend la syntaxe contain-intrinsic-size existante pour inclure également auto && none.

API Web

Regroupement de tableaux

Le regroupement de tableaux est une opération extrêmement courante, mieux illustrée par la clause SQL GROUP BY et la programmation MapReduce (qui est mieux pensée de map-group-reduce). La possibilité de combiner les données en groupes permet aux développeurs de calculer des ensembles de données d'ordre supérieur, comme l'âge moyen d'une cohorte ou les valeurs LCP quotidiennes d'une page Web. Cette fonctionnalité vous permet d'y parvenir en ajoutant les méthodes statiques Object.groupBy et Map.groupBy. La méthode "Object" renvoie un objet brut, où les groupes sont des clés de propriété. La méthode Map renvoie un objet Map, dans lequel les clés peuvent être des valeurs arbitraires.

Effacement des indications client via l'en-tête Clear-Site-Data

Les sites Web pourront désormais vider le cache des hints client à l'aide de Clear-Site-Data: "clientHints". Les hints client seront aussi effacés lorsque "cookies", "cache" ou "*" sont ciblés par le même en-tête. En effet, si l'utilisateur efface les cookies dans les hints client de l'interface utilisateur, le cache est également mis en cache et doit être cohérent avec les cibles utilisant des caractères génériques, respectivement.

Syntaxe du caractère générique de l'en-tête Clear-Site-Data

Les sites Web pourront désormais effacer toutes les cibles de stockage ("cookies", "cache" et "espace de stockage") en envoyant Clear-Site-Data: "*". Notez que Chrome ne permet pas d'effacer "executionContexts". Pour l'instant, mais si nous l'ajoutions ultérieurement, tout ciblage d'en-tête "*" les efface également.

customElements.getName

La méthode customElements.getName() renvoie le nom de balise de la définition d'élément personnalisé donnée.

Assistants d'itérateur

Les assistants d'itérateur sont de nouvelles méthodes sur le prototype d'itérateur permettant une utilisation et une consommation générales d'itérateurs.

Faire en sorte que CaptureController exploite l'interface EventTarget

L'interface CaptureController permet de manipuler davantage une session de capture d'écran. À l'avenir, il est prévu que les événements liés à une session de capture soient envoyés sur ce contrôleur. Pour pouvoir gérer les écouteurs de ces événements, les méthodes EventTarget sont disponibles sur CaptureController.

Type de diffusion "PerformanceResourceTiming"

La propriété deliveryType de PerformanceResourceTiming renvoie des informations sur le mode de diffusion d'une ressource. Par exemple, les ressources fournies à partir du cache (actuellement exposées via transferSize) et les navigations qui ont été préchargées par la page précédente.

Vérification du dépassement de port dans les setters d'URL

La valeur du port sera vérifiée lorsque vous définirez url.port. Toutes les valeurs qui dépassent la limite numérique de 16 bits ne seront plus valides. Par exemple, le script suivant se comporte différemment après la modification:

u = new URL("http://test.com"); 
u.port = 65536; 
console.log(u.port); 

Avant la modification, le résultat est 65536. Après la modification, le résultat sera de 80.

API Private State Token

Cette nouvelle API permet de propager des signaux privés limités entre les sites, sans utiliser d'identifiants persistants intersites tels que des cookies tiers. Les méthodes antifraude qui s'appuient sur des cookies tiers ne fonctionneront plus une fois ces derniers obsolètes. L'API Private State Token ne génère ni ne définit de signaux antifraude: cela dépend du propriétaire correspondant et des émetteurs de jetons. Au contraire, l'API préserve la confidentialité en appliquant des limites sur les informations transférées dans ces signaux. L'API est basée sur une variante du protocole Privacy Pass, en cours de normalisation par l'IETF. Il peut être considéré comme une forme exposée sur le Web des protocoles Privacy Pass. Les spécifications de l'API doivent être modifiées pour les nouvelles versions et les nouveaux types de jetons, et seront tenues à jour selon les spécifications du groupe de travail Privacy Pass. Les protocoles cryptographiques et le code d'émission de jetons sous-jacents devraient être modifiés: nous ne nous attendons pas à ce que les API Fetch d'émission et d'utilisation destinées aux développeurs soient modifiées. L'API Private State Token était auparavant appelée API Trust Token. Elle a été renommée pour mieux saisir la sémantique sous-jacente et mettre en évidence les avantages en termes de confidentialité pour les utilisateurs.

Analyseur d'hôte IPv6 intégré à IPv4 compatible avec la norme d'URL

Le comportement de l'analyse de l'analyseur d'hôte IPv6 intégré à IPv4 sera mis à jour afin de respecter scrupuleusement la norme pour les URL Web. Les restrictions introduites pour l'adresse IPv6 sont les suivantes:

  • L’adresse IPv4 intégrée doit toujours se composer de quatre parties.
  • Les adresses comportant moins de quatre parties, comme http://[::1.2], ne seront plus valides. Cette fonctionnalité fait partie de l'interopérabilité d'URL 2023.

URL: autoriser "%00" en tant que chemin d'URL valide

Actuellement, Chrome considère qu'une URL n'est pas valide si la partie du chemin de l'URL contient "%00". (ou valeur nulle), ce qui n'est pas conforme à la norme pour les URL. Par exemple, le test suivant échoue dans Chrome, car new URL(...) génère une exception d'URL non valide.

assertEquals(new URL("http://example.com/%00").pathname, "/%00"); 

Conformément à la norme d'URL, toute séquence de caractères ou d'octets dans le chemin d'URL ne doit pas rendre l'URL non valide, et cette modification met à jour Chrome afin qu'elle s'y conforme.

Contrôle des extensions d'en-tête RTP WebRTC

Étendre l'API WebRTC RTCRtpTransceiver pour permettre de contrôler les extensions d'en-tête RTP négociées.

Quantizer par image dans VideoEncoder

Ajoute "quantizer" VideoEncoderBitrateMode pour VideoEncoder. Cela permet de spécifier un paramètre de quantificateur pour chaque image pour les codecs vidéo AV1, VP9 et AVC.

Option WebUSB exclusionFilters dans requestDevice()

L'option exclusionFilters dans navigator.usb.requestDevice() permet aux développeurs Web d'exclure certains appareils du sélecteur de navigateur. Ce paramètre permet d'exclure les appareils qui correspondent à un filtre plus large, mais qui ne sont pas compatibles.

Phases d'évaluation en cours

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

Compression par dictionnaire pour le transport avec Shared Brotli

Cette fonctionnalité ajoute la prise en charge de l'utilisation des réponses précédentes désignées, en tant que dictionnaire externe pour la compression des réponses HTTP par Brotli.

Inscrivez-vous à la phase d'évaluation de CompressionDictionaryTransport.

Évaluation avant arrêt de WebSQL

WebSQL est en cours de suppression de Chrome. Les sites qui en dépendent sont encouragés à passer à SQLite via Wasm.

Cet essai avant arrêt permet aux développeurs qui ont besoin de plus de temps pour la migration de continuer à utiliser WebSQL jusqu'à Chrome 123 (mars 2024). Inscrivez-vous à l'évaluation avant arrêt de WebSQL.

Applications Web à onglets

Autorisez les fenêtres d'applications Web à avoir une barre d'onglets, par exemple pour modifier plusieurs documents dans la même application. Un nouveau mode d'affichage "à onglets" est alors ajouté et un nouveau champ de fichier manifeste pour permettre la personnalisation de la barre d'onglets.

S'inscrire à la phase d'évaluation des applications Web à onglets

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, deux fonctionnalités ne sont plus disponibles.

Abandon de l'événement unload

Chrome 117 lancera le processus d'abandon du gestionnaire d'événements unload. Si votre site les utilise, nous vous recommandons vivement de lire l'article consacré à l'abandon de unload pour en savoir plus.

Abandon des signatures de serveur TLS SHA-1

Chrome ne prend plus en charge les algorithmes de signature utilisant SHA-1 pour les signatures de serveur lors du handshake TLS. Cela n'affecte pas la compatibilité de SHA-1 avec les certificats de serveur, qui ont déjà été supprimés, ni dans les certificats clients, qui sont toujours pris en charge.

Cette version de Chrome supprime quatre fonctionnalités.

[WebRTC] Suppression de l'ancienne méthode getStats() basée sur le rappel

RTCPeerConnection dispose de deux versions de getStats(), l'une conforme aux spécifications renvoyant le rapport via la résolution d'une promesse, et l'autre non standard renvoyant un rapport très différent via un rappel en tant que premier argument. La méthode basée sur le rappel est maintenant supprimée.

Pour en savoir plus sur la migration et découvrir la procédure à suivre si vous avez besoin de plus de temps, consultez le guide de migration des anciennes fonctionnalités getStats().

Suppression de la valeur -1 pour WebRTC getStats datachannelIdentifier

L'API WebRTC getStats expose une propriété dataChannelIdentifier. Il ne fournira plus la valeur "-1". dans les cas où les statistiques sont interrogées avant que la connexion au canal de données ne soit établie. À la place, le membre du dictionnaire est omis.

Suppression de "unknown" pour WebRTC getStats encoderImplementation et decoderImplementation

L'API WebRTC getStats expose les noms d'implémentation de l'encodeur et du décodeur pour les vidéos sortantes et entrantes. Elle ne sera plus associée à la valeur "inconnue" si les statistiques sont interrogées avant qu'une image vidéo ne soit encodée ou décodée. À la place, le membre du dictionnaire est omis.

Propriété CSS -webkit-highlight

Supprimez la propriété CSS -webkit-highlight qui était destinée à mettre du texte en surbrillance, mais qui n'a jamais été standardisée. Elle n'a pas d'effet visible dans Chrome (elle est analysée mais jamais utilisée pour l'affichage du contenu). La propriété a été supprimée de WebKit en 2014, a été marquée comme obsolète sur MDN et a été récemment remplacée par la spécification Pseudo de mise en surbrillance CSS.