Firefox 158 note de version pour les développeurs
Cet article présente les informations concernant les changements de Firefox 158 qui concernent les développeur·euse·s. Firefox 158 est sorti le 13 octobre 2026 (angl.).
Changements pour les développeur·euse·s web
>Accessibilité
- L'attribut
aria-busyest désormais pris en charge dans Firefox pour Android (la prise en charge sur ordinateur de bureau est disponible depuis longtemps). Cet état ARIA indique si un élément est en cours de modification. Il permet aux technologies d'assistance d'attendre que les modifications du contenu soient terminées avant d'informer les utilisateur·ice·s de la mise à jour. Par exemple, un lecteur d'écran peut attendre qu'une région dynamique ait fini de se mettre à jour avant d'annoncer les changements. (bogue Firefox 908042 (angl.)).
HTML
Pas de changements notables.
CSS
- L'arithmétique typée CSS est désormais prise en charge, ce qui permet d'utiliser des fonctions telles que
calc()pour diviser deux valeurs du même type de données, même si elles utilisent des unités différentes. Les quotients sans unité résultants peuvent ensuite être convertis en d'autres types de données, créant des relations utiles entre différentes valeurs sur une page. (bogue Firefox 2067411 (angl.)).
JavaScript
Pas de changements notables.
HTTP
- L'en-tête HTTP
Accept, par défaut pour les requêtes d'images, inclut désormaisimage/jxl, suite à la prise en charge du format d'image JPEG XL. La nouvelle valeur estimage/avif,image/jxl,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5(voir Liste des valeurs Accept par défaut). (bogue Firefox 2065096 (angl.)).
APIs
- La méthode
WebTransport.getStats()est désormais prise en charge. Cette méthode retourne des statistiques sur la connexion sous-jacente du transport et ses datagrammes. (bogue Firefox 2007202 (angl.)). - La propriété statique
WebTransport.supportsReliableOnlyest désormais prise en charge. Cette propriété indique si le navigateur prend en charge les sessions WebTransport sur des protocoles de transport exclusivement fiables, tels que HTTP/2. Firefox ne prend pas encore en charge WebTransport sur HTTP/2, donc cette propriété retourne toujoursfalse. (bogue Firefox 2007783 (angl.)). - L'option
navigatedu constructeurNotification()et de la méthodeServiceWorkerRegistration.showNotification()est désormais prise en charge. Cette option permet de définir l'URL vers laquelle l'utilisateur·ice est redirigé·e après avoir cliqué sur la notification système générée. Une fois la notification créée, vous pouvez récupérer l'URL à partir de la propriétéNotification.navigate. (bogue Firefox 2069920 (angl.)). - La fonctionnalité WebGPU
float32-blendableest désormais prise en charge (voirGPUSupportedFeatures). Cela permet le mélange deGPUTextureutilisant leformatr32float,rg32floatourgba32floatformat. (bogue Firefox 1931630 (angl.)). - La fonctionnalité WebGPU
clip-distancesest désormais prise en charge sous macOS (voirGPUSupportedFeatures). Cela permet aux shaders de sommets de générer desclip_distances(angl.) en WGSL, qui suppriment les parties d'un triangle ou d'une ligne situées d'un côté d'un plan personnalisé, tandis que le reste est toujours dessiné. Cette fonctionnalité est utile pour des effets tels que les reflets dans l'eau ou les vues en coupe dans les applications de CAO. (bogue Firefox 1931629 (angl.)). - L'extension WebGL
EXT_polygon_offset_clampest désormais disponible sur les appareils compatibles. Sa méthodepolygonOffsetClampEXT()fonctionne commepolygonOffset(), avec un argument supplémentaire qui limite le décalage de profondeur. Cela permet d'éviter l'apparition de trous dans les ombres lors de l'utilisation du rendu d'ombres. (bogue Firefox 1854003 (angl.)). - La propriété
PerformanceResourceTiming.deliveryTypeest désormais prise en charge, elle indique comment une ressource a été fournie. La version initiale prend en charge la valeurcache, qui indique que la ressource provient du cache. (bogue Firefox 1914120 (angl.), bogue Firefox 2071913 (angl.)).
DOM
- La méthode
SVGGraphicsElement.getBBox()respecte désormais les propriétésfilletstrokede son argumentoptionslorsqu'elle est appelée sur les éléments SVG<tspan>et<textPath>. Cela vous permet d'obtenir une boîte englobante qui inclut le trait d'un segment de texte, comme vous pouvez déjà le faire pour un élément SVG<text>entier. (bogue Firefox 2072680 (angl.)). - L'option
javascriptURLsde la configuration de l'API HTML Sanitizer et la méthodeSanitizer.setJavascriptURLs()sont désormais prises en charge. Elles définissent si un assainisseur supprime les attributs contenant des URLjavascript:, comme<a href="javascript:…">, lorsqu'il est utilisé avec une méthode non sécurisée commeElement.setHTMLUnsafe(). Les méthodes sécurisées, commeElement.setHTML(), les suppriment toujours. En conséquence, les méthodes non sécurisées suppriment désormais les URLjavascript:lorsqu'elles sont utilisées avec l'assainisseur par défaut, ou avec un assainisseur après l'appel deSanitizer.removeUnsafe(). (bogue Firefox 2068934 (angl.)).
Média, WebRTC et Web Audio
- Lors de l'envoi de vidéo H.264 ou AV1 avec WebRTC, Firefox réduit désormais la résolution et la fréquence d'images au besoin afin de respecter le niveau de codec négocié avec le pair distant, défini par le paramètre
profile-level-idpour H.264 etlevel-idxpour AV1. Par conséquent,MediaCapabilities.encodingInfo()indique désormais qu'une configurationwebrtcest prise en charge même si sa résolution et sa fréquence d'images dépassent le niveau de soncontentType. (bogue Firefox 2013936 (angl.)).
Conformité WebDriver (WebDriver BiDi, Marionette)
Général
- Ajout de la prise en charge de la définition des permissions
cameraetmicrophoneavec la commandepermissions.setPermissiondans WebDriver BiDi et la commandeWebDriver:SetPermissiondans Marionette. Cela permet aux tests d'autoriser ou de refuser l'accès aux appareils multimédias sans solliciter l'utilisateur·ice. (bogue Firefox 2070577 (angl.)). - Les tolérances de début et de déplacement du toucher passent à zéro en automatisation, afin que les actions tactiles fassent défiler la page exactement depuis la position où elles sont déclenchées, sans absorber les petits déplacements initiaux. (bogue Firefox 2055661 (angl.)).
WebDriver BiDi
- Ajout de la prise en charge de l'argument
imageSizeà la commandebrowsingContext.captureScreenshot, qui permet aux clients de définir la taille maximale de l'image de capture d'écran obtenue. (bogue Firefox 2069002 (angl.)). - Ajout de la prise en charge de l'argument
destinationFolderà la commandebrowsingContext.startScreencast, qui permet aux clients de choisir le dossier où le fichier vidéo enregistré est sauvegardé. (bogue Firefox 2072616 (angl.)).
Marionette
- Correction de la commande
WebDriver:TakeScreenshotafin qu'elle retourne une erreurunable to capture screenlorsque la largeur ou la hauteur de l'image capturée est égale à zéro. (bogue Firefox 1492357 (angl.)).
Autre
- La prise en charge du format d'image JPEG XL (
image/jxl) est désormais activée par défaut. JPEG XL est un format d'image matricielle libre de droits qui prend en charge la compression avec et sans perte, la transparence, l'animation et la HDR. Il peut aussi transcoder sans perte les images JPEG existantes. (bogue Firefox 2065096 (angl.)).
Changements pour les développeur·euse·s d'extensions
publicSuffix.isKnownSuffix()déclenche désormais une erreur lorsqu'il reçoit un nom d'hôte invalide, au lieu de retournerfalse. (bogue Firefox 2066620 (angl.))- Ajout de
runtime.getVersion()pour retourner la version de l'extension telle qu'elle est déclarée dans le manifeste. (bogue Firefox 1992418 (angl.))
Fonctionnalités web expérimentales
Ces fonctionnalités sont disponibles dans Firefox 158 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.
-
La fonction CSS
random():layout.css.random.enabledLa fonction CSS
random()génère une valeur aléatoire dans une plage définie, avec la possibilité de limiter les valeurs disponibles à des intervalles de taille déterminée entre ces limites. Un paramètre facultatif<random-key>détermine quelles fonctionsrandom()partagent une valeur aléatoire, par exemple entre plusieurs éléments ou propriétés. (bogue Firefox 2071165 (angl.)). -
Les propriétés
corner-shape:layout.css.corner-shape.enabledLa propriété raccourcie
corner-shapeet ses propriétés longues constitutives sont désormais prises en charge dans Nightly. Elles permettent de personnaliser la forme des coins à l'aide d'une des clés et valeurs de<corner-shape-value>ou de la fonctionsuperellipse(). (bogue Firefox 2070927 (angl.)). -
Évaluation différée des modules (Nightly) :
javascript.options.experimental.defer_import_evalLa déclaration
import deferet la syntaxeimport.defer()sont désormais disponibles dans Nightly derrière une préférence. Elles chargent un module et ses dépendances en amont, mais n'exécutent le code du module que lorsqu'un de ses exports est consulté pour la première fois. Les modules qui ne sont pas nécessaires immédiatement ne ralentissent donc pas le démarrage. Les modules qui utilisentawaitau niveau supérieur s'exécutent tout de même immédiatement. (bogue Firefox 1952263 (angl.)). -
La reconnaissance vocale sur l'appareil :
media.webspeech.recognition.enableLa reconnaissance vocale sur l'appareil est désormais prise en charge dans Nightly, uniquement sur bureau. Cela vous permet d'effectuer la reconnaissance vocale par le biais de l'API Web Speech directement dans le navigateur, plutôt que de dépendre d'un service cloud. (bogue Firefox 2069803 (angl.)).
-
Règles de spéculation : anticipation modérée :
dom.speculation_rules.enabledL'API Speculation Rules fournit un mécanisme permettant d'améliorer les performances des navigations futures en définissant quelles ressources doivent être préchargées ou pré-rendues en fonction de facteurs tels que le comportement de l'utilisateur·ice vis-à-vis des liens. Firefox 158 Nightly ajoute la prise en charge de la propension
moderate: un préchargement correspondant démarre une fois que l'utilisateur·ice survole un lien pendant un court instant (200 millisecondes par défaut). (bogue Firefox 2061013 (angl.)). -
Les corps de requête en flux :
dom.fetch.streaming_uploadActivée uniquement dans Nightly, cette fonctionnalité permet de définir un
ReadableStreamcomme corps de requête (par exemple, avec le constructeurRequest()ou la méthodeWindow.fetch()). Vous pouvez ainsi envoyer les données progressivement au lieu d'attendre que le corps entier soit disponible. (bogue Firefox 1594633 (angl.)). -
CSSNumericValue.equals():layout.css.typed-om.enabledLa méthode
CSSNumericValue.equals()de l'API CSS Typed Object Model est désormais prise en charge dans Nightly. Elle retournetruesi chaque valeur qui lui est passée est identique à la valeur numérique sur laquelle elle est appelée, etfalsesinon. Les valeurs sont comparées telles qu'elles sont écrites, sans conversion d'unités. Par exemple,1inet2.54cmsont différentes, tout commecalc(1px + 2px)etcalc(2px + 1px). (bogue Firefox 2074503 (angl.)).