Firefox 149 note de version pour les développeurs
Cet article présente les informations concernant les changements de Firefox 149 qui concernent les développeur·euse·s. Firefox 149 est sorti le 24 mars 2026 (angl.).
Changements pour les développeur·euse·s web
>HTML
- L'attribut universel
popoverprend désormais en charge la valeurhint. Les fenêtres contextuelles avec la valeurhintne fermeront pas les fenêtres contextuellesautolorsqu'elles sont affichées, mais fermeront les autres fenêtres contextuelles d'indice. (bogue Firefox 1867743 (angl.)).
MathML
- La propriété CSS
font-family: mathest désormais prise en charge et appliquée par défaut aux éléments<math>. Cela permet aux sites web d'utiliser une police mathématique appropriée et/ou MathML sans avoir à connaître les polices présentes sur le système d'exploitation sous-jacent. (bogue Firefox 2014703 (angl.)).
CSS
-
La propriété CSS
shape-outsideprend désormais en charge la fonctionxywh()comme valeur. Cela permet de définir une forme autour de laquelle le contenu en ligne peut s'enrouler, en utilisant les distances par rapport aux bords gauche (x) et supérieur (y) du bloc contenant, ainsi qu'une largeur (w) et une hauteur (h). (bogue Firefox 1983187 (angl.)). -
La propriété CSS
vertical-alignest désormais une propriété raccourcie pour les propriétésalignment-baseline,baseline-shiftetbaseline-source. (bogue Firefox 1830771 (angl.)). -
La partie
<container-query>de la règle@containerest désormais optionnelle. Cela permet de faire correspondre des conteneurs uniquement en fonction de leurs noms. (bogue Firefox 2016474 (angl.)).
JavaScript
Pas de changements notables.
APIs
-
Le paramètre
options.resizeQualityest désormais pris en charge parWindow.createImageBitmap()etWorkerGlobalScope.createImageBitmap(). De plus, les méthodes permettent désormais de définir à la fois les options de redimensionnement (options.resizeWidthouoptions.resizeHeight) et les paramètres matriciels de l'image (sx,sy,sw, etsh) en même temps — auparavant, définir les deux retournait la matrice source non mise à l'échelle. (bogue Firefox 2010125 (angl.)). -
L'API Reporting est désormais prise en charge pour signaler les violations de la politique de sécurité du contenu (CSP) et de l'en-tête
Integrity-Policy. Cela permet de signaler des objets de rapport qui sont des objetsCSPViolationReportet des objetsIntegrityViolationReportdans les pages en violation en utilisant unReportingObserver(les rapports peuvent être filtrés sur la propriététype:"csp-violation"ou"integrity-violation"). Une version sérialisée des objets de rapport peut également être envoyée à un serveur de rapport défini dans l'en-tête HTTP correspondant — les noms des points de terminaison et les URL correspondantes doivent d'abord être définis dans les en-têtes de réponse HTTPReporting-EndpointsouReport-To. (bogue Firefox 1976074 (angl.), bogue Firefox 2008916 (angl.)).
DOM
-
La méthode
HTMLSelectElement.showPicker()est désormais prise en charge pour une liste d'options définie dans un<datalist>. Cela permet de lancer programmatiquement le sélecteur du navigateur pour un<datalist>lorsqu'il est déclenché par une interaction utilisateur·ice (bogue Firefox 1998668 (angl.)). -
L'interface
CloseWatcherest désormais prise en charge. Cela permet aux développeur·euse·s de créer des composants pouvant être fermés à l'aide de mécanismes natifs de l'appareil, tels que la touche Esc sur Windows ou la touche Retour sur Android, de la même manière que les composants intégrés tels que les boîtes de dialogue et les fenêtres contextuelles. (bogue Firefox 1966073 (angl.)). -
Les méthodes DOM permettent désormais une plus grande variété de caractères pour les noms d'éléments et d'attributs. Auparavant, les méthodes DOM étaient beaucoup plus restrictives, mais elles permettent désormais le même ensemble de caractères que le parseur HTML. Les méthodes concernées sont :
createAttribute(),createAttributeNS(),createElement()etcreateElementNS()de l'interfaceDocument,toggleAttribute(),setAttribute(),setAttributeNS()de l'interfaceElement,createDocument()de l'interfaceDOMImplementation, etdefine()etwhenDefined()de l'interfacewhenDefined(). (bogue Firefox 1773312 (angl.)).
Média, WebRTC et Web Audio
-
La méthode
HTMLMediaElement.captureStream()est désormais prise en charge. Elle retourne un objet qui diffuse la capture en temps réel du contenu de l'élément. Le flux peut être utilisé, par exemple, comme source pour uneRTCPeerConnectionWebRTC. Auparavant,captureStream()n'était disponible que sous la forme de la méthode non standardmozCaptureStream(). (bogue Firefox 2017708 (angl.)). -
MediaElementAudioSourceNoderespecte désormais le volume de l'élément multimédia lors de la capture audio pour tous les types de sources (comme l'exige la spécification). Auparavant, le réglage du volume de l'élément n'affectait pas l'audio capturé pour les sourcesMediaStream. (bogue Firefox 2010427 (angl.)). -
La méthode
HTMLMediaElement.mozCaptureStream()capture désormais l'audio brut de la source sans appliquer le volume de l'élément multimédia, quel que soit le type de source que l'élément multimédia lit (comme l'exige la spécification). Avant ce changement, le volume de l'élément multimédia affectait le volume du flux capturé. (bogue Firefox 2010427 (angl.)).
Changements pour les développeur·euse·s d'extensions
-
Ajout du support initial pour la vue fractionnée. Ce support couvre :
- L'inclusion de l'ID de la vue fractionnée dans
tabs.query,tabs.onUpdatedettabs.Tab - La documentation du comportement lorsque
tabs.moveoutabs.removeincluent des onglets dans une vue fractionnée. (bogue Firefox 1993037 (angl.))
- L'inclusion de l'ID de la vue fractionnée dans
-
Ajout du support pour
tabIden tant que paramètre de niveau supérieur dansaction.isEnabledetbrowserAction.isEnabled. Ce changement assure la compatibilité avec l'implémentation Chrome deaction.isEnabled. (bogue Firefox 2013477 (angl.)) -
Un geste de l'utilisateur·ice n'est plus requis pour
action.openPopupetbrowserAction.openPopuppour ouvrir une fenêtre affichée par dessus le contenu (popup en anglais). Cette fonctionnalité était disponible derrière la préférenceextensions.openPopupWithoutUserGesture.enableddepuis Firefox 108. Ce changement aligne le comportement de Firefox avec Chrome et Safari. (bogue Firefox 1799344 (angl.)) -
Si
windowIdest passé dansaction.openPopupoubrowserAction.openPopup, la fenêtre doit être sélectionnée (active) pour que l'élément affiché par dessus le contenu s'ouvre. Pour ouvrir un élément par dessus le contenu dans une fenêtre qui n'est pas sélectionnée,windows.update(windowId, { focused: true })doit être appelé en premier. Ce changement aligne le comportement de Firefox avec Chrome. (bogue Firefox 2011516 (angl.)) -
La capacité des extensions à exécuter dynamiquement du code dans leurs documents
moz-extension:avectabs.executeScript,tabs.insertCSS,tabs.removeCSS,scripting.executeScript,scripting.insertCSS, etscripting.removeCSSest désormais obsolète. (bogue Firefox 2011234 (angl.)) La fonctionnalité n'est plus disponible dans Firefox Nightly, et les versions bêta et release de Firefox affichent un avertissement dans la console de l'onglet. Cette restriction s'appliquera à toutes les versions de Firefox 152 et ultérieures. (bogue Firefox 2015559 (angl.)) En alternative, une extension peut exécuter du code dans ses documents de manière dynamique en enregistrant un écouteurruntime.onMessagedans le script du document, puis en envoyant un message pour déclencher l'exécution du code requis. -
Le filtre CSS implicite appliqué aux icônes SVG des actions de page sur les thèmes sombres est désactivé dans les versions Nightly (bogue Firefox 2001318 (angl.)) et sera désactivé dans les autres éditions de Firefox à partir de la version 152 (bogue Firefox 2016509 (angl.)). Vous pouvez tester les icônes SVG des actions de page avec le filtre CSS désactivé dans d'autres éditions de Firefox en créant une préférence booléenne
about:configappeléeextensions.webextensions.pageActionIconDarkModeFilter.enabledet en la définissant surfalse.
Conformité WebDriver (WebDriver BiDi, Marionette)
Général
- Mise à jour des implémentations de capture d'écran pour les protocoles WebDriver BiDi et WebDriver classique afin de retourner correctement une erreur lorsque la zone de capture d'écran demandée dépasse les dimensions maximales prises en charge, au lieu de la découper silencieusement. (bogue Firefox 1994148 (angl.)).
- Mise à jour de l'implémentation des Actions pour les protocoles WebDriver BiDi et WebDriver classique afin de permettre à une action
scrollde type source d'entréewheelde faire défiler plus que les dimensions de la fenêtre visuelle. (bogue Firefox 1962355 (angl.)).
WebDriver BiDi
- Ajout du support pour la gestion automatique des invites utilisateur·ice, qui peut être configurée par les capacités avec la commande
session.new. (bogue Firefox 1905086 (angl.)). - Ajout de la commande
browser.setDownloadBehavior, qui permet aux client·e·s d'autoriser ou d'interdire les téléchargements et de définir un dossier de téléchargement personnalisé. Ce comportement peut être configuré par session ou par contextes utilisateur. (bogue Firefox 1989022 (angl.)). - Ajout des évènements
script.realmCreatedetscript.realmDestroyedpour les contextes de travail (pour les travailleurs dédiés, partagés et de service). (bogue Firefox 1936770 (angl.)). - Correction d'un problème où les évènements
browsingContext.userPromptOpenedetbrowsingContext.userPromptClosedrapportaient incorrectement l'ID du contexte de niveau supérieur au lieu de l'ID du contexte du cadre intégré sur Android. (bogue Firefox 2007385 (angl.)). - Correction de la sérialisation des nœuds DOM pour ne plus exposer les racines d'ombre (shadow root en anglais) spécifiques à l'agent utilisateur. (bogue Firefox 2016673 (angl.)).
- Mise à jour de la logique d'application des différents paramètres aux nouveaux contextes de navigation pour s'assurer que, dans le cas de la création d'un contexte de navigation avec la commande
window.open, les émulations, les remplacements de la fenêtre d'affichage et les scripts de préchargement s'appliquent avant que la commande ne retourne. (bogue Firefox 1985997 (angl.), bogue Firefox 2005546 (angl.) et bogue Firefox 2005558 (angl.)).
Marionette
- Amélioration de plusieurs commandes WebDriver classiques pour gérer les délais d'attente
implicitetpageLoadconformément au délai d'attente du script, permettant aux valeursnullde désactiver les délais d'attente. (bogue Firefox 2008345).
Fonctionnalités web expérimentales
Ces fonctionnalités sont livrées dans Firefox 149 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.
-
Valeurs
<attr-type>dans la fonction CSSattr():layout.css.attr.enabledLa fonction CSS
attr()prend désormais en charge les valeurs<attr-type>. Cela vous permet de définir comment une valeur d'attribut est analysée en une valeur CSS et de prendre ces valeurs directement à partir des attributsdata-*. (bogue Firefox 1986631 (angl.), bogue Firefox 1998245 (angl.)). -
color-mix()accepte plusieurs arguments de couleur :layout.css.color-mix-multi-color.enabledLa fonction CSS
color-mixprend désormais en charge plusieurs valeurs<color>, et pas seulement deux. Cela vous permet de mélanger plusieurs couleurs et de définir les pourcentages de chacune. (bogue Firefox 2007772 (angl.)). -
Pseudo-classes basées sur les médias:
dom.media.pseudo-classes.enabledLes pseudo-classes basées sur les médias
:buffering,:muted,:paused,:playing,:seeking,:stalled, et:volume-lockedvous permettent de mettre en forme les éléments HTML<audio>et<video>en fonction de leur état actuel, comme en lecture ou en pause. (bogue Firefox 1707584 (angl.), bogue Firefox 2014512 (angl.)). -
Les attributs
alphaetcolorspacedes éléments de saisie de typecolor(Nightly seulement) :dom.forms.html_color_picker.enabledL'élément HTML
<input type="color">prend en charge les attributsalphaetcolorspace. (bogue Firefox 1919718 (angl.)). -
Requêtes
@container style()(Nightly) :layout.css.style-queries.enabledLa règle CSS
@containerprend en charge les requêtesstyle(). Cela vous permet de vérifier si un conteneur possède une déclaration CSS valide, une propriété CSS ou une propriété personnalisée, et d'appliquer des styles à ses enfants en conséquence. (bogue Firefox 2014404 (angl.)). -
CSS Typed Object Model Level 1 :
layout.css.typed-om.enabledLa spécification CSS Typed Object Model Level 1 est en cours d'implémentation. Dans cette version, la prise en charge de la méthode
to()de l'interfaceCSSNumericValuea été ajoutée, permettant la conversion d'une valeur numérique CSS d'une unité à une autre. (bogue Firefox 1278697 (angl.)). -
Prise en charge de l'image JPEG XL : décodeur basé sur Rust :
image.jxl.enabledL'ancien décodeur d'image JPEG XL (angl.) en C++ a été remplacé par une nouvelle implémentation basée sur Rust utilisant la bibliothèque
jxl-rs. (bogue Firefox 1986393 (angl.)).