Firefox 156 note de version pour les développeurs
Cet article présente les informations concernant les changements de Firefox 156 qui concernent les développeur·euse·s. Firefox 156 est sorti le 15 septembre 2026 (angl.).
Changements pour les développeur·euse·s web
>Outils de développement
- L'inspecteur de page (angl.) résout désormais les fonctions de substitution —
var(),attr(), etenv()— lors du calcul des étapes affichées pour une déclaration, de sorte qu'une valeur provenant d'une propriété personnalisée ou d'un attribut est tracée jusqu'à sa source plutôt que d'être affichée non résolue. (bogue Firefox 2041622 (angl.)). - La lecture de la taille de la zone d'affichage dans le surligneur de l'inspecteur n'arrondit plus la largeur et la hauteur, ce qui auparavant signalait une taille trompeuse aux niveaux de zoom fractionnaires ou sur les écrans à haute densité. (bogue Firefox 2055445 (angl.)).
- Les outils de développement peuvent désormais se connecter à un serveur de débogage jusqu'à trois versions plus anciennes que le client, contre la limite précédente. Cela est important lors du débogage à distance d'une version plus ancienne de Firefox ou de GeckoView. (bogue Firefox 2064221 (angl.)).
- Correction du problème où le surligneur des règles restait visible après avoir été désactivé, lorsque l'inspecteur n'était pas le panneau sélectionné. (bogue Firefox 2063982 (angl.)).
- Correction du problème où F2 invoquait « Modifier en tant que HTML » sur des nœuds qui ne le supportaient pas, et affichait un contenu obsolète d'une édition précédente. (bogue Firefox 2064213 (angl.)).
- Correction de la position de la fenêtre bloquante « Paramètres de l'appareil » dans le mode de conception réactive. (bogue Firefox 2062153 (angl.)).
HTML
Pas de changements notables.
SVG
- Les propriétés
MouseEvent.offsetXetMouseEvent.offsetYsont désormais mesurées à partir de l'origine de l'élément<svg>le plus externe pour les évènements ciblant un<tspan>, qui utilisait auparavant la mauvaise origine. (bogue Firefox 2066045 (angl.)). - Le mutateur
SVGSVGElement.currentScaleest désormais une opération nulle sur un élément<svg>imbriqué, comme l'exige la spécification. Il continue de fonctionner sur l'élément<svg>le plus externe. (bogue Firefox 2063188 (angl.)).
CSS
- Le pseudo-élément non standard
::-webkit-scrollbarest désormais signalé comme non pris en charge dans les conditions@supportssur tous les sites, donc@supports selector(::-webkit-scrollbar)retournefalseet@supports not (selector(::-webkit-scrollbar))retournetrue. Cela inclut les sites répertoriés dans la préférencelayout.css.fake-webkit-scrollbar.enabled-domainsintroduite dans Firefox 155. Firefox agit toujours sur les règles::-webkit-scrollbarsur ces sites, mais il ne signale plus le pseudo-élément comme pris en charge. Les sites utilisent cette vérification comme un signal que toute la famille::-webkit-scrollbar-*est prise en charge, mais Firefox ne prend pas en charge les autres pseudo-éléments de cette famille. Les sites qui protègent leurs styles de barre de défilement standard derrière@supports not (selector(::-webkit-scrollbar))voient désormais ces styles appliqués dans Firefox. (bogue Firefox 2062782 (angl.)). - Les propriétés
text-box-trimettext-box-edgesont désormais correctement appliquées dans plusieurs cas qui produisaient auparavant un résultat incorrect : le rognage utilise les métriques de police du pseudo-élément::first-linelorsqu'on l'applique (bogue Firefox 2063835 (angl.)), la ligne correcte est rognée lorsqu'une boîte en incise sur la dernière ligne est fragmentée (bogue Firefox 2063909 (angl.)), et le rognage sur une boîte en incise ne supprime plus sa bordure et son remplissage (bogue Firefox 2064596 (angl.)). Notez quetext-box-trimn'a toujours aucun effet en combinaison avecline-clamp. @supportsne signale plus la prise en charge du pseudo-élément::-webkit-scrollbar, donc@supports selector(::-webkit-scrollbar)retourne désormaisfalse. Les sites utilisant couramment cela comme un signal que::-webkit-scrollbar-thumbpeut être mis en forme, ce que Firefox n'implémente pas, donc prétendre la prise en charge conduit à un style pire que de signaler l'absence de support. Utilisez plutôtscrollbar-widthetscrollbar-color. (bogue Firefox 2062782 (angl.)).
JavaScript
Promise.try()résout désormais la valeur retournée par sa fonction de rappel en utilisantPromiseResolve, donc une promesse retournée par la fonction de rappel est transmise telle quelle plutôt que d'être enveloppée dans une nouvelle promesse.Promise.try(() => p)est désormais la même promesse queplorsquepest une promesse native. Cela suit un changement normatif de la spécification. (bogue Firefox 2062293 (angl.)).- Les déclarations
usingne peuvent plus être réaffectées, conformément à la sémantique de type const requise par la spécification. Auparavant, une telle liaison pouvait être modifiée silencieusement. (bogue Firefox 2040286 (angl.)).
Sécurité
- Les groupes Diffie-Hellman à champ fini
ffdhe2048etffdhe3072ne sont plus proposés par défaut dans les négociations TLS. Les serveurs qui ne prennent en charge que ces groupes échouent à négocier une connexion ; presque tous les serveurs prennent en charge l'échange de clés ECDHE à la place. (bogue Firefox 1992340 (angl.)).
APIs
SubtleCrypto.deriveBits()lèse désormais uneTypeErrorsi le paramètrelengthpassé estNaN,Infinity, négatif ou supérieur à 232−1. Auparavant, ces valeurs étaient soit acceptées, soit la promesse retournée était rejetée avec uneOperationError. (bogue Firefox 2065212 (angl.)).Scheduler.yield()hérite désormais de la priorité et du signal d'abandon de la tâche englobante lors d'unawaitqui se résout de manière synchrone, comme une promesse déjà complétée, une valeur non promesse ou un rappelthen()sur une promesse acquittée. Auparavant, la continuation perdait l'état hérité dans ces cas et revenait silencieusement à la priorité par défautuser-visible.
DOM
Range.deleteContents()etRange.extractContents()fonctionnent désormais sur l'arbre DOM plutôt que sur l'arbre plat. En conséquence, une plage qui s'étend sur une racine d'ombre supprime et extrait désormais les nœuds requis par la spécification, y compris lorsque la plage commence ou se termine à l'intérieur d'un arbre d'ombre. Auparavant, une telle plage pouvait supprimer du contenu à l'intérieur de l'arbre d'ombre tout en laissant en place les enfants non assignés de l'hôte, etRange.extractContents()pouvait lever une exception au lieu de retourner un fragment. La même correction s'applique àSelection.deleteFromDocument(). (bogue Firefox 2053997 (angl.)).
Média, WebRTC et Web Audio
- Le membre
alwaysNegotiateDataChannelsde l'objet de configuration passé au constructeurRTCPeerConnection()est désormais pris en charge. Lorsqu'il est défini surtrue, le SDP produit par la connexion inclut toujours une ligne m de canal de données, de sorte queRTCPeerConnection.createDataChannel()peut être appelé ultérieurement sans nécessiter un nouveau cycle de négociation. Le membre a pour valeur par défautfalse, est retourné parRTCPeerConnection.getConfiguration()et ne peut pas être modifié parRTCPeerConnection.setConfiguration(). (bogue Firefox 2062561 (angl.)).
Conformité WebDriver (WebDriver BiDi, Marionette)
Général
- Marionette et RemoteAgent utilisent désormais tous deux un code de sortie personnalisé (69) lorsque leur serveur ne parvient pas à démarrer. (bogue Firefox 2040974 (angl.)).
- Amélioration du minutage des évènements intermédiaires pour les actions d'une durée supérieure à 0, afin de se rapprocher d'un intervalle de 16ms et d'éviter d'influer sur la durée globale même si le processus de contenu est surchargé. (bogue Firefox 2054442 (angl.)).
WebDriver BiDi
browsingContext.startScreencastutilise désormais un dossier de téléchargement valide et ne doit plus générer d'erreur si le dossier de téléchargement par défaut (DfltDwnld) n'est pas disponible. (bogue Firefox 2066782 (angl.)).- Correction du module spécifique à Mozilla
moz:debuggingpour gérer correctement les pauses imbriquées. (bogue Firefox 2060460 (angl.)).
Marionette
- La commande
WebDriver:GetElementTagNamea été mise à jour pour correspondre aux derniers changements de spécification (angl.) et retourne désormais le nom qualifié complet de l'élément DOM. Cette commande retournait auparavant toujours la valeur en minuscules. En pratique, ce changement est rétrocompatible pour les éléments HTML, mais il constitue un changement non rétrocompatible pour les éléments ayant un nom qualifié sensible à la casse, comme les éléments SVG. (bogue Firefox 2026697 (angl.)).
Changements pour les développeur·euse·s d'extensions
- La clé de manifeste
themeajoute la propriétébackgrounds_area. Cette propriété permet à un thème de définir où ses images et dégradés d'arrière-plan sont dessinés. La définir sur"window"les dessine sur toute la fenêtre du navigateur, tandis que"top_toolbars"les limite aux barres d'outils horizontales en haut de la fenêtre. Lorsquebackgrounds_areaest omis ou défini sur"auto", Firefox choisit la zone en fonction deproperties.additional_backgrounds_alignment. (bogue Firefox 2059526 (angl.))
Fonctionnalités web expérimentales
Ces fonctionnalités sont disponibles dans Firefox 156 mais sont désactivées par défaut.
Pour les tester, recherchez la préférence appropriée dans la page about:config et définissez-la sur true.
Vous pouvez en trouver d'autres sur la page Fonctionnalités expérimentales.
-
Registres d'éléments personnalisés à portée limitée (Nightly) :
dom.scoped-custom-element-registries.enabledLes registres d'éléments personnalisés à portée limitée sont désormais pris en charge, de sorte qu'une racine d'ombre peut définir des éléments personnalisés qui ne sont pas en conflit avec ceux définis dans le registre global. Cette version active la fonctionnalité par défaut dans les versions Nightly. (bogue Firefox 2064333 (angl.)).
-
Requêtes de support de
named-feature():layout.css.supports.at-rule.enabledLa fonction
named-feature()dans la règle conditionnelle@supportspermet de tester si le navigateur prend en charge une fonctionnalité qui n'a pas d'autre syntaxe détectable, par exemple@supports named-feature(anchor-position-follows-transforms). (bogue Firefox 2042977 (angl.) et bogue Firefox 2055354 (angl.)). -
L'API Container Timing :
dom.enable_container_timingL'API Container Timing signale quand le contenu d'un élément conteneur est peint, ce qui vous permet de mesurer le temps de rendu d'une région de la page plutôt que de l'ensemble du viewport. (bogue Firefox 1940240 (angl.)).
-
Éléments MathML
<a>:mathml.a.element.enabledL'élément MathML
<a>crée un lien hypertexte à partir du contenu MathML, exposant l'interfaceMathMLAnchorElementavec les mêmes propriétés de composant d'URL que les éléments HTML<a>. Cette version ajoute la prise en charge des attributs IDLreletrelList. (bogue Firefox 2063819 (angl.)).