Firefox 148 note de version pour les développeurs
Cet article présente les informations concernant les changements de Firefox 148 qui concernent les développeur·euse·s. Firefox 148 est sorti le 24 février 2026 (angl.).
Changements pour les développeur·euse·s web
>HTML
- Le document initial
about:blankse charge désormais de manière synchrone. La première navigation d'un contexte de navigation peut aboutir àabout:blank(par exemple, lorsque l'URL initiale est vide ou explicitement définie surabout:blank). Dans ces cas, Firefox ne remplace plus le document vide initial par un second document chargé de manière asynchrone, et déclenche à la place l'évènementloadde manière synchrone sur le document initial. (bogue Firefox 543435 (angl.)).
CSS
-
La propriété
position-areadans le positionnement par ancrage CSS maintient désormais correctement l'élément ancré à l'intérieur de la zone d'affichage. (bogue Firefox 2008537 (angl.)). -
La propriété
position-try-orderdans le positionnement par ancrage CSS est désormais prise en charge et permet de changer l'ordre dans lequel les options de repli de position sont essayées en fonction de l'espace disponible. Cela affecte également la propriété abrégéeposition-try. (bogue Firefox 1989059 (angl.)). -
Les propriétés CSS
overflow,overflow-xetoverflow-ypeuvent désormais être utilisées sur les éléments remplacés comme les images, de la même manière qu'elles sont utilisées avec d'autres éléments. Auparavant, les éléments remplacés étaient toujours rognés à leur conteneur englobant. (bogue Firefox 1999100 (angl.)). -
La fonction CSS
shape()est désormais disponible par défaut.shape()est un type de donnée<basic-shape>qui permet de définir une forme dans les propriétésclip-pathetoffset-pathen utilisant une ou plusieurs « commandes de forme ». Ces commandes sont très similaires aux commandes de tracé SVG. La fonctionshape()est similaire à certains égards à la fonctionpath(), mais contrairement àpath(), qui utilise la syntaxe de chemin SVG,shape()utilise la syntaxe CSS standard. Cela permet d'utiliser des unités CSS et des fonctions mathématiques CSS, ce qui facilite la création et la modification de formes. (bogue Firefox 1982941 (angl.)).
JavaScript
-
Les méthodes statiques
Iterator.zip()etIterator.zipKeyed()sont désormais prises en charge. Elles « compressent » plusieurs itérateurs d'entrée ensemble, retournant un nouvel itérateur qui produit le groupe d'éléments d'entrée à chaque étape d'itération. Elles sont utiles lorsque vous devez combiner des données provenant de plusieurs itérateurs d'entrée qui sont alignés positionnellement (la première valeur produite par le premier itérateur correspond à la première valeur produite par les autres itérateurs, et ainsi de suite). (bogue Firefox 2003333 (angl.)). -
La proposition TC39 Legacy RegExp features in JavaScript (angl.) a été implémentée. Cela met à jour
RegExp.prototype.compile()de sorte qu'uneTypeErrorest levée si elle est appelée sur une sous-classe deRegExp, ou si la méthode est appelée sur unRegExpqui a été défini dans un autre domaine. Les propriétés statiques deRegExp, telles queRegExp.$1—RegExp.$9etRegExp.input(et son aliasRegExp.$_), sont normalisées pour être configurables et non énumérables. Cela signifie en particulier qu'elles peuvent être supprimées de l'objetRegExp. (bogue Firefox 1306461 (angl.)).
API
-
L'API HTML Sanitizer est désormais prise en charge, ainsi que les méthodes associées comme
setHTML(). Cela permet d'assainir le HTML avant de l'insérer dans le DOM, vous donnant un contrôle total sur le contenu résultant et réduisant le risque d'attaques XSS. (bogue Firefox 1650370 (angl.)). -
L'API Trusted Types est désormais prise en charge. Elle fournit des mécanismes pour garantir que les propriétés et fonctions qui peuvent potentiellement être utilisées comme vecteurs d'attaques XSS ne peuvent être appelées qu'avec des données ayant été passées par une fonction de transformation. Les mécanismes permettent d'auditer les utilisations qui ne sont pas sûres du code. Ils n'imposent pas la manière dont les données sont transformées, mais peuvent, par exemple, être utilisés pour assainir des éléments HTML qui ne sont pas sûrs provenant de chaînes de caractères fournies par l'utilisateur·ice. (bogue Firefox 1994690 (angl.)).
-
La propriété
Location.ancestorOriginsest désormais prise en charge, ce qui permet de déterminer si un document est intégré dans un<iframe>et, le cas échéant, par quel(s) site(s). (bogue Firefox 1085214 (angl.)). -
Les propriétés
movementXetmovementYsur l'évènementpointerrawupdatesont désormais renseignées lorsque le pointeur est déplacé — auparavant, elles étaient définies à zéro. (bogue Firefox 1987671 (angl.)). -
La méthode
NavigationPrecommitController.addHandler()de l'API Navigation est désormais prise en charge. Elle peut être utilisée pour enregistrer dynamiquement un gestionnaire de navigation post-validation à l'intérieur d'un gestionnaire de pré-validation, ce qui est utile lorsque les actions de la navigation validée dépendent des données récupérées lors de la phase de pré-validation. (bogue Firefox 2009004 (angl.)).
DOM
- Les commandes « coller » peuvent désormais être utilisées avec
Document.execCommand()dans le contenu web (en plus des extensions web). Cela est implémenté en utilisant l'API Clipboard et partage les mêmes considérations de sécurité, telles que l'exigence d'une activation transitoire et la reconnaissance de l'utilisateur·ice lors du collage de contenu inter-origine. (bogue Firefox 1998195 (angl.)).
Conformité WebDriver (WebDriver BiDi, Marionette)
Général
- Correction d'une condition de concurrence lors de l'initialisation des fonctionnalités de navigateur requises lors de l'ouverture d'une nouvelle fenêtre, empêchant des problèmes lors d'une navigation immédiate vers une autre URL (bogue Firefox 1891028 (angl.)).
- Correction d'un problème d'interopérabilité entre Marionette et WebDriver BiDi où l'identifiant
clientWindowde BiDi était incorrectement utilisé comme identifiant de fenêtre dans Marionette (bogue Firefox 2002949 (angl.)).
WebDriver BiDi
- Ajout de la prise en charge initiale de l'interaction avec le contexte chrome du navigateur (la fenêtre Firefox elle-même). La commande
browsingContext.getTreeaccepte désormais le paramètre spécifique au fournisseurmoz:scopeet retourne des contextes chrome lorsque celui-ci est défini surchromeet que Firefox a été lancé avec l'argument--remote-allow-system-access. Ces contextes peuvent être utilisés avecscript.evaluateetscript.callFunctionpour exécuter du JavaScript privilégié avec accès aux API Gecko. Les autres commandes ne prennent pas encore en charge les contextes chrome, mais la prise en charge sera ajoutée progressivement selon les besoins (bogue Firefox 1944568 (angl.), bogue Firefox 1944570 (angl.), et bogue Firefox 1851788 (angl.)). - Mise à jour des commandes
emulation.setGeolocationOverrideetemulation.setScreenOrientationOverridepour implémenter le nouveau comportement de réinitialisation : les contextes ne sont réinitialisés que lorsque le paramètrecontextsest fourni, et les contextes utilisateur uniquement lorsque le paramètreuserContextsest défini (bogue Firefox 1998732 (angl.) et bogue Firefox 1998734 (angl.)). - Correction d'une condition de concurrence dans
browsingContext.createoù l'ouverture d'un nouvel onglet au premier plan pouvait retourner avant que le document ne devienne visible (bogue Firefox 2003857 (angl.)). - Correction d'un problème survenant lorsqu'une navigation redirigeait vers une page d'erreur (bogue Firefox 2013822 (angl.)).
- Correction d'un problème dans
network.getDataqui provoquait uneRangeErrorlors du décodage de corps de réponse fragmentés en raison d'une discordance de taille (bogue Firefox 2004973 (angl.)). - Correction d'un problème où les évènements
browsingContext.userPromptOpenedetbrowsingContext.userPromptClosedrapportaient incorrectement l'identifiant du contexte de niveau supérieur au lieu de l'identifiant du contexte de l'iframe (bogue Firefox 1964905 (angl.)). - Amélioration des performances des commandes WebDriver BiDi d'environ 100 ms lorsque le contexte sélectionné n'est plus disponible pendant l'exécution de la commande (bogue Firefox 1934326 (angl.)).
Marionette
- Ajout de la commande
Reporting:GenerateTestReportpour générer un rapport de test via l'API Reporting (angl.) (bogue Firefox 1909662 (angl.)).
Fonctionnalités web expérimentales
Ces fonctionnalités sont livrées dans Firefox 148 mais sont désactivées par défaut.
Pour les tester, recherchez la préférence appropriée sur la page about:config et définissez-la sur true.
Vous pouvez trouver d'autres fonctionnalités de ce type sur la page Fonctionnalités expérimentales.
-
L'API Document Picture-in-Picture (Nightly) :
dom.documentpip.enabledL'API Document Picture-in-Picture permet d'ouvrir une fenêtre toujours au premier plan qui peut être remplie avec du contenu HTML arbitraire, comme une vidéo avec des contrôles personnalisés ou un ensemble de flux montrant les participant·e·s d'un appel de visioconférence. (bogue Firefox 1858562 (angl.)).