Chrome 117 bêta

Sous-grille CSS, 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 listées ici, cliquez sur les liens fournis ou consultez la liste sur ChromeStatus.com. Chrome 117 est en version bêta depuis le 16 août 2023. Vous pouvez télécharger les dernières versions sur Google.com pour ordinateur ou sur le Google Play Store sur Android.

CSS

Cette version comprend six nouvelles fonctionnalités CSS. Les trois premières propriétés permettent d'activer les transitions sur des propriétés discrètes, qui autorisent les 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 de style.

Les transitions CSS ne déclenchent pas de transitions à partir des styles initiaux lors de la première mise à jour de style d'un élément, ni lorsque le type d'affichage passe de none à un autre type. Cela permet d'éviter des transitions inattendues entre les styles initiaux. Pour démarrer 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 code CSS suivant lance une transition de couleur d'arrière-plan du vert au vert citron lors de la première mise à jour de 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. Deux valeurs peuvent être définies: none ou auto.

Propriété de comportement de transition CSS

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

Valeur de la sous-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 sur son parent, plutôt que de créer une définition de piste pour les lignes, les colonnes ou les deux.

Texte-wrapper CSS: joli

La valeur pretty de la propriété CSS text-wrap optimise la mise en page plutôt que la vitesse. Elle est destinée au corps du texte et nécessite donc plusieurs lignes. En utilisant pretty, un développeur opte explicitement pour une méthode de mise en page qui peut être plus lente que wrap, qui optimise les performances. L'implémentation actuelle dans Chrome est optimisée pour les orphelins afin d'éviter qu'un seul mot ne s'affiche au bas d'un paragraphe.

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

contenir-intrinsic-size: auto-none prise en charge

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 GROUP BY de SQL et par la programmation MapReduce (mieux adaptée à la méthode 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 plus élevé, tels que l'âge moyen d'une cohorte ou les valeurs LCP quotidiennes d'une page Web. Cette fonctionnalité permet d'obtenir ce résultat 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 élément Map, où les clés peuvent être des valeurs arbitraires.

Effacer les indications client via l'en-tête Clear-Site-Data

Les sites Web peuvent désormais effacer le cache des indices client à l'aide de Clear-Site-Data: "clientHints". Désormais, les indications client sont également effacées lorsque les mots clés "cookies", "cache" ou "*" sont ciblés par le même en-tête. En effet, si l'utilisateur efface les cookies dans les indications du client de l'interface utilisateur le sont également, le cache des indices du client est un cache, et pour être cohérent avec les cibles génériques respectivement.

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

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

customElements.getName

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

Outils d'aide d'itérateur

Les outils d'aide d'itérateur sont de nouvelles méthodes sur les prototypes d'itérateur permettant d'utiliser et d'utiliser les itérateurs de manière générale.

Mise à jour de CaptureController, qui dérive de l'interface EventTarget

L'interface CaptureController permet de manipuler davantage une session de capture d'écran. À l'avenir, les événements liés à une session de capture devraient être 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 la 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, la sortie est 65536. Après la modification, le résultat sera 80.

API Private State Token

Il s'agit d'une nouvelle API permettant 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 reposent sur des cookies tiers ne fonctionneront plus une fois les cookies tiers abandonnés. L'API Private State Token ne génère ni ne définit de signaux de lutte contre la fraude: cela dépend de la partie propriétaire correspondante et des émetteurs de jetons. L'API préserve la confidentialité en appliquant des limites aux informations transférées via ces signaux. L'API est basée sur une variante du protocole Privacy Pass, qui est en cours de standardisation 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 mises à jour pour les nouvelles versions et les nouveaux types de jetons. Elles seront mises à jour avec les spécifications du groupe de travail Privacy Pass. Les modifications devraient concerner les protocoles cryptographiques sous-jacents et le code d'émission des jetons: nous ne prévoyons pas de changements au niveau des API Fetch d'émission et d'utilisation des développeurs. L'API Private State Token était auparavant appelée API Trust Token. Elle a été renommée afin de capturer plus précisément la sémantique sous-jacente et de mettre en évidence les avantages en termes de confidentialité.

Analyseur d'hôte IPv4 intégré compatible avec l'URL standard

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

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

URL: autoriser "%00" comme chemin d'URL valide

Actuellement, Chrome considère qu'une URL n'est pas valide si sa partie du chemin contient "%00" (ou "null"), ce qui n'est pas conforme à la norme d'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 à cette norme, toute séquence de caractères ou d'octets dans le chemin de l'URL ne devrait pas rendre l'URL non valide. Cette modification met à jour Chrome pour suivre cette norme.

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

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

Quantificateur par image dans VideoEncoder

Ajout du "quantificateur" VideoEncoderBitrateMode pour VideoEncoder. Cela permet de spécifier un paramètre de quantificateur pour chaque image des 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. Cette option permet d'exclure les appareils qui correspondent à un filtre plus large, mais qui ne sont pas compatibles.

Essais d'origine en cours

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

Transfert par dictionnaire de compression avec les Brotli partagés

Cette fonctionnalité permet d'utiliser les réponses précédentes désignées en tant que dictionnaire externe pour la compression des réponses HTTP Brotli.

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

Essai d'abandon de WebSQL

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

Cet essai avec abandon 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 par 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 ainsi qu'un nouveau champ de fichier manifeste permettent de personnaliser la barre d'onglets.

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

Abandons et suppressions

Cette version de Chrome présente les abandons et suppressions listés ci-dessous. Consultez la page ChromeStatus.com pour consulter la liste des abandons planifiés, des abandons actuels et des suppressions précédentes.

Cette version de Chrome abandonne deux fonctionnalités.

Abandonner 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 le post dédié à l'abandon de unload pour en savoir plus.

Abandon des signatures de serveur SHA-1 TLS

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

Cette version de Chrome supprime quatre fonctionnalités.

[WebRTC] Annulation de l'envoi de la 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 comme premier argument. Celle basée sur le rappel a été supprimée.

Pour en savoir plus sur la migration et sur la procédure à suivre si vous avez besoin de plus de temps, consultez le guide de migration de l'ancienne méthode getStats().

Suppression de la valeur -1 pour WebRTC getStats datachannelIdentifier.

L'API getStats WebRTC expose une propriété dataChannelIdentifier. La valeur "-1" n'est plus indiquée lorsque les statistiques sont interrogées avant que la connexion au canal de données ne soit établie. À la place, le membre du dictionnaire sera omis.

Suppression de l'encoderImplementation getStats et decoderImplementation "unknown"

L'API getStats WebRTC expose les noms d'implémentation de l'encodeur et du décodeur pour les vidéos sortantes et entrantes. La valeur "unknown" ne sera plus indiquée si les statistiques sont interrogées avant l'encodage ou le décodage d'une image vidéo. À la place, le membre du dictionnaire sera omis.

Propriété CSS -webkit-highlight

Suppression de la propriété CSS -webkit-highlight destinée à mettre du texte en surbrillance, mais jamais standardisée. Il n'a aucun effet visible dans Chromium (il est analysé, mais n'est jamais utilisé pour afficher le contenu). La propriété a été supprimée de WebKit en 2014, a été marquée comme obsolète sur MDN et a récemment été remplacée par la spécification CSS Highlight Pseudo.