Chrome 148

Date de sortie de la version stable : 5 mai 2026

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

CSS et UI

Requêtes de conteneur CSS avec nom uniquement

Un conteneur de requête CSS peut être interrogé uniquement en fonction de son nom de conteneur. Le conteneur n'a pas besoin d'avoir de type de conteneur défini :

#container {
  container-name: --foo;
}
@container --foo {
  input { background-color: green; }
}
<div id="container">
  <div><input></div>
</div>

Auparavant, @container nécessitait un type de conteneur en plus du nom.

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

Règle @ : détection des fonctionnalités CSS

Cette fonctionnalité ajoute une fonction at-rule() à @supports CSS, qui permet aux auteurs de détecter la compatibilité avec les règles CSS @.

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

Mise en forme du texte et rendu des glyphes avar2 au format Open Font

La version 2 du tableau avar (Axis Variations) permet aux concepteurs de polices de créer des polices variables avec un meilleur contrôle de l'interpolation. Alors que la spécification de la typographie variable d'origine gère les axes de manière indépendante, avar2 permet aux axes de s'influencer mutuellement. Cela permet aux auteurs de contenu d'utiliser plus facilement les polices et de les stocker de manière compacte.

Avar2 fonctionne en utilisant les mêmes concepts familiers de variantes de typographie, mais applique les valeurs delta variables aux spécifications de l'axe de conception lui-même. De plus, il vous permet de le faire sur une plage de plusieurs axes.

Par exemple, il permet aux concepteurs de polices de créer des "métacurseurs" qui contrôlent plusieurs axes de variation à la fois, ce qui évite à l'utilisateur d'avoir à affiner et à trouver un angle utile de l'espace de conception de la police.

Avar2 offre aux concepteurs de polices un meilleur contrôle sur l'espace de variation utilisable de leur police et leur permet de coordonner l'ajustement des axes de conception sur plusieurs axes.

En définissant mathématiquement les relations entre les axes dans la table avar version 2, les polices peuvent obtenir des conceptions complexes avec moins de maîtres, ce qui permet de réduire la taille des fichiers, car l'interpolation est stockée plus efficacement.

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

Mot clé "revert-rule"

Le mot clé revert-rule restaure la cascade à la règle précédente, de la même manière que revert-layer restaure la cascade au calque précédent. Exemple :

div { color: green; }
div { color: revert-rule; /* Effectively green */ }

C'est particulièrement utile en combinaison avec les conditions, car cela vous permet d'éliminer la règle actuelle si une condition n'est pas remplie :

div {
  display: if(style(--layout: fancy): grid; else: revert-rule);
}

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

Chargement différé pour les éléments vidéo et audio

Ajoute l'attribut loading aux éléments <video> et <audio>, ce qui permet aux développeurs de différer le chargement des ressources multimédias jusqu'à ce que l'élément soit proche de la fenêtre d'affichage à l'aide de loading="lazy". Cela correspond au comportement de chargement différé existant pour les éléments <img> et <iframe>, ce qui améliore les performances de chargement des pages et réduit la consommation des données.

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

text-decoration-skip-ink: all

Ajoutez la prise en charge de la valeur all pour la propriété CSS text-decoration-skip-ink.

La propriété text-decoration-skip-ink est déjà compatible avec auto et none. La valeur all étend cette fonctionnalité en appliquant l'évitement de l'encre à tous les glyphes de manière inconditionnelle, y compris les caractères CJK, tandis que auto laisse les caractères CJK sans évitement, car l'évitement de l'encre a tendance à produire des résultats visuels indésirables pour les scripts idéographiques aux positions de soulignement typiques.

Avec text-decoration-skip-ink: all, les développeurs qui ont ajusté text-underline-position ou text-underline-offset pour éviter les conflits avec les glyphes CJK peuvent également activer explicitement l'ink-skipping pour ces caractères.

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

Définir correctement dropEffect pour les événements dragEnter, dragLeave et dragOver

Les spécifications du glisser-déposer exigent que l'attribut dropEffect de l'objet dataTransfer ait certaines valeurs prédéterminées sur dragEnter, dragOver et dragLeave. Le déplacement et le déplacement au-dessus doivent avoir un dropEffect basé sur le effectAllowed actuel, et dragLeave doit toujours avoir un none dropEffect. Actuellement, Chromium ne respecte pas ces règles. Avec le lancement de cette fonctionnalité, Chromium commencera à respecter la spécification et à attribuer les valeurs correctes à cet attribut afin que les développeurs Web puissent commencer à s'y fier.

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

Suppression des événements de pointeur au début du déplacement

Selon la spécification HTML, lorsqu'un déplacement commence, l'agent utilisateur doit envoyer les événements appropriés à la source de déplacement pour indiquer que le flux d'événements de pointeur est terminé et qu'il ne doit plus s'attendre à d'autres événements de ce pointeur. Ce code avait été partiellement implémenté pour les événements de souris et entièrement implémenté pour les déplacements tactiles sur Android. Grâce à cette fonctionnalité, nous souhaitons répondre pleinement à cette exigence de spécification sur toutes les autres plates-formes. Concrètement, cela signifie qu'une fois le déplacement commencé, la source de déplacement recevra les événements pointercancel, pointerout et pointerleave pour indiquer que le flux d'événements actuel est terminé.

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

Capacités

Localisation du fichier manifeste

Permet la localisation des membres du fichier manifeste afin que les applications puissent adapter leurs noms, descriptions, icônes et raccourcis à la langue et à la région de l'utilisateur. Les développeurs fournissent des valeurs localisées dans le fichier manifeste d'application Web, et le navigateur sélectionne automatiquement les ressources appropriées en fonction des paramètres de langue de l'utilisateur, ce qui permet de prendre en charge différentes langues sur différents marchés.

Pour en savoir plus, consultez Prise en charge de la localisation pour les fichiers manifestes des applications Web.

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

Web sur Android

API Web Serial sur Android

L'API Web Serial fournit une interface permettant de se connecter à des appareils série, soit via un port série sur le système de l'utilisateur, soit via des appareils USB et Bluetooth amovibles qui émulent un port série. Il est désormais disponible sur Android.

Les utilisateurs, en particulier dans les secteurs de l'éducation, des loisirs et de l'industrie, connectent des périphériques à leurs ordinateurs qui nécessitent un logiciel personnalisé pour être contrôlés. Par exemple, la robotique est souvent utilisée pour enseigner la programmation informatique et l'électronique dans les écoles. Cela nécessite un logiciel capable d'importer du code dans un robot ou de le contrôler à distance. Dans un contexte industriel ou amateur, un équipement tel qu'une fraiseuse, une découpeuse laser ou une imprimante 3D est contrôlé par un programme exécuté sur un ordinateur connecté. Ces appareils sont souvent contrôlés par de petits microcontrôleurs à l'aide d'une connexion série.

Pour en savoir plus, consultez le guide de l'API Web Serial sur web.dev et la spécification Web Serial.

Bug de suivi n° 365514951 | Entrée ChromeStatus.com

SharedWorker sur Android

Pendant longtemps, SharedWorker a été désactivé sur Android en raison de préoccupations concernant son cycle de vie de processus imprévisible. Les instances SharedWorker peuvent s'arrêter de manière inattendue, sans en avertir les utilisateurs ni les développeurs Web.

Toutefois, une discussion récente sur GitHub (voir la discussion GitHub) suggère que la nature imprévisible du cycle de vie du processus SharedWorker n'est peut-être pas un problème aussi important qu'on le pensait auparavant. Sur cette base, SharedWorker est réactivé sur Android pendant que ce comportement est étudié pour garantir une expérience stable et fiable.

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

API Web

WebGPU : linear_indexing

Cette fonctionnalité ajoute des fonctionnalités à la spécification WebGPU après sa première livraison dans un navigateur.

Ajout de deux nouvelles valeurs intégrées au shader de calcul pour améliorer la qualité de vie des utilisateurs. Elles sont implémentées pour tous les backends (en tant que polyfills des valeurs intégrées existantes).

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

Mode UI immédiat pour l'authentification Web

Nouveau mode pour navigator.credentials.get() qui entraîne l'affichage de l'interface utilisateur de connexion du navigateur à l'utilisateur s'il existe une clé d'accès ou un mot de passe pour le site qui est immédiatement connu du navigateur, ou rejette la promesse avec NotAllowedError si aucune de ces informations d'identification n'est disponible. Cela permet au site d'éviter d'afficher une page de connexion si le navigateur peut proposer un choix d'identifiants de connexion susceptibles de fonctionner, tout en autorisant un flux de page de connexion traditionnel pour les cas où il n'y a pas de tels identifiants.

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

Bénéficier des fonctionnalités de confirmation de paiement sécurisé

Ajoute une nouvelle méthode statique à la requête de paiement qui permet aux développeurs Web d'obtenir les capacités de l'implémentation du navigateur de la confirmation de paiement sécurisé.

Cela permet aux développeurs Web de connaître les fonctionnalités disponibles pour la confirmation sécurisée du paiement. Ils peuvent ainsi décider de les utiliser ou non.

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

Durée de vie étendue des SharedWorkers

Cette mise à jour ajoute une nouvelle option, extendedLifetime: true, au constructeur SharedWorker. Cette nouvelle option permet de maintenir le SharedWorker actif, même après le déchargement de tous les clients actuels. Cela permet aux pages d'effectuer des tâches asynchrones nécessitant JavaScript après le déchargement d'une page, sans avoir recours à un service worker.

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

API Prompt

L'API Prompt permet aux développeurs Web d'accéder directement à un modèle de langage d'IA sur l'appareil fourni par le navigateur. La conception de l'API offre un contrôle précis, aligné sur les formes d'API cloud, pour améliorer progressivement les sites grâce à des interactions de modèle adaptées à des cas d'utilisation individuels. Cela complète les API de modèle de langage basées sur des tâches, par exemple l'API Summarizer, ainsi qu'une variété d'API et de frameworks pour l'inférence généralisée sur l'appareil avec des modèles ML fournis par les développeurs.

L'implémentation initiale accepte les entrées de texte, d'image et audio. De plus, les contraintes de réponse garantissent que le texte généré est conforme aux formats d'expression régulière et de schéma JSON prédéfinis.

Elle prend en charge différents cas d'utilisation, comme la génération de légendes d'images et l'exécution de recherches visuelles, la transcription de contenus audio, la classification d'événements sonores, la génération de texte en suivant des instructions spécifiques et l'extraction d'informations ou d'insights à partir de documents sources multimodaux.

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

Réseau et connectivité

Règles ContextJ de l'IDNA

IDNA est le mécanisme permettant d'utiliser des caractères non ASCII dans les noms de domaine. Il encode une URL telle que http://네이버.한국/ en http://xn--950bt9s8xi.xn--3e0b707e/ (une redirection vers naver.com).

La spécification d'URL définit l'indicateur CheckJoiners, qui active les règles ContextJ dans IDNA2008. Cela interdit l'utilisation de ZWNJ (U+200C ZERO WIDTH NON-JOINER) et ZWJ (U+200D ZERO WIDTH JOINER) dans la plupart des endroits des URL. L'implémentation transmet l'option UIDNA_CHECK_CONTEXTJ à ICU, où cette règle est implémentée.

Numéro du bug de suivi : 40765949 | Entrée ChromeStatus.com | Spécification

Réutiliser des images no-store lors d'une réattribution same-src

Autorisez la réutilisation des images disponibles dans le même document pour contourner le rechargement Cache-Control: no-store lorsque la même valeur src est réattribuée à un élément <img>. Auparavant, Blink récupérait à nouveau l'image même si elle était déjà décodée et disponible dans le document. Cela correspond au comportement existant de Gecko et WebKit.

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

Performances

ContentType dans Resource Timing

Ajoute le champ contentType à PerformanceResourceTiming pour contenir une chaîne correspondant à l'en-tête HTTP Content-Type de la ressource récupérée, tel que renvoyé par le serveur.

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

WebRTC Datachannel: Always negotiate data channels

Implémente une extension WebRTC alwaysNegotiateDataChannels qui définit un moyen pour l'application de négocier des canaux de données dans l'offre SDP avant de créer un canal de données. Cela négocie également la section m= des données avant toute section m audio ou vidéo, et l'utilise comme "section m= marquée par l'offrant" pour BUNDLE.

Par conséquent :

const pc = new RTCPeerConnection({ alwaysNegotiateDataChannels: true });
const offer = await pc.createOffer();

créera une offre avec une ligne m d'application dans le SDP et :

const pc = new RTCPeerConnection({ alwaysNegotiateDataChannels: true });
pc.addTransceiver('audio');
pc.createDataChannel('somechannel');
const offer = await pc.createOffer();

créera une offre qui négocie une ligne m d'application suivie d'une ligne m audio dans le SDP.

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

Nouvelles phases d'évaluation

Scripts de module CSS déclaratifs

Les scripts de modules CSS déclaratifs sont une extension des scripts de modules CSS existants basés sur des scripts. Ils permettent aux développeurs de partager des feuilles de style déclaratives avec des racines fantômes, y compris des racines fantômes déclaratives. Les développeurs peuvent définir des modules de style intégrés avec <style type="module" specifier="foo"> et appliquer un module déclaratif à un DOM fantôme déclaratif en référençant un spécificateur ou une URL, comme <template shadowrootmode="open" shadowrootadoptedstylesheets="foo">.

Version d'évaluation de l'origine | Bug de suivi n° 448174611 | Entrée ChromeStatus.com | Spécification

API Container Timing

L'API Container Timing permet de surveiller le moment où les sections annotées du DOM s'affichent à l'écran et ont terminé leur rendu initial. Un développeur pourra marquer des sous-sections du DOM avec l'attribut containertiming (semblable à elementtiming pour l'API Element Timing) et recevoir des entrées de performances lorsque cette section aura été peinte pour la première fois. Cette API permettra aux développeurs de mesurer le timing de différents composants de leurs pages.

Origin Trial | Tracking bug #382422286 | ChromeStatus.com entry | Spec

Élément d'installation HTML pour les applications Web

Permet à un site Web d'inviter de manière déclarative les utilisateurs à installer une application Web. L'élément accepte éventuellement deux attributs qui permettent d'installer du contenu provenant d'une origine différente.

Version d'évaluation de l'origine | Bug de suivi n° 454827186 | Entrée ChromeStatus.com | Spécification

Durée du style "Long Animation Frames"

Ajout d'informations styleDuration et forcedStyleDuration à l'API Long Animation Frame, permettant aux développeurs de distinguer les temps de style et de mise en page.

Version d'évaluation de l'origine | Bug de suivi n° 476826067 | Entrée ChromeStatus.com | Spécification

HTML dans le canevas

HTML-in-canvas permet de personnaliser le rendu HTML à l'aide du canevas avec trois nouvelles primitives : un attribut pour activer les éléments de canevas (layoutsubtree), des méthodes pour dessiner des éléments enfants (2D : drawElementImage, WebGL : texElementImage2D, WebGPU : copyElementImageToTexture) et un événement de peinture qui se déclenche pour gérer les mises à jour.

Phase d'évaluation de l'origine | Bug de suivi n° 500967896 | Entrée ChromeStatus.com | Spécification

Listes d'autorisation de connexion

Les listes d'autorisation de connexion sont une fonctionnalité conçue pour fournir un contrôle explicite sur les points de terminaison externes en limitant les connexions initiées à l'aide de l'API Fetch ou d'autres API de plate-forme Web à partir d'un document ou d'un worker.

L'implémentation proposée implique la distribution d'une liste de points de terminaison autorisés à partir du serveur via un en-tête de réponse HTTP. Avant d'établir une connexion au nom d'une page, l'user-agent évalue la destination par rapport à cette liste d'autorisation. Les connexions aux points de terminaison validés sont autorisées, tandis que celles qui ne correspondent pas aux entrées de la liste sont bloquées.

Version d'évaluation de l'origine | Bug de suivi n° 447954811 | Entrée ChromeStatus.com | Spécification

Paramètres d'échantillonnage de l'API Prompt

Ajoute des paramètres d'échantillonnage à l'API Prompt. Ils contrôlent la façon dont les jetons sont échantillonnés à partir du modèle, ce qui permet aux développeurs de contrôler la "créativité" ou le "caractère aléatoire" de la sortie. Il ajoute également des attributs à l'instance LanguageModel pour lire les valeurs définies, ainsi qu'une fonction statique LanguageModel pour obtenir les valeurs par défaut et maximales de ces paramètres.

La première implémentation ajoute les paramètres temperature et topK.

Version d'évaluation de l'origine | Bug de suivi n° 496663356 | Entrée ChromeStatus.com | Spécification

Analyser les instructions de traitement en HTML

Les instructions de traitement (syntaxe : <?target data>) sont une construction DOM existante, exposée en XML, qui permet aux objets de nœud qui ne sont pas des éléments, mais qui peuvent avoir une signification sémantique pour le traitement d'un document.

Par exemple, ils peuvent être utilisés pour désigner des plages de streaming ou de mise en surbrillance sans nécessiter de nouveaux éléments DOM ni modifier la structure DOM en ce qui concerne le CSS, ou comme directives pour l'analyseur HTML sur la façon de mettre en mémoire tampon et de diffuser.

Bug de suivi n° 481087638 | Entrée ChromeStatus.com

OpaqueRange

OpaqueRange représente une étendue de texte en direct dans la valeur d'un contrôle de formulaire, comme un <textarea> ou un <input> basé sur du texte. Les développeurs peuvent ainsi travailler avec le texte de la valeur à l'aide d'API de type plage.

Il permet des opérations telles que getBoundingClientRect(), getClientRects() et l'intégration à l'API CSS Custom Highlight pour les UI telles que les suggestions intégrées, les mises en surbrillance et les pop-ups ancrés. Il préserve l'encapsulation en n'exposant que les décalages de valeur tout en renvoyant null pour startContainer et endContainer. Les points de terminaison DOM et la structure interne ne sont donc pas exposés.

Origin Trial | Tracking bug #421421332 | Entrée ChromeStatus.com