Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

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:blank se 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 sur about: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ènement load de manière synchrone sur le document initial. (bogue Firefox 543435 (angl.)).

CSS

JavaScript

  • Les méthodes statiques Iterator.zip() et Iterator.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'une TypeError est levée si elle est appelée sur une sous-classe de RegExp, ou si la méthode est appelée sur un RegExp qui a été défini dans un autre domaine. Les propriétés statiques de RegExp, telles que RegExp.$1RegExp.$9 et RegExp.input (et son alias RegExp.$_), sont normalisées pour être configurables et non énumérables. Cela signifie en particulier qu'elles peuvent être supprimées de l'objet RegExp. (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.ancestorOrigins est 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 movementX et movementY sur l'évènement pointerrawupdate sont 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

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 clientWindow de 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.getTree accepte désormais le paramètre spécifique au fournisseur moz:scope et retourne des contextes chrome lorsque celui-ci est défini sur chrome et que Firefox a été lancé avec l'argument --remote-allow-system-access. Ces contextes peuvent être utilisés avec script.evaluate et script.callFunction pour 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.setGeolocationOverride et emulation.setScreenOrientationOverride pour implémenter le nouveau comportement de réinitialisation : les contextes ne sont réinitialisés que lorsque le paramètre contexts est fourni, et les contextes utilisateur uniquement lorsque le paramètre userContexts est défini (bogue Firefox 1998732 (angl.) et bogue Firefox 1998734 (angl.)).
  • Correction d'une condition de concurrence dans browsingContext.create où 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.getData qui provoquait une RangeError lors 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.userPromptOpened et browsingContext.userPromptClosed rapportaient 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

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.enabled

    L'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.)).