Chrome 138

Date de sortie de la version stable : 24 juin 2025

Sauf indication contraire, les modifications suivantes s'appliquent à la version stable 138 de Chrome pour Android, ChromeOS, Linux, macOS et Windows.

CSS et UI

Les fonctions liées au signe abs() et sign() calculent diverses fonctions liées au signe de leur argument.

La fonction abs(A) contient un calcul A et renvoie la valeur absolue de A, du même type que l'entrée : si la valeur numérique de A est positive ou égale à 0⁺, elle renvoie simplement A ; sinon, elle renvoie -1 * A.

La fonction sign(A) contient un calcul A et renvoie -1 si la valeur numérique de A est négative, +1 si elle est positive, 0⁺ si elle est 0⁺ et 0⁻ si elle est 0⁻. Le type de retour est <number>, ce qui est cohérent avec le type du calcul d'entrée.

MDN Docs:abs() | Tracking bug #40253181 | ChromeStatus.com entry | Spec

Notation fonctionnelle de la progression de l'interpolation : fonction CSS progress()

La notation fonctionnelle progress() renvoie une valeur <number> représentant la position d'un calcul (la valeur de progression) entre deux autres calculs (la valeur de début de progression et la valeur de fin de progression). La fonction progress() est une fonction mathématique.

Bug de suivi n° 40944203 | Entrée ChromeStatus.com | Spécification

CSS sibling-index() et sibling-count()

Les fonctions sibling-index() et sibling-count() peuvent être utilisées comme des nombres entiers dans les valeurs de propriétés CSS pour styliser les éléments en fonction de leur position parmi leurs frères et sœurs ou du nombre total de frères et sœurs, respectivement. Ces fonctions peuvent être utilisées directement comme valeurs entières, mais plus intéressant encore, dans des expressions calc().

Bug de suivi n° 40282719 | Entrée ChromeStatus.com | Spécification

Mot clé de dimensionnement CSS stretch

Mot clé pour les propriétés de dimensionnement CSS (par exemple, width et height) qui permet aux éléments de se développer pour remplir exactement l'espace disponible de leur bloc de contenu. Elle est semblable à "100 %", sauf que la taille résultante est appliquée à la boîte de marge de l'élément au lieu de la boîte indiquée par box-sizing. L'utilisation de ce mot clé permet à l'élément de conserver ses marges tout en étant aussi grand que possible. Version sans préfixe de -webkit-fill-available.

Bug de suivi n° 41253915 | Entrée ChromeStatus.com | Spécification

Variable d'environnement CSS pour l'échelle de police au niveau de l'OS

Expose l'échelle de police préférée d'un utilisateur au CSS. Sans cela, il n'est pas pratique pour une page de détecter si l'utilisateur a modifié la taille de police de son choix à l'aide des préférences du système d'exploitation. Cette variable d'environnement CSS reflétera l'échelle choisie par l'utilisateur.

Bug de suivi n° 397737223 | Entrée ChromeStatus.com | Spécification

Appareils

Communication série Web via Bluetooth sur Android

Cette fonctionnalité permet aux pages Web et aux applications Web de se connecter aux ports série via Bluetooth sur les appareils Android.

Chrome sur Android est désormais compatible avec l'API Web Serial via Bluetooth RFCOMM. Les règles d'entreprise existantes (DefaultSerialGuardSetting, SerialAllowAllPortsForUrls, SerialAllowUsbDevicesForUrls, SerialAskForUrls et SerialBlockedForUrls) sur d'autres plates-formes sont activées dans les états future_on pour Android. Toutes les règles, à l'exception de SerialAllowUsbDevicesForUrls, seront activées une fois la fonctionnalité activée. SerialAllowUsbDevicesForUrls sera activée lors d'un prochain lancement, une fois qu'Android aura pris en charge les ports série filaires au niveau du système.

Bug de suivi n° 375245353 | Entrée ChromeStatus.com | Spécification

API d'énumération des segments de la fenêtre d'affichage

L'API Viewport Segments permet aux développeurs d'adapter leur mise en page Web pour cibler les appareils pliables. Les segments de la fenêtre d'affichage définissent la position et les dimensions d'une région logiquement distincte de la fenêtre d'affichage. Les segments de fenêtre d'affichage sont créés lorsque la fenêtre d'affichage est divisée par une ou plusieurs fonctionnalités matérielles (telles qu'un pli ou une charnière entre des écrans distincts) qui agissent comme un séparateur. Les segments sont les régions de la fenêtre d'affichage qui peuvent être traitées comme logiquement distinctes par le développeur.

Tracking bug #1039050 | ChromeStatus.com entry | Spec

JavaScript

Mettre à jour QuotaExceededError vers une interface dérivée de DOMException

Auparavant, lorsque la plate-forme Web souhaitait vous informer que vous aviez dépassé le quota, elle utilisait DOMException avec la propriété name spécifique définie sur QuotaExceededError. Toutefois, cela ne permet pas de transmettre des informations supplémentaires.

Cela propose de supprimer "QuotaExceededError" de la liste des noms DOMException intégrés et de créer à la place un nom de classe QuotaExceededError à partir de la liste des DOMException intégrés, avec les propriétés facultatives supplémentaires quota et requested. Nous proposons que toutes les instances de spécifications qui génèrent des DOMException "QuotaExceededError" soient mises à niveau pour générer des QuotaExceededError. Pour l'instant, ces spécifications laisseraient les propriétés quota et requested à leur valeur par défaut de null, mais elles pourraient éventuellement être mises à niveau pour inclure ces données, si elles sont utiles pour leur cas d'utilisation (et ne constituent pas, par exemple, une fuite de données personnelles).

Entrée ChromeStatus.com | Spécification

API Web

API Translator

API JavaScript permettant de traduire des pages Web dans différentes langues. Les navigateurs proposent de plus en plus de traductions aux utilisateurs. Ces fonctionnalités de traduction peuvent également être utiles aux développeurs Web. C'est particulièrement le cas lorsque les fonctionnalités de traduction intégrées du navigateur ne peuvent pas vous aider. Une règle d'entreprise (GenAILocalFoundationalModelSettings) permet de désactiver le téléchargement du modèle sous-jacent, ce qui rend cette API indisponible.

Documentation MDN | Bug de suivi n° 322229993 | Entrée ChromeStatus.com | Spécification

API Language Detector

API JavaScript permettant de détecter la langue d'un texte, avec des niveaux de confiance.

La détection de la langue est un complément important à la traduction. Vous pouvez combiner cette fonctionnalité à la traduction, par exemple en prenant en charge les entrées utilisateur dans une langue inconnue et en les traduisant dans une langue cible spécifique. Les navigateurs disposent aujourd'hui souvent déjà de fonctionnalités de détection de langue. Nous souhaitons les proposer aux développeurs Web via une API JavaScript, en complément de l'API de traduction. Une règle d'entreprise (GenAILocalFoundationalModelSettings) permet de désactiver le téléchargement du modèle sous-jacent, ce qui rend cette API indisponible.

Documentation MDN | Entrée ChromeStatus.com | Spécification

API Summarizer

L'API Summarizer est une 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. Les navigateurs et les systèmes d'exploitation sont de plus en plus censés accéder à un modèle de langage. En exposant ce modèle intégré, nous évitons à chaque site Web de télécharger son propre modèle de langage de plusieurs gigaoctets ou d'envoyer du texte à des API tierces. L'API Summarizer expose en particulier une API de haut niveau pour l'interface avec un modèle de langage afin de résumer les entrées pour divers cas d'utilisation (GitHub), de manière à ne pas dépendre du modèle de langage spécifique en question. Une règle d'entreprise (GenAILocalFoundationalModelSettings) permet de désactiver le téléchargement du modèle sous-jacent, ce qui rend cette API indisponible.

Documentation MDN | Bug de suivi n° 351744634 | Entrée ChromeStatus.com | Spécification

Échapper < et > dans les attributs lors de la sérialisation

Échappez < et > dans les valeurs des attributs lors de la sérialisation.

Cela permet d'atténuer le risque d'attaques XSS par mutation, qui se produisent lorsque la valeur d'un attribut est interprétée comme un jeton de balise de début après avoir été sérialisée et réanalysée.

Entrée ChromeStatus.com | Spécification

API Crash Reporting : is_top_level et visibility_state

Cette fonctionnalité ajoute les champs de chaîne is_top_level et visibility_state au corps de l'API de création de rapports sur les plantages qui est envoyé au point de terminaison de reporting par défaut pour les rapports sur les plantages.

Entrée ChromeStatus.com | Spécification

Déclencher l'événement pushsubscriptionchange lors de la réinscription

Déclenchez l'événement pushsubscriptionchange dans les workers de service lorsqu'une autorisation de notification est à nouveau accordée à une origine pour laquelle un abonnement push existait dans le passé, mais qui a été révoqué en raison d'une modification de l'autorisation (de "Accordée" à "Refusée"/"Par défaut").

L'événement sera déclenché avec un ancien abonnement et un nouvel abonnement vides.

Bug de suivi n° 407523313 | Entrée ChromeStatus.com | Spécification

Multimédia

Ajouter la prise en charge des métadonnées d'orientation des images vidéo à WebCodecs

Introduit les valeurs rotation: int et flip: bool dans diverses interfaces liées à la vidéo dans WebCodecs afin que les développeurs puissent travailler avec des sources de frames ayant une orientation (par exemple, les caméras Android, certains contenus multimédias).

L'interface VideoFrame permet de créer des VideoFrames avec une rotation et une inversion arbitraires, ainsi que des accesseurs pour ces informations sur l'objet VideoFrame.

L'objet VideoDecoderConfig gagne des champs de rotation et d'inversion qui sont émis automatiquement sur les objets VideoFrame décodés.

La classe VideoEncoder gagne des mécanismes permettant de transmettre les informations de rotation et d'inversion de encode() à VideoDecoderConfig émises dans le cadre de EncodedVideoChunkMetadata. Si encode() est appelé avec des frames ayant des orientations différentes, une exception non fatale sera générée. configure() peut être utilisé pour réinitialiser l'orientation autorisée.

Bug de suivi n° 40243431 | Entrée ChromeStatus.com | Spécification

Performances

Ajoutez prefetchCache et prerenderCache à l'en-tête Clear-Site-Data

Deux nouvelles valeurs pour l'en-tête Clear-Site-Data afin d'aider les développeurs à cibler l'effacement du cache de prérendu et de préchargement : "prefetchCache" et "prerenderCache".

Bug de suivi n° 398149359 | Entrée ChromeStatus.com | Spécification

Règles de spéculation : champ target_hint

Cela étend la syntaxe des règles de spéculation pour permettre aux développeurs de spécifier le champ target_hint.

Ce champ fournit un indice pour indiquer une cible navigable où une page prérendue sera finalement activée. Par exemple, lorsque "_blank" est spécifié comme indication, une page prérendue peut être activée pour un élément navigable ouvert par window.open(). Ce champ n'a aucun effet sur la prélecture.

La spécification permet à ce champ d'accepter toute chaîne valide en tant que nom ou mot clé de cible navigable comme valeur, mais ce lancement n'accepte qu'une seule chaîne "_self" ou "_blank". Si l'indice n'est pas spécifié, il est traité comme si "_self" était spécifié.

Bug de suivi n° 40234240 | Entrée ChromeStatus.com | Spécification

Sécurité

Règlement sur l'intégrité pour les scripts

L'intégrité des sous-ressources (SRI, Subresource Integrity) permet aux développeurs de s'assurer que les ressources qu'ils souhaitent charger sont bien celles qu'ils chargent. Toutefois, les développeurs ne peuvent pas s'assurer que tous leurs scripts sont validés à l'aide de l'intégrité des sous-ressources.

L'en-tête Integrity-Policy permet aux développeurs d'affirmer que chaque ressource d'un type donné doit faire l'objet d'un contrôle d'intégrité. Si une ressource de ce type tente d'être chargée sans métadonnées d'intégrité, cette tentative échoue et déclenche un rapport sur les cas de non-respect.

Entrée ChromeStatus.com | Spécification

Service worker

Compatibilité de ServiceWorker avec le préchargement des règles de spéculation

Cette fonctionnalité permet les préchargements contrôlés par un service worker, c'est-à-dire un préchargement de règles de spéculation pour les URL contrôlées par un service worker. Auparavant, le préchargement était annulé lors de la détection d'un service worker de contrôle. Par conséquent, la navigation ultérieure vers la cible de préchargement était assurée par le chemin d'accès sans préchargement. Cette fonctionnalité permet à la requête de préchargement de passer par le gestionnaire de récupération du service worker. La réponse avec l'interception du service worker est mise en cache dans le cache de préchargement, ce qui permet de diffuser une navigation ultérieure à partir du cache de préchargement. Utilisez la règle d'entreprise PrefetchWithServiceWorkerEnabled pour contrôler cette fonctionnalité.

Bug de suivi #40947546 | Entrée ChromeStatus.com | Spécification

Arrêts et suppressions

WebGPU : abandon de l'attribut GPUAdapter isFallbackAdapter

L'attribut booléen GPUAdapter isFallbackAdapter est obsolète dans WebGPU, car il est redondant avec l'attribut booléen GPUAdapterInfo isFallbackAdapter.

Cette suppression à venir constitue un changement mineur, car la prise en charge des adaptateurs de secours n'a pas encore été implémentée dans les navigateurs. Par conséquent, les deux attributs isFallbackAdapter renvoient systématiquement une valeur "falsy".

Bug de suivi n° 409259074 | Entrée ChromeStatus.com | Spécification

Abandon de la suppression de plage asynchrone pour les extensions Media Source

La norme Media Source a été modifiée il y a longtemps pour interdire les comportements définis de manière ambiguë impliquant des suppressions de plage asynchrones :

  • SourceBuffer.abort() n'interrompt plus les opérations SourceBuffer.remove().
  • Le paramètre MediaSource.duration ne peut plus tronquer les éléments multimédias actuellement mis en cache.

Des exceptions sont désormais générées dans les deux cas.

Safari et Firefox ont depuis longtemps implémenté ce comportement. Chromium est le dernier navigateur à conserver l'ancien comportement. Les compteurs d'utilisation indiquent qu'environ 0,001 % à 0,005 % des chargements de pages déclenchent le comportement obsolète. Si un site rencontre ce problème, la lecture peut désormais s'interrompre.

L'utilisation de abort() pour annuler les suppressions augmente. Il est donc prudent de résoudre cette obsolescence avant que d'autres utilisations incompatibles ne se produisent.

Suivi du bug #40474569 | Entrée ChromeStatus.com | Spécification