Firefox 154 est arrivé sur le canal stable le 18 août 2026, et c'est sa moitié destinée aux développeurs qui mérite l'attention. La version apporte text-box-trim et le raccourci text-box, les fonctions CSS sibling-index() et sibling-count(), une interface native de sélection pour les champs time et datetime-local, la prise en compte de No-Vary-Search dans le cache disque et quatre nouvelles méthodes d'itérateur. Le changement le plus susceptible de vous surprendre est ailleurs : une page qui ouvre un WebSocket vers un appareil de votre réseau local déclenche désormais une demande de permission.
The short answer
Firefox 154 est arrivé sur le canal stable le 18 août 2026. Côté développeurs, les ajouts notables sont text-box-trim, text-box-edge et le raccourci text-box, les fonctions sibling-index() et sibling-count(), un sélecteur natif pour les champs time et datetime-local, la prise en compte de No-Vary-Search dans le cache disque, un fil d'Ariane dans le visualiseur JSON et quatre nouvelles méthodes d'itérateur. Les contrôles d'accès au réseau local s'étendent aux WebSockets, une page qui joint un appareil du réseau local demande donc d'abord la permission. La navigation dans les vidéos est plus rapide sur toutes les plateformes.
Les notes de version d'un navigateur se parcourent d'ordinaire en diagonale. Celles-ci récompensent la lecture de la section développeurs, car deux des ajouts suppriment des schémas que la plupart des bases de code front end traînent encore.
text-box-trim, ou la fin des marges négatives magiques
Toute police réserve un espace vertical au-dessus et en dessous de ses lettres. Cet espace est réel, il est inscrit dans les métriques de la fonte, et c'est pourquoi un titre avec margin-top: 24px ne se place jamais réellement vingt quatre pixels sous ce qui le précède. Pendant des années, le correctif a consisté à mesurer l'écart, à le soustraire par une marge négative, et à espérer que personne ne changerait la typographie.
Firefox 154 apporte text-box-trim, text-box-edge et le raccourci text-box. text-box-trim choisit les bords à rogner, text-box-edge choisit les métriques de fonte de référence, et le raccourci fait les deux. Résultat : la boîte autour de votre texte correspond aux lettres, donc l'espacement de votre CSS est l'espacement à l'écran.
Pourquoi cela compte plus qu'il n'y paraît : ces corrections par marge négative dépendent de la police et de la taille. Elles cassent au changement de fonte, elles cassent sur la police de repli pendant le chargement d'une fonte web, et elles ne sont presque jamais documentées. Les remplacer par une propriété déclarative retire un petit tas de nombres que personne dans l'équipe ne sait expliquer.
sibling-index() et sibling-count()
Le second ajout, sibling-index() et sibling-count(), expose la position d'un élément parmi ses frères et leur nombre total, sous forme de valeurs utilisables dans calc().
Le schéma que cela remplace est familier. Vous voulez une animation décalée, alors vous parcourez la liste en JavaScript et écrivez style.setProperty('--i', index) sur chaque élément, ou vous demandez à un préprocesseur d'émettre cinquante règles nth-child. Les deux fonctionnent. Les deux font dépendre le comportement visuel de la liste de l'exécution d'un script, ou d'une étape de compilation, plutôt que de la feuille de style. Avec sibling-index(), un délai décalé tient en une déclaration, et il continue de fonctionner quand la liste est rendue côté serveur ou réordonnée dans le DOM.
Le reste de la section développeurs
Une interface native de sélection arrive pour <input type="time"> et <input type="datetime-local">. Une raison de plus de vérifier si le composant de date et d'heure présent dans votre arbre de dépendances justifie encore son poids.
No-Vary-Search est désormais pris en compte par le cache disque. Cet en-tête permet à un serveur de déclarer que certains paramètres de requête ne changent pas la réponse, si bien que ?utm_source=x et son absence peuvent partager une entrée de cache au lieu de se dédoubler. Si vous servez des pages décorées de paramètres de campagne, c'est du taux de succès gratuit, et cela relève de la même famille de préoccupations que notre travail sur les Core Web Vitals.
Le visualiseur JSON affiche maintenant un fil d'Ariane pour l'entrée sélectionnée, petit confort au bénéfice démesuré quand vous fouillez une réponse d'API profondément imbriquée.
Côté JavaScript, les itérateurs gagnent chunks(), windows(), includes() et join(). chunks() regroupe une séquence par lots de taille fixe, windows() produit des fenêtres qui se chevauchent, et les deux autres font ce que font leurs équivalents sur les tableaux. Comme elles opèrent sur des itérateurs paresseux plutôt que sur des tableaux, vous pouvez traiter un flux par lots sans le matérialiser d'abord, raisonnement qui les rend également utiles dans un contexte de worker, sujet que nous avons développé dans notre guide des Web Workers. Comme toujours avec une syntaxe récente, vérifiez la prise en charge dans les navigateurs que vous ciblez réellement avant de vous y fier.
Le changement WebSocket à connaître
Firefox disposait déjà de contrôles d'accès au réseau local pour les requêtes ordinaires. La version 154 les étend aux connexions WebSocket : une page qui ouvre un WebSocket vers un appareil de votre réseau local demande désormais la permission au lieu de se connecter discrètement.
Ce n'est pas un changement que la plupart des utilisateurs verront. C'est un changement que les développeurs peuvent bel et bien rencontrer, car le schéma est partout dans l'outillage : serveurs de rechargement à chaud, ponts vers du matériel, tableaux de bord locaux, interfaces web d'imprimantes et d'équipements, tout ce qui présente une façade navigateur reliée à un démon sur le même réseau. Si une connexion qui s'établissait seule reste maintenant en attente, cherchez la demande de permission avant d'aller déboguer votre code de socket. À ajouter aux notes d'accueil de toute personne rejoignant un projet doté d'un serveur de développement local, à côté des vérifications inter-navigateurs habituelles dont nous parlions quand Servo a tenté sa propre course à la compatibilité web.
Tout le reste
La navigation dans les vidéos est nettement plus rapide sur tous les systèmes d'exploitation, et c'est le changement à la portée la plus large. Le surlignage du texte des PDF suit maintenant le style des pages web et respecte les réglages d'accessibilité du système, et le défaut de mise à l'échelle de l'aperçu avant impression avec l'option d'ajustement à la largeur de page est corrigé. La sauvegarde de profil, qui couvrait déjà Windows et Linux, inclut désormais macOS, et une sauvegarde prise sur une plateforme se restaure sur les autres. Les exceptions de cookies sont désormais distinctes des restrictions de protection contre le pistage, vous pouvez donc conserver les cookies d'un site après un redémarrage sans rien relâcher d'autre. La traduction de page entière traite maintenant le contenu des iframes, et l'identification de la langue s'exécute à chaque chargement pour que Firefox propose la traduction plus fiablement. Les utilisateurs Windows obtiennent la prise en charge de GeForce NOW et la possibilité de choisir une autre icône d'application depuis les paramètres. Une action rapide Manage AI dans la barre d'adresse ouvre la section IA des paramètres, et Smart Window peut suggérer des groupes d'onglets avec des noms générés, en déploiement progressif.
Firefox View sort de la barre d'outils par défaut, ce qui agacera celles et ceux qui s'en servaient et passera inaperçu pour tous les autres.
Sources et pour aller plus loin
- Notes de version de Firefox 154.0, Mozilla, 18 août 2026
- Firefox 154 Adds WebSocket Local Network Protection and New AI Controls, Linuxiac, 17 août 2026
- Firefox 154 Now Available With Manage AI Quick Action, Phoronix, 17 août 2026
- Mozilla Firefox 154 Is Now Available for Download, 9to5Linux
- Firefox 154 released with translation, AI feature and UI tweaks, OMG! Ubuntu, août 2026
Questions fréquentes
À quoi servent text-box-trim et text-box-edge ?
Ils suppriment l'espace vertical qu'une police réserve au-dessus et en dessous de ses lettres, l'interlignage propre à la fonte, pour qu'un titre se place là où le design le demande plutôt que de flotter dans une marge invisible. Avant ces propriétés, respecter l'espacement d'un système de design imposait des marges négatives réglées à la main, police par police et taille par taille, bricolages qui cassaient dès que la fonte changeait. text-box-trim indique quels bords rogner, text-box-edge indique sur quelles métriques rogner, et text-box est le raccourci. C'est le genre de fonctionnalité qui semble cosmétique et qui supprime discrètement toute une catégorie de CSS fragile.
Que font sibling-index() et sibling-count() ?
Elles donnent au CSS accès à la position d'un élément parmi ses frères et au nombre total de frères, sous forme de nombres utilisables dans calc() et d'autres expressions. Autrement dit, des délais d'animation décalés, une indentation progressive ou une rotation de teinte par élément s'expriment directement en CSS, au lieu d'être écrits par du JavaScript dans des propriétés personnalisées en ligne, ou générés en mur de règles nth-child par un préprocesseur. Si vous avez déjà livré une boucle qui appelle style.setProperty avec un index sur chaque élément de liste, ceci la remplace.
Qu'est-ce qui change pour les WebSockets et le réseau local ?
Firefox appliquait déjà des contrôles d'accès au réseau local pour les requêtes ordinaires, et la 154 les étend aux connexions WebSocket. Une page qui ouvre un WebSocket vers un appareil de votre réseau local produit désormais une demande de permission au lieu de se connecter silencieusement. Pour la plupart des utilisateurs, c'est invisible. Pour les développeurs, cela mérite d'être connu, car le rechargement à chaud, les ponts vers du matériel, les interfaces web d'imprimantes et d'équipements ou les tableaux de bord matériels utilisent exactement ce schéma, et une demande de permission au milieu d'une boucle de rechargement déroute la première fois. Si quelque chose qui se reconnectait tout seul se met à attendre, c'est la première chose à vérifier.
Quelles sont les nouvelles méthodes d'itérateur ?
Firefox 154 ajoute chunks(), windows(), includes() et join() aux itérateurs. chunks() découpe un itérateur en groupes de taille fixe, windows() produit des fenêtres glissantes qui se chevauchent, includes() teste l'appartenance sans matérialiser la séquence, et join() la concatène en chaîne. L'intérêt est qu'elles fonctionnent sur des itérateurs paresseux, générateurs compris, ainsi que sur l'itérateur renvoyé par des choses comme entries() d'une Map : vous pouvez donc traiter un flux par lots sans le collecter d'abord dans un tableau. Vérifiez la prise en charge dans les navigateurs que vous ciblez avant de livrer, ces méthodes étant récentes et la disponibilité inter-navigateurs allant prendre du retard.
Y a-t-il quelque chose pour les non-développeurs ?
Plusieurs choses. La navigation dans les vidéos est nettement plus rapide sur tous les systèmes d'exploitation, et c'est le changement que le plus grand nombre remarquera. La sélection de texte dans le lecteur PDF intégré se surligne désormais comme sur une page web normale et respecte les réglages d'accessibilité du système. La sauvegarde de profil, jusque-là limitée à Windows et Linux, couvre maintenant macOS, et une sauvegarde se restaure sur les trois. Firefox peut proposer des groupes d'onglets liés et suggérer un nom pour chacun via Smart Window, en déploiement progressif, et une action rapide Manage AI dans la barre d'adresse ouvre directement la section IA des paramètres. Les utilisateurs Windows peuvent aussi choisir une autre icône d'application depuis les paramètres.