Firefox 149 Versionshinweise für Entwickler
Dieser Artikel bietet Informationen zu den Änderungen in Firefox 149, die Entwickler betreffen. Firefox 149 wurde am 24. März 2026 veröffentlicht.
Änderungen für Webentwickler
>HTML
- Das globale Attribut
popoverunterstützt jetzt den Werthint. Popovers mit dem Werthintschließen keineautoPopovers, wenn sie angezeigt werden, schließen jedoch andere Hint-Popovers. (Firefox-Bug 1867743).
MathML
- Die CSS-Eigenschaft
font-family: mathwird jetzt unterstützt und standardmäßig auf<math>-Elemente angewendet. Dies gewährleistet, dass Websites eine geeignete Mathe-Schrift und/oder MathML verwenden können, ohne wissen zu müssen, welche Schriften auf dem zugrunde liegenden Betriebssystem vorhanden sind. (Firefox-Bug 2014703).
CSS
-
Die CSS-Eigenschaft
shape-outsideunterstützt jetzt die Funktionenxywh()undrect()als Werte. Diese Funktionen waren zuvor bereits für die Eigenschaftenclip-pathundoffset-pathimplementiert und sind jetzt auch fürshape-outsideverfügbar. (Firefox-Bug 1983187). -
Die CSS-Eigenschaft
vertical-alignist jetzt eine Shorthand-Eigenschaft für die Eigenschaftenalignment-baseline,baseline-shiftundbaseline-source. (Firefox-Bug 1830771). -
Der
<container-query>Teil der@containerat-rule Bedingung ist jetzt optional. Dies ermöglicht das Abgleichen von Containern nur anhand ihrer Namen. (Firefox-Bug 2016474).
JavaScript
- Der
"islamic-umalqura"Kalender wird jetzt vonIntlunterstützt. Diese Zeichenkette wird in der Liste der Kalender enthalten sein, die vonIntl.supportedValuesOf()zurückgegeben wird, und kann alsoptions.calendarParameter imDateTimeFormat()Konstruktor festgelegt werden. (Firefox-Bug 2011505).
APIs
-
Der Parameter
options.resizeQualitywird jetzt vonWindow.createImageBitmap()undWorkerGlobalScope.createImageBitmap()unterstützt. Zusätzlich erlauben die Methoden jetzt, sowohl Resizing-Optionen (options.resizeWidthoderoptions.resizeHeight) als auch Image-Bitmap-Parameter (sx,sy,sw, undsh) gleichzeitig festzulegen — zuvor führte das Setzen beider zu dem unveränderten Quell-Bitmap. (Firefox-Bug 2010125). -
Die Reporting API wird jetzt für das Melden von Content Security Policy (CSP) und
Integrity-PolicyVerstößen unterstützt. Diese API erlaubt die Erstellung vonCSPViolationReportundIntegrityViolationReportObjekten auf Seiten mit Verletzungen, die mit einemReportingObservergemeldet werden können (Berichte können nach demtype-Eigenschaftsfilter gefiltert werden:"csp-violation"oder"integrity-violation"). Eine serialisierte Version der Berichtsobjekte kann ebenfalls an einen Melder-Server gesendet werden, der im entsprechenden HTTP-Header angegeben wurde — Endpunktnamen und entsprechende URLs müssen zuerst in denReporting-EndpointsoderReport-ToHTTP-Antwortheader definiert werden. (Firefox-Bug 1976074, Firefox-Bug 2008916). -
Bis einschließlich Firefox 148 erstellte
structuredClone.call(iframe.contentWindow)fälschlicherweise Objekte im Realm des Aufrufers anstelle des Realms des iframes. Die Implementierung erstellt jetzt Objekte imthis-Realm, sodass das Verhalten der Methode der Spezifikation besser entspricht (Firefox-Bug 2017797).
DOM
-
Die Methode
HTMLSelectElement.showPicker()wird jetzt für eine Liste von Optionen unterstützt, die in einem<datalist>definiert sind. Dies ermöglicht, dass der Browser-Picker für ein<datalist>programmgesteuert ausgelöst wird, wenn er durch Benutzerinteraktion aktiviert wird (Firefox-Bug 1998668). -
Die Schnittstelle
CloseWatcherwird jetzt unterstützt. Dies ermöglicht Entwicklern, Komponenten zu implementieren, die mithilfe nativer Gerätemechanismen geschlossen werden können, wie die Esc auf Windows oder die Zurück Taste auf Android, ähnlich wie integrierte Komponenten wie dialogs und popovers. (Firefox-Bug 1966073). -
DOM-Methoden erlauben jetzt einen größeren Bereich von Zeichen für Element- und Attributnamen. Zuvor waren DOM-Methoden weitaus restriktiver, aber jetzt erlauben sie denselben Zeichensatz wie der HTML-Parser. Die betroffenen Methoden sind:
createAttribute(),createAttributeNS(),createElement()undcreateElementNS()derDocumentSchnittstelle,toggleAttribute(),setAttribute(),setAttributeNS()derElementSchnittstelle,createDocument()derDOMImplementationSchnittstelle unddefine()undwhenDefined()derwhenDefined()Schnittstelle. (Firefox-Bug 1773312).
Medien, WebRTC und Web Audio
-
Die Methode
HTMLMediaElement.captureStream()wird jetzt unterstützt. Diese gibt ein Objekt zurück, das die Echtzeitaufnahme des Inhalts im Element streamt. Der Stream kann beispielsweise als Quelle für eine WebRTCRTCPeerConnectionverwendet werden. Zuvor warcaptureStream()nur als die nicht standardisierte MethodemozCaptureStream()verfügbar. (Firefox-Bug 2017708). -
MediaElementAudioSourceNodebeachtet jetzt die Lautstärke des Medien-Elements beim Aufnehmen von Audio für alle Arten von Quellen (wie von der Spezifikation gefordert). Zuvor hatte das Einstellen der Lautstärke des Elements keine Auswirkungen auf das aufgenommene Audio fürMediaStreamQuellen. (Firefox-Bug 2010427). -
Die Methode
HTMLMediaElement.mozCaptureStream()erfasst jetzt Roh-Audio aus der Quelle, ohne die Lautstärke des Medien-Elements anzuwenden, unabhängig von der Art der Quelle, die das Medien-Element abspielt (wie von der Spezifikation gefordert). Vor dieser Änderung beeinflusste die Lautstärke des Medien-Elements die Lautstärke des erfassten Streams. (Firefox-Bug 2010427).
WebDriver-Konformität (WebDriver BiDi, Marionette)
Allgemein
- Aktualisierte die Screenshot-Implementierungen für das WebDriver BiDi und das klassische WebDriver-Protokoll, um korrekt einen Fehler zurückzugeben, wenn der angeforderte Screenshot-Bereich die maximal unterstützten Abmessungen überschreitet, anstatt ihn stillschweigend zu beschneiden. (Firefox-Bug 1994148).
- Aktualisierte die Implementierung der Aktionen für das WebDriver BiDi und das klassische WebDriver-Protokoll, um eine
scroll-Aktion des Eingabequellentypswheelzuzulassen, die mehr als die Abmessungen des visuellen Viewports scrollt. (Firefox-Bug 1962355).
WebDriver BiDi
- Unterstützung für die automatische Bearbeitung von Benutzeraufforderungen hinzugefügt, die über Fähigkeiten mit dem
session.new-Befehl konfiguriert werden kann. (Firefox-Bug 1905086). - Der
browser.setDownloadBehavior-Befehl wurde hinzugefügt, der es Clients ermöglicht, Downloads zuzulassen oder zu verbieten und auch einen benutzerdefinierten Download-Ordner festzulegen. Dieses Verhalten kann pro Sitzung oder pro Benutzerkontexte konfiguriert werden. (Firefox-Bug 1989022). - Die Ereignisse
script.realmCreatedundscript.realmDestroyedfür Worker-Realms (für dedizierte, geteilte und Service-Worker) wurden hinzugefügt. (Firefox-Bug 1936770). - Ein Problem wurde behoben, bei dem die Ereignisse
browsingContext.userPromptOpenedundbrowsingContext.userPromptClosedfälschlicherweise die Kontext-ID des obersten Levels anstelle der Kontext-ID des iframes auf Android meldeten. (Firefox-Bug 2007385). - Die Serialisierung für DOM-Knoten wurde so behoben, dass keine User-Agent spezifischen Shadow-Roots mehr offengelegt werden. (Firefox-Bug 2016673).
- Die Logik für das Anwenden verschiedener Einstellungen auf neue Browsing-Kontexte wurde aktualisiert, um sicherzustellen, dass im Fall der Erstellung eines Browsing-Kontexts mit dem
window.open-Befehl Emulationen, Viewport-Überschreibungen und Preload-Skripte angewendet werden, bevor der Befehl zurückkehrt. (Firefox-Bug 1985997, Firefox-Bug 2005546, und Firefox-Bug 2005558).
Marionette
- Mehrere klassische WebDriver-Befehle verbessert, um
implicit- undpageLoad-Timeouts im Einklang mit dem Script-Timeout zu handhaben, wasnull-Werte erlaubt, um die Timeouts zu deaktivieren. (Firefox-Bug 2008345).
Änderungen für Add-on-Entwickler
- Fügt initiale Unterstützung für die geteilte Ansicht hinzu. Diese Unterstützung umfasst:
- Einbeziehung der ID der geteilten Ansicht in
tabs.query,tabs.onUpdated, undtabs.Tab - Dokumentation des Verhaltens, wenn
tabs.moveodertabs.removeTabs in einer geteilten Ansicht enthalten. (Firefox-Bug 1993037)
- Einbeziehung der ID der geteilten Ansicht in
- Unterstützung für
tabIdals Top-Level-Parameter inaction.isEnabledundbrowserAction.isEnabledhinzugefügt. Diese Änderung sorgt für Kompatibilität mit der Chrome-Implementierung vonaction.isEnabled. (Firefox-Bug 2013477) - Eine Benutzeraktion ist nicht mehr erforderlich, damit
action.openPopupundbrowserAction.openPopupein Popup öffnen. Diese Funktion war ab Firefox 108 hinter der Einstellungextensions.openPopupWithoutUserGesture.enabledverfügbar. Diese Änderung bringt das Verhalten von Firefox mit Chrome und Safari in Einklang. (Firefox-Bug 1799344) - Wenn
windowIdinaction.openPopupoderbrowserAction.openPopupübergeben wird, muss das Fenster fokussiert (aktiv) sein, damit das Popup geöffnet wird. Um ein Popup in einem nicht fokussierten Fenster zu öffnen, musswindows.update(windowId, { focused: true })zuerst aufgerufen werden. Diese Änderung bringt das Firefox-Verhalten in Einklang mit Chrome. (Firefox-Bug 2011516) - Die Implementierung von
structuredClonewurde geändert, um Objekte imthis-Realm anstelle des Realms des Aufrufers zu instanziieren. Für die Abwärtskompatibilität enthält der globale Bereich von Inhaltsskripten jetzt eine eigenestructuredClone-Methode, die diewindow.structuredClone-Methode überschattet. Für weitere Informationen siehestructuredClonein Teilen von Objekten mit Page Scripts (Firefox-Bug 2017797). - Die Fähigkeit von Erweiterungen, Code dynamisch in ihren
moz-extension:-Dokumenten mittabs.executeScript,tabs.insertCSS,tabs.removeCSS,scripting.executeScript,scripting.insertCSS, undscripting.removeCSSauszuführen, ist veraltet. (Firefox-Bug 2011234) Die Funktion ist in Firefox Nightly nicht mehr verfügbar, und die Beta- und Release-Versionen von Firefox geben eine Warnung in der Konsole des Tabs aus. Diese Einschränkung wird für alle Versionen von Firefox 152 und höher gelten. (Firefox-Bug 2015559) Als Alternative kann eine Erweiterung Code in ihren Dokumenten dynamisch ausführen, indem einruntime.onMessageListener im Skript des Dokuments registriert und dann eine Nachricht gesendet wird, um die Ausführung des erforderlichen Codes auszulösen. - Der implizite CSS-Filter, der auf Page Action SVG-Icons in dunklen Themen angewendet wird, ist in Nightly-Builds deaktiviert (Firefox-Bug 2001318) und wird in anderen Firefox-Ausgaben ab Version 152 deaktiviert (Firefox-Bug 2016509). Sie können Page Action SVG-Icons mit dem deaktivierten CSS-Filter in anderen Firefox-Ausgaben testen, indem Sie eine boolesche
about:config-Einstellung namensextensions.webextensions.pageActionIconDarkModeFilter.enablederstellen und auffalsesetzen.
Experimentelle Web-Funktionen
Diese Funktionen werden in Firefox 149 ausgeliefert, sind jedoch standardmäßig deaktiviert.
Um mit ihnen zu experimentieren, suchen Sie die entsprechenden Einstellungen auf der about:config Seite und setzen Sie sie auf true.
Weitere solche Funktionen finden Sie auf der Seite Experimentelle Funktionen.
-
<attr-type>Werte in derattr()CSS-Funktion:layout.css.attr.enabledDie
attr()CSS-Funktion unterstützt jetzt<attr-type>Werte. Dadurch können Sie spezifizieren, wie ein Attributwert in einen CSS-Wert geparst wird und diese direkt vondata-*Attributen nehmen. (Firefox-Bug 1986631 & Firefox-Bug 1998245). -
color-mix()akzeptiert mehrere Farbargumente:layout.css.color-mix-multi-color.enabledDie
color-mix()CSS-Funktion unterstützt jetzt mehrere<color>Werte statt nur zwei. Dies ermöglicht es, viele Farben zu mischen und die Prozentsätze von jeder festzulegen. (Firefox-Bug 2007772). -
Medienbasierte Pseudo-Klassen:
dom.media.pseudo-classes.enabledDie medienbasierten Pseudo-Klassen
:buffering,:muted,:paused,:playing,:seeking,:stalled, und:volume-lockedermöglichen es,<audio>und<video>Elemente basierend auf ihrem aktuellen Zustand zu stylen, wie spielen oder pausiert. (Firefox-Bug 1707584, Firefox-Bug 2014512). -
alpha&colorspaceAttribute incolorEingabeelementen (nur Nightly):dom.forms.html_color_picker.enabledDas HTML
<input type="color">Element unterstützt die Attributealpha&colorspace. (Firefox-Bug 1919718). -
@container style()Abfragen (Nightly):layout.css.style-queries.enabledDie
@containerCSS at-rule unterstütztstyle()Abfragen. Dies ermöglicht, zu überprüfen, ob ein Container eine gültige CSS-Deklaration, eine CSS-Eigenschaft oder eine benutzerdefinierte Eigenschaft hat, und entsprechend Stile auf seine Kinder anzuwenden. (Firefox-Bug 2014404). -
Wert
base-selectfür die CSS-Eigenschaft appearance:dom.select.customizable_select.enabledundlayout.css.appearance-base.enabledDer
base-selectWert für dieappearanceCSS-Eigenschaft, die nur für das<select>Element und das::picker(select)Pseudo-Element relevant ist, ermöglicht es, sie vollständig zu stylen. Derzeit wird nur das Styling des<select>-Elements unterstützt. Das Styling des::picker(select)Pseudo-Elements wird in zukünftigen Versionen hinzugefügt. Diese Funktion ist Teil der Arbeit an Anpassbaren Select-Elementen. Zwei Einstellungen müssen aktiviert sein, um sie zu verwenden. (Firefox-Bug 1974787). -
CSS Typed Object Model Level 1:
layout.css.typed-om.enabledDie Implementierung der CSS Typed Object Model Level 1 Spezifikation ist im Gange. In dieser Version wurde die Unterstützung für die Methode
to()der SchnittstelleCSSNumericValuehinzugefügt, die die Umwandlung eines CSS-numerischen Wertes von einer Einheit in eine andere erlaubt. (Firefox-Bug 1278697). -
JPEG XL Bildunterstützung: Rust-basierter Decoder (nur Nightly):
image.jxl.enabledDer vorherige C++ JPEG XL Bilddecoder wurde durch eine neue Rust-basierte Implementierung ersetzt, die die
jxl-rsBibliothek verwendet. (Firefox-Bug 1986393).