Publié le 8 avril 2026
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 ces fonctionnalités, utilisez les liens fournis ou consultez ChromeStatus.com. Chrome est en version bêta à partir de cette version. Vous pouvez télécharger la dernière version bêta sur Google.com pour ordinateur ou sur le Google Play Store sur Android.
CSS et UI
Requêtes de conteneur avec nom uniquement en CSS
Vous pouvez désormais interroger un conteneur CSS en fonction de son container-name uniquement, sans définir de container-type sur l'élément.
#container {
container-name: --foo;
}
@container --foo {
input { background-color: green; }
}
<div id="container">
<div><input></div>
</div>
Découper le texte en cas de dépassement lors de l'interaction de l'utilisateur
Lorsqu'un utilisateur interagit (par exemple, en modifiant ou en utilisant la navigation par caret) avec du texte pour lequel text-overflow: ellipsis est défini, le texte passe temporairement des points de suspension à la découpe. L'utilisateur peut ainsi voir le contenu masqué et interagir avec lui. Cette fonctionnalité s'applique à tous les éléments modifiables et non modifiables. Pour
les commandes de formulaire, telles que <textarea> et <input>, ce comportement est déjà
pris en charge.
Définir correctement dropEffect pour les événements dragEnter, dragLeave et dragOver
Les spécifications de glisser-déposer exigent que l'attribut dropEffect de l'objet dataTransfer ait certaines valeurs prédéterminées sur dragEnter, dragOver et dragLeave. dragEnter et dragOver doivent avoir un dropEffect basé sur le effectAllowed actuel. dragLeave doit toujours avoir un dropEffect none. Actuellement, Chrome ne respecte pas ces règles.
À partir de Chrome 148, Chrome respectera la spécification et attribuera les valeurs correctes à cet attribut.
Charger les éléments vidéo et audio de manière différée
Cette fonctionnalité ajoute l'attribut loading aux éléments <video> et <audio>.
Cela 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 l'utilisation des données.
Fonction CSS at-rule() pour la détection de fonctionnalités
Cette fonctionnalité ajoute une fonction at-rule() à CSS @supports, ce qui permet aux auteurs de détecter la compatibilité avec les règles CSS.
Ajouter le mot clé revert-rule
Le mot clé revert-rule rétablit la cascade à la règle précédente, de la même manière que revert-layer rétablit la cascade au calque précédent. Exemple :
div { color: green; }
div { color: revert-rule; /* Effectively green */ }
Cela est particulièrement utile 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);
}
Prise en charge de text-decoration-skip-ink: all
Cette fonctionnalité ajoute 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 inconditionnellement le saut d'encre à tous les glyphes, y compris les caractères CJK. En revanche, auto laisse les caractères CJK sans saut, car le saut d'encre a tendance à produire des résultats visuels indésirables pour les scripts idéographiques aux positions de soulignement classiques. Avec text-decoration-skip-ink: all, les auteurs qui ont ajusté text-underline-position ou text-underline-offset pour éviter les conflits avec les glyphes CJK peuvent explicitement activer le saut d'encre pour ces caractères.
API Web
Localiser les membres du fichier manifeste
Cette fonctionnalité est compatible avec la localisation des membres du fichier manifeste, ce qui permet aux applications d'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 de l'application Web. Le navigateur sélectionne automatiquement les ressources appropriées en fonction des paramètres de langue de l'utilisateur, ce qui introduit la prise en charge des langues sur différents marchés.
Prise en charge du format Open Font avar2 pour la mise en forme du texte et le rendu des glyphes
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 police variable d'origine gère les axes indépendamment, avar2 permet aux axes de s'influencer mutuellement. Les polices sont ainsi plus faciles à utiliser pour les auteurs de contenu et permettent un stockage compact.
Avar2 fonctionne en utilisant les mêmes concepts familiers de variations de police, mais vous permet d'appliquer des valeurs delta variables aux axes de conception eux-mêmes. Vous pouvez le faire sur une plage de plusieurs axes.
Par exemple, vous pouvez créer des curseurs méta qui contrôlent plusieurs axes de variation à la fois. L'utilisateur n'a plus besoin d'affiner et de 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 le tableau avar version 2, les polices peuvent obtenir des conceptions complexes avec moins de maîtres. Cela permet de réduire la taille des fichiers, car l'interpolation est stockée plus efficacement.
Mode d'UI immédiat d'authentification Web
Ce nouveau mode pour navigator.credentials.get() affiche l'UI de connexion du navigateur à l'utilisateur si une clé d'accès ou un mot de passe pour le site est immédiatement connu du navigateur. Sinon, il rejette la promesse avec NotAllowedError si aucun identifiant de ce type 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. Il autorise toujours un flux de page de connexion dans les cas où aucun identifiant de ce type n'existe.
Prise en charge de l'API Web Serial sur Android
L'API Web Serial fournit une interface pour se connecter à des appareils sériels. Ces appareils peuvent se connecter via un port série sur le système de l'utilisateur ou via des appareils USB et Bluetooth amovibles qui émulent un port série. L'API est désormais compatible avec 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 environnement industriel ou de loisirs, 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 via une connexion série.
Fonctionnalité WebGPU linear_indexing
Cette fonctionnalité ajoute deux nouvelles valeurs intégrées de shader de calcul pour améliorer l'expérience utilisateur. Ces valeurs sont implémentées pour tous les backends (en tant que polyfills de valeurs intégrées existantes).
Prise en charge de 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 développeurs Chrome pensaient que les instances SharedWorker pouvaient se terminer de manière inattendue sans avertir les utilisateurs ni les développeurs Web. Cela était considéré comme inacceptable.
Toutefois, une discussion récente sur GitHub
suggère que la nature imprévisible
du cycle de vie du processus de SharedWorker's n'est peut-être pas un problème aussi important qu'on ne le pensait auparavant. Sur cette base, Chrome réactive SharedWorker sur Android tout en étudiant ce comportement pour garantir une expérience stable et fiable.
Durée de vie prolongée pour les workers partagés
Cette mise à jour ajoute une nouvelle option, extendedLifetime: true, au constructeur SharedWorker. Cela demande que le worker partagé reste actif même après le déchargement de tous les clients actuels. Le principal cas d'utilisation consiste à permettre aux pages d'effectuer un travail asynchrone nécessitant JavaScript après le déchargement d'une page, sans avoir à s'appuyer sur un service worker.
API Prompt
L'API Prompt offre aux développeurs Web un accès direct à 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. Cela vous permet d'améliorer progressivement les sites avec des interactions de modèle adaptées à des cas d'utilisation individualisés. Cela complète les API de modèle de langage basées sur des tâches (par exemple, l'API Summarizer) et diverses API et frameworks pour l'inférence généralisée sur l'appareil avec des modèles de ML fournis par les développeurs. L' implémentation initiale est compatible avec les entrées de texte, d'image et audio, ainsi qu'avec les contraintes de réponse qui garantissent que le texte généré est conforme aux formats d'expression régulière et de schéma JSON prédéfinis.
Cela est compatible avec différents cas d'utilisation. Par exemple, il peut générer des légendes d'images, effectuer des recherches visuelles, transcrire de l'audio, classer des événements sonores, générer du texte en suivant des instructions spécifiques et extraire des informations ou des insights à partir de supports sources multimodaux.
Cette API a déjà été fournie dans les extensions Chrome. Cette intention suit la livraison sur le Web. 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. Les administrateurs d'entreprise peuvent également définir la règle BuiltInAIAPIsEnabled pour bloquer l'utilisation de l'API d'IA intégrée tout en autorisant d'autres fonctionnalités GenAI sur l'appareil.
Journal de prise en charge des langues :
- Chrome 139 et versions antérieures ne prenaient en charge que l'anglais (
'en') - Chrome 140 a ajouté la prise en charge de l'espagnol et du japonais (
'es'et'ja')
Obtenir des fonctionnalités de confirmation de paiement sécurisé
Cette fonctionnalité ajoute une nouvelle méthode statique à l'API Payment Request, qui permet aux développeurs Web d'obtenir les fonctionnalités de l'implémentation de la confirmation de paiement sécurisé par le navigateur. Cela permet aux développeurs Web de savoir quelles fonctionnalités sont disponibles pour la confirmation de paiement sécurisé. Ils peuvent ensuite décider d'utiliser ou non la confirmation de paiement sécurisé avec ces fonctionnalités.
Règles IDNA ContextJ
IDNA est le mécanisme permettant d'utiliser des caractères non ASCII dans les noms de domaine. Il encode une URL comme 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 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.
Réutiliser les images no-store lors de la réattribution de la même source
Cette fonctionnalité permet à la réutilisation d'images disponibles dans le même document de 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.
Ajouter le champ contentType à Resource Timing
Cette fonctionnalité ajoute le champ contentType à PerformanceResourceTiming pour contenir une chaîne correspondant au type de contenu de la ressource récupérée, tel qu'il est renvoyé par le serveur.
Supprimer les événements de pointeur au début du glissement
Selon la spécification HTML, lorsqu'un glissement commence, l'agent utilisateur doit envoyer les événements appropriés à la source de glissement 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 a été partiellement implémenté pour les événements de souris et entièrement implémenté pour les glissements tactiles sur Android. Avec cette fonctionnalité, Chrome vise à répondre pleinement à cette exigence de spécification sur toutes les autres plates-formes. En pratique, cela signifie qu'une fois le glissement commencé, la source de glissement recevra les événements pointercancel, pointerout et pointerleave pour indiquer que le flux d'événements actuel est terminé.
WebRTC Datachannel : toujours négocier les canaux de données
Cette fonctionnalité implémente une extension WebRTC, alwaysNegotiateDataChannels, qui définit un moyen pour une application de négocier des canaux de données dans une offre SDP avant de créer un canal de données. Elle négocie également la section m= des données avant
toute section m audio ou vidéo et l'utilise comme 'section m= avec tag de l'offrant'
pour [BUNDLE].
Cela signifie que si vous créez un RTCPeerConnection avec alwaysNegotiateDataChannels: true, puis appelez createOffer(), une offre avec une ligne m d'application est créée dans le SDP. Exemple :
const pc = new RTCPeerConnection({
alwaysNegotiateDataChannels: true});
const offer = await pc.createOffer();
Si vous ajoutez également un émetteur-récepteur audio et un canal de données, l'offre négocie une ligne m d'application suivie d'une ligne m audio dans le SDP :
const pc = new RTCPeerConnection({
alwaysNegotiateDataChannels: true});
pc.addTransceiver('audio');
pc.createDataChannel('somechannel');
const offer = await pc.createOffer();
Nouvelles phases d'évaluation
Dans Chrome 148, vous pouvez activer les nouvelles phases d'évaluation suivantes.
Connexion fédérée agentique
Ensemble d'extensions FedCM pour aider les navigateurs agentiques à connecter les utilisateurs en toute sécurité aux sites Web à l'aide de leurs comptes fédérés.
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 via l'API Fetch ou d'autres API de plate-forme Web à partir d'un document ou d'un worker. L'implémentation proposée distribue une liste de points de terminaison autorisés à partir du serveur via un en-tête de réponse HTTP. Avant que l'agent utilisateur n'établisse une connexion au nom d'une page, il é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.
Timing du conteneur
L'API Container Timing vous permet de surveiller le moment où les sections annotées du DOM sont affichées à l'écran et ont terminé leur peinture initiale. Vous pouvez 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 a été peinte pour la première fois. Cette API vous permet de mesurer le timing de différents composants de vos pages.
Scripts de module CSS déclaratifs
Les scripts de module CSS déclaratifs sont une extension des scripts de module 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 specifier ou une URL, par exemple <template shadowrootmode="open" shadowrootadoptedstylesheets="foo">.
HTML dans le canevas
HTML-in-canvas est une nouvelle API qui vous permet de personnaliser les éléments DOM de rendu directement dans un canevas ou une texture WebGL / WebGPU tout en conservant l'interactivité et l'accessibilité du contenu. Elle comporte trois parties : 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 moyen de mettre à jour correctement la transformation de l'élément à l'écran pour l'interactivité.
Durée du style des frames d'animation longues
Cette fonctionnalité ajoute des informations styleDuration et forcedStyleDuration à l'API Long Animation Frame. Cela permet aux développeurs de distinguer les temps de style et de mise en page.
OpaqueRange
OpaqueRange représente une étendue de texte en direct dans la valeur d'une commande de formulaire
(par exemple, un <textarea> ou un <input> de texte).
Les développeurs peuvent ainsi utiliser le texte de la valeur à l'aide d'API de type plage.
Il permet des opérations telles que getBoundingClientRect(), getClientRects() et l'utilisation avec l'API CSS Highlights pour les UI telles que les suggestions intégrées, les mises en surbrillance et les pop-overs ancrés. Il préserve l'encapsulation en n'exposant que les décalages de valeur (et en renvoyant la valeur nulle pour startContainer et endContainer), de sorte que les points de terminaison DOM et la structure interne ne sont pas exposés.
Analyser les instructions de traitement en HTML
Les instructions de traitement (syntaxe : <?target data>) sont une construction DOM
existante, exposée en XML. Cette construction permet aux objets de nœud qui ne sont pas des éléments d'avoir une signification sémantique pour le traitement d'un document. Par exemple, vous pouvez les utiliser pour désigner des plages de streaming ou de mise en surbrillance sans nécessiter de nouveaux éléments DOM et sans modifier la structure DOM en ce qui concerne le CSS. Vous pouvez également les utiliser comme directives pour l'analyseur HTML sur la façon de mettre en mémoire tampon et de diffuser en streaming.
Règle d'autorisation : focus-without-user-activation
Cette règle permet aux intégrateurs de contrôler le focus programmatique à partir de contenu intégré via la règle d'autorisation focus-without-user-activation. Lorsque la règle est refusée pour un frame, les appels de focus programmatique (element.focus(), autofocus, window.focus(), dialog.showModal() et le focus sur les pop-overs) sont bloqués, sauf s'ils sont déclenchés par l'activation de l'utilisateur. Le focus initié par l'utilisateur, comme le clic ou la tabulation, n'est jamais affecté. Vous pouvez définir la règle via un en-tête de réponse HTTP Permissions-Policy ou l'attribut iframe allow. La délégation du focus est prise en charge. Un frame parent qui a le focus peut le transmettre par programmation à un iframe enfant, même si la règle est refusée pour l'enfant. Une fois qu'un frame a le focus, il peut le déplacer dans son propre sous-arbre.
Paramètres d'échantillonnage de l'API Prompt
Cette fonctionnalité ajoute des paramètres d'échantillonnage à l'API Prompt. Ces paramètres 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. De plus, elle ajoute des attributs à l'instance LanguageModel pour lire les valeurs définies. Elle ajoute également une fonction LanguageModel statique 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.
Élément d'installation HTML de l'application Web
Cette fonctionnalité permet à un site Web d'inviter les utilisateurs à installer une application Web de manière déclarative. L'élément accepte éventuellement deux attributs, ce qui vous permet d'installer du contenu à partir d'une autre origine.