Publié le : 28 mai 2025
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 138 est en version bêta depuis le 28 mai 2025. Vous pouvez télécharger la dernière version sur Google.com pour ordinateur ou sur le Google Play Store pour Android.
CSS et UI
Cette version ajoute six nouvelles fonctionnalités CSS et d'UI.
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 s'agrandir pour remplir exactement l'espace disponible de leur bloc de contenu. Il 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.
Fonctions CSS liées aux signes : abs(), sign()
Les fonctions liées au signe abs() et sign() calculent diverses fonctions liées au signe de leur argument.
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. Actuellement, il n'est pas pratique pour une page de détecter si l'utilisateur a modifié la taille de police de son choix dans les préférences du système d'exploitation. Cette variable d'environnement CSS reflétera le facteur d'échelle choisi par l'utilisateur.
CSS sibling-index() et sibling-count()
Les fonctions sibling-index() et sibling-count() peuvent être utilisées comme des entiers dans les valeurs de propriétés CSS pour styliser un élément en fonction de sa position parmi ses 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().
li {
animation-delay: calc(0.1s * sibling-index());
}
Notation fonctionnelle de la progression de l'interpolation : fonction CSS progress()
La notation fonctionnelle progress() est une fonction mathématique qui 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).
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 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.
API Web
Ajouter la prise en charge des métadonnées d'orientation des images vidéo à WebCodecs
Ajout des valeurs rotation: int et flip: bool à diverses interfaces liées aux vidéos dans WebCodecs afin que les développeurs puissent travailler avec des sources de frames orientées (par exemple, les caméras Android et 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 rotation et flip 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 d'orientation différente, une exception non fatale sera générée. La méthode configure() peut être utilisée pour réinitialiser l'orientation autorisée.
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.
Échapper < et > dans les attributs lors de la sérialisation
Échappez < et > dans les valeurs des attributs lors de la sérialisation. Cela atténue 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.
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 échouera et déclenchera un rapport sur les cas de non-respect.
Quota de stockage enregistré prévisible
Signaler un quota de stockage prévisible à partir de l'API d'estimation de StorageManager pour les sites qui ne disposent pas d'autorisations de stockage illimitées. Il est possible de détecter le mode de navigation d'un utilisateur à l'aide du quota de stockage indiqué, car l'espace de stockage disponible est nettement plus petit en mode navigation privée qu'en mode normal.
Cette mesure d'atténuation empêche la détection du mode de navigation d'un utilisateur à l'aide de l'API de stockage en signalant un quota artificiel, égal à l'utilisation + min(10 Gio, disque arrondi à l'entier le plus proche de 1 Gio), dans tous les modes de navigation pour les sites disposant d'autorisations de stockage limitées. Les sites disposant d'autorisations de stockage illimitées ne seront pas concernés. Le quota appliqué ne sera pas non plus affecté.
Événement pushsubscriptionchange lors d'une nouvelle souscription
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 oldSubscription et un newSubscription vides.
Règles de spéculation : ajouter 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.
Ces informations peuvent être envoyées dans n'importe quelle requête et ne doivent pas être fournies dans la requête de document (par exemple, elles peuvent être renvoyées dans les réponses aux appels d'API d'ajout au panier, de connexion et de déconnexion pour lever les spéculations sur le changement d'état).
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. Lorsque _blank est spécifié comme indication, une page prérendue peut être activée pour un navigable ouvert par window.open(). Le champ n'est pas compatible avec la prélecture.
Règle stricte de même origine pour l'API Storage Access
Ajuste la sémantique de l'API Storage Access pour respecter strictement la règle de même origine, en ce qui concerne la sécurité. En d'autres termes, l'utilisation de document.requestStorageAccess() dans un frame associe par défaut uniquement les cookies aux requêtes envoyées à l'origine de l'iFrame (et non au site).
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. 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, 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.
Pour en savoir plus, consultez Générer des résumés concis avec l'IA intégrée.
API Language Detector
API JavaScript permettant de détecter la langue utilisée dans un texte donné, avec des niveaux de confiance. La détection de la langue est un complément important à la traduction. Elle peut être utilisée en combinaison avec l'API Translator. Par exemple, prenez en charge les entrées utilisateur dans une langue inconnue, déterminez sa langue, puis traduisez-la dans une langue cible spécifique. Bien que les navigateurs disposent souvent déjà de fonctionnalités de détection de langue, cette API offre les mêmes possibilités aux développeurs Web avec 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.
Pour en savoir plus, consultez Détecter la langue utilisée avec l'IA intégrée.
API Translator
API JavaScript permettant de traduire des pages Web dans différentes langues.
Bien que les navigateurs proposent de plus en plus de traductions à leurs utilisateurs, ces fonctionnalités 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, comme pour les services en direct et interactifs. 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.
Pour en savoir plus, consultez Traduction avec l'IA intégrée.
Extensions du champ d'application des applications Web
Ajoute un champ de fichier manifeste d'application Web "scope_extensions" qui permet aux applications Web d'étendre leur portée à d'autres origines. Cela permet aux sites qui contrôlent plusieurs sous-domaines et domaines de premier niveau d'être présentés comme une seule application Web. Nécessite que les origines listées confirment l'association avec l'application Web à l'aide d'un fichier de configuration .well-known/web-app-origin-association.
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é lors d'un prochain lancement, une fois qu'Android aura pris en charge les ports série filaires au niveau du système.
Arrêts et suppressions
Cette version de Chrome introduit les abandons et suppressions suivants. Consultez ChromeStatus.com pour obtenir la liste des abandons prévus, des abandons en cours et des suppressions précédentes.
Cette version de Chrome abandonne deux fonctionnalités.
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érationsSourceBuffer.remove().- Le paramètre
MediaSource.durationne peut plus tronquer les éléments multimédias actuellement mis en cache.
Des exceptions seront désormais générées dans les deux cas.
Suppression du remplacement SwiftShader
Le remplacement automatique par WebGL via le moteur de rendu logiciel SwiftShader est obsolète. La création d'un contexte WebGL échouera au lieu de basculer vers SwiftShader. Cette décision a été prise pour deux raisons principales :
- SwiftShader présente un risque de sécurité élevé en raison du code JIT exécuté dans le processeur graphique de Chromium.
- L'expérience utilisateur est médiocre lors du passage d'une implémentation WebGL hautes performances basée sur un GPU à une implémentation basée sur un processeur. Les utilisateurs n'ont aucun contrôle sur ce comportement, et il est difficile de le décrire dans les rapports de bugs.
Pendant la période d'abandon, un avertissement s'affichera dans la console des outils pour les développeurs Chrome lorsqu'un contexte WebGL sera créé et pris en charge par SwiftShader. Si vous spécifiez --enable-unsafe-swiftshader, ce message d'avertissement sera supprimé.