Firefox 153 note de version pour les développeurs
Cet article présente les informations concernant les changements de Firefox 153 qui concernent les développeur·euse·s. Firefox 153 est sorti le 21 juillet 2026 (angl.).
Changements pour les développeur·euse·s web
>Outils de développement
- Les outils de développement fournissent désormais le niveau d'un élément de titre dans le surligneur d'accessibilité et l'arborescence d'accessibilité (auparavant, seul le fait qu'il s'agissait d'un titre était affiché). Les informations se trouvent dans le panneau Inspecteur d'accessibilité. (bogue Firefox 1588784 (angl.) et bogue Firefox 2044904 (angl.)).
HTML
- Les règles d'analyse HTML pour les éléments
<select>ont été mises à jour pour permettre à tous les éléments imbriqués d'être analysés dans le DOM plutôt que seulement<option>,<optgroup>et<hr>. Cela permet un support futur possible des éléments de sélecteurs personnalisables. (bogue Firefox 2019977 (angl.)). - L'attribut
muteda maintenant été mis à jour pour les éléments<audio>et<video>afin de refléter lorsqu'il est ajouté ou supprimé du DOM. Cet attribut correspond désormais également à l'état de la pseudo-classe CSS:muted. (bogue Firefox 2037015 (angl.)).
CSS
- Le sélecteur de pseudo-élément
::-webkit-scrollbarest désormais reconnu, de sorte que la vérification@supports selector(::-webkit-scrollbar)retournetrue. Notez que cela signale le sélecteur comme pris en charge même si le style des barres de défilement par le biais de::-webkit-scrollbarn'est pas réellement implémenté. Cela a été ajouté pour corriger un problème où les barres de défilement des zones défilables imbriquées pouvaient se superposer. Par exemple, lorsqu'une barre de défilement est définie surdisplay: noneouwidth: 0, laissant une partie du contenu inaccessible. (bogue Firefox 2038877 (angl.)).
JavaScript
- La proposition TC39 d'information Intl.Locale (angl.) est désormais prise en charge.
Cela inclut toutes les méthodes d'instance sur
Intl.Localequi sont préfixées par « get » —getCalendars(),getCollations(),getHourCycles(),getNumberingSystems(),getTextInfo(),getTimeZones()etgetWeekInfo(). (bogue Firefox 2037069 (angl.)). - La propriété de données statique
Error.stackTraceLimitest prise en charge pour définir ou obtenir le nombre maximal de cadres de pile capturés dans une trace de pile d'erreur. La définition d'une valeur inférieure à la valeur par défaut peut améliorer les performances. (bogue Firefox 2037856 (angl.)). - Les modules de texte peuvent désormais être importés dans une chaîne de caractères à l'aide de
with { type: "text" }. Contrairement aux modules JavaScript ou CSS, le type de média de la réponse est ignoré, et le contenu est analysé en tant que texte même si le fichier contient des scripts ou un autre code exécutable. (bogue Firefox 2039881 (angl.)). - La syntaxe
import source(faisant partie de la proposition TC39 des importations de phase source (angl.)) est désormais prise en charge. Elle est similaire à la déclarationimportnormale, mais au lieu de charger et d'évaluer un module, elle produit un objet représentant le code source du module qui peut être évalué ultérieurement. Notez que cette fonctionnalité n'est pas encore utile pour les développeur·euse·s, car seule la syntaxe est actuellement prise en charge : la représentation source des modules WebAssembly est implémentée séparément et n'est pas encore disponible. (bogue Firefox 2043242 (angl.)).
APIs
- Les méthodes
IDBObjectStore.getAllRecords()etIDBIndex.getAllRecords()sont désormais prises en charge. - Elles récupèrent tous les enregistrements (ou un sous-ensemble défini d'enregistrements) d'un magasin d'objets et d'un index, respectivement. (bogue Firefox 1927945 (angl.)).
- L'API Picture-in-Picture est désormais prise en charge sur les plateformes de bureau.
Elle fournit un mécanisme pratique permettant aux sites Web de basculer l'affichage d'un élément
<video>entre une page et une fenêtre vidéo flottante toujours au premier plan, permettant aux utilisateur·ice·s de continuer à regarder tout en interagissant avec d'autres sites ou applications. (bogue Firefox 1463402 (angl.)).
DOM
- L'API Popover a désormais un comportement plus cohérent lorsque les fenêtres contextuelles
hintetautosont ouvertes et fermées. Cela suit la mise à jour de la spécification dans whatwg/html#12345 (angl.). (bogue Firefox 2029974 (angl.)).
Média, WebRTC et Web Audio
- La méthode
RTCDtlsTransport.getRemoteCertificates()récupère les certificats utilisés par le pair distant pour sécuriser la communication DTLS. Ceux-ci peuvent être utilisés pour l'authentification au niveau de l'application d'un pair distant. (bogue Firefox 1805446 (angl.)). - Les méthodes
decodingInfo()etencodingInfo()de l'interfaceMediaCapabilitiesacceptent désormais le type de configuration"webrtc". Cela permet à un site de vérifier si une configuration audio ou vidéo donnée peut être décodée ou encodée à l'aide de WebRTC, et si c'est fluide, économe en énergie ou les deux. La prise en charge du type non standardtransmission, qui était utilisé comme alias dewebrtc, est supprimée. (bogue Firefox 2037610 (angl.) et bogue Firefox 2032075 (angl.)). - Toutes les statistiques « transport » WebRTC obligatoires et certaines facultatives peuvent désormais être signalées dans un
RTCStatsReport. L'objet retourné est unRTCTransportStatsavec les propriétés suivantes :dtlsCipher,dtlsRole,dtlsState,iceLocalUsernameFragment,iceRole,iceState,id,selectedCandidatePairId,srtpCipher,timestamp,tlsVersionettype. De plus, la propriététransportIdest désormais disponible surRTCOutboundRtpStreamStats,RTCRemoteOutboundRtpStreamStats,RTCRemoteInboundRtpStreamStatsetRTCInboundRtpStreamStats. (bogue Firefox 1225723 (angl.) et bogue Firefox 2019389 (angl.)).
WebAssembly
- L'intégration de Promesse JavaScript (JS-PI) est désormais activée, permettant aux modules WebAssembly d'inter-opérer avec les API JavaScript asynchrones basées sur les promesses (
Promise). Cela permet au code WebAssembly de se suspendre en attendant qu'une promesse JavaScript soit résolue et de reprendre lorsque la promesse est réglée. VoirWebAssembly.Suspendingpour une explication et un exemple fonctionnel. (bogue Firefox 2044809 (angl.)).
Conformité WebDriver (WebDriver BiDi, Marionette)
Général
- Amélioration des commandes de manipulation de fenêtres dans Marionette et WebDriver BiDi pour permettre l'ajustement indépendant des propriétés géométriques individuelles de la fenêtre, telles que x, y, largeur et hauteur. (bogue Firefox 1941404 (angl.)).
- Correction d'un bogue où les commandes de clic et d'action du pointeur pouvaient échouer si le premier DOMRect de l'élément (par exemple, les éléments en ligne s'étendant sur plusieurs lignes) avait une taille nulle. (bogue Firefox 2038932 (angl.)).
- Restriction de la navigation vers les pages privilégiées (certaines pages
about:*,chrome://etresource://) lors de l'opération dans le contexte du contenu. (bogue Firefox 1579790 (angl.)).
WebDriver BiDi
- Extension de la commande
emulation.setLocaleOverridepour appliquer également une émulation de langue aux travailleurs dédiés et partagés. (bogue Firefox 2015655 (angl.)). - Extension de la commande
emulation.setTimezoneOverridepour appliquer également une émulation de fuseau horaire aux travailleurs dédiés et partagés. (bogue Firefox 2015657 (angl.)). - Mise à jour de la commande
browsingContext.createpour ne plus émettre les évènementsbrowsingContext.domContentLoadedetbrowsingContext.loadpour la page initialeabout:blanklors de la création de nouveaux contextes de navigation de premier niveau, et pour émettre désormais l'évènementbrowsingContext.contextCreatedà la fin du processus de création. (bogue Firefox 1930594 (angl.)). - Correction d'un bogue où les fonctions créées par la commande
script.addPreloadScriptpouvaient cesser de fonctionner après plusieurs navigations. (bogue Firefox 2046390 (angl.)).
Marionette
- Correction de la commande
Take Element Screenshotde WebDriver Classic pour recadrer les captures d'écran des éléments dépassant la zone d'affichage. (bogue Firefox 2013176 (angl.)). - Correction de la commande
Perform Actionspour attendre correctement la finalisation des actions internes, évitant ainsi d'éventuelles conditions de concurrence. (bogue Firefox 2031596 (angl.)).
Changements pour les développeur·euse·s d'extensions
- Les extensions nécessitent désormais l'autorisation explicite de l'utilisateur·ice pour accéder aux URL
file://. Auparavant, l'accès aux fichiers locaux était couvert par l'autorisation d'hôte « Accéder à vos données pour tous les sites web ». Ce changement introduit une option distincte « Accéder aux fichiers locaux sur votre ordinateur » dans les paramètres d'autorisations de l'extension (bureau uniquement), et l'accès aux fichiers est désactivé par défaut pour toutes les extensions, y compris celles existantes. La méthodeextension.isAllowedFileSchemeAccess()retourne désormais correctementtruesi l'utilisateur·ice a accordé l'accès au schéma de fichiers ; auparavant, Firefox retournait toujoursfalse. De plus, l'appel dedevtools.inspectedWindow.eval()sur les URLfile://nécessite désormais cette autorisation. (bogue Firefox 2034168 (angl.)) - Prise en charge de la méthode
userScripts.execute(), permettant aux extensions d'injecter des scripts utilisateur·ice à la demande dans un onglet ou un cadre. Contrairement àuserScripts.register(), cette méthode prend en charge l'injection ponctuelle de plusieurs sources de scripts exécutées dans un ordre défini. (bogue Firefox 1930776 (angl.)) - Prise en charge de l'API
publicSuffix, permettant aux extensions de déterminer le domaine enregistrable (eTLD+1) et le suffixe public d'un nom d'hôte à l'aide de la liste des suffixes publics (angl.) intégrée au navigateur. L'API fournit trois méthodes synchrones :publicSuffix.isKnownSuffix(),publicSuffix.getKnownSuffix()etpublicSuffix.getDomain(). (bogue Firefox 1315558 (angl.)) - Les scripts de contenu des extensions peuvent désormais lire et modifier les feuilles de style construites dans
document.adoptedStyleSheetsetShadowRoot.adoptedStyleSheets, sans.wrappedJSObject. (bogue Firefox 1751346 (angl.)) - Ajout de
documentIdà une gamme d'API WebExtension, y compris une nouvelle méthoderuntime.getDocumentId(), des évènements et méthodeswebNavigation, des évènementswebRequest, des cibles d'injection de scripts et des API de messagerie. Voir Travailler avec documentId pour la liste complète des évènements et méthodes pris en charge, ainsi que des conseils sur l'utilisation dedocumentId. (bogue Firefox 1891478 (angl.)) - Pour les identités contextuelles (conteneurs) :
- Ajout des méthodes
contextualIdentities.getSupportedColors()etcontextualIdentities.getSupportedIcons()pour récupérer les couleurs et icônes prises en charge, évitant ainsi la nécessité de coder en dur ces valeurs. (bogue Firefox 2044712 (angl.)) - Mise à jour des couleurs disponibles.
"turquoise"est renommé en"cyan","toolbar"est renommé en"gray"et"violet"est ajouté. Les anciens noms"turquoise"et"toolbar"sont acceptés pour la compatibilité descendante. Pour éviter de coder en dur les noms de couleurs, utilisezcontextualIdentities.getSupportedColors()pour récupérer les couleurs disponibles. (bogue Firefox 2044354 (angl.))
- Ajout des méthodes
Fonctionnalités web expérimentales
Ces fonctionnalités sont disponibles dans Firefox 153 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.
-
Prise en charge des images JPEG XL (Nightly) :
image.jxl.enabledLe décodeur d'images JPEG XL (angl.) basé sur Rust est désormais activé par défaut dans Nightly. (bogue Firefox 2040074 (angl.)).
-
Fonctions CSS de comptage d'arbres :
layout.css.tree-counting-functions.enabledLes fonctions
sibling-count()etsibling-index()sont désormais prises en charge. La fonctionsibling-count()retourne le nombre d'éléments voisins ainsi que l'élément lui-même. La fonctionsibling-index()retourne l'index de l'élément par rapport à ses voisins, en commençant à1et non à0. (bogue Firefox 2042063 (angl.)). -
Mise à jour des attributs des ressources externes :
layout.css.link-parameters.enabledLa propriété CSS
link-parameterset la fonction CSSparam()sont désormais prises en charge. Cela permet à l'utilisateur·ice de mettre à jour les attributs des ressources externes, telles que les SVG, dont les attributs sont définis avec la fonction CSSenv(). Cela signifie qu'une seule ressource externe peut être utilisée plutôt que de créer plusieurs variantes qui n'ont que des couleurs ou d'autres valeurs différentes. (bogue Firefox 2046153 (angl.)). -
Les formes de base CSS autorisent les mots-clés
farthest-corneretclosest-corner(Nightly) :layout.css.ellipse-corners.enabledLes mots-clés
farthest-corneretclosest-cornerpeuvent désormais être utilisés pour définir les valeurs des rayons des formes de base CSSellipse()etcircle(). (bogue Firefox 2037673 (angl.)).