Firefox 149 Versionshinweise für Entwickler (Stable)
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 nun den Werthint. Popover mit dem Werthintschließen keineautoPopover, wenn sie angezeigt werden, schließen jedoch andere Hint-Popover. (Firefox Bug 1867743).
MathML
- Die CSS-Eigenschaft
font-family: mathwird jetzt unterstützt und standardmäßig auf<math>-Elemente angewendet. Dies stellt sicher, dass Websites eine geeignete mathematische Schriftart und/oder MathML verwenden können, ohne wissen zu müssen, welche Schriftarten auf dem zugrunde liegenden Betriebssystem vorhanden sind. (Firefox Bug 2014703).
CSS
-
Die
shape-outsideCSS-Eigenschaft unterstützt jetzt die Funktionxywh()als Wert. Dies ermöglicht es Ihnen, eine Form zu definieren, um die Inline-Inhalte herumfließen, unter Verwendung von Abständen vom linken (x) und oberen (y) Rand des umschließenden Blocks sowie einer Breite (w) und Höhe (h). (Firefox Bug 1983187). -
Die
vertical-alignCSS-Eigenschaft ist jetzt eine Kurzform 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 Matching gegen Container ausschließlich basierend auf ihren Namen. (Firefox Bug 2016474).
JavaScript
- Der
"islamic-umalqura"Kalender wird jetzt vonIntlunterstützt. Dieser String wird in der Liste der Kalender sein, die vonIntl.supportedValuesOf()zurückgegeben werden, und kann als der Parameteroptions.calendarimDateTimeFormat()Konstrukteur gesetzt werden. (Firefox Bug 2011505).
APIs
-
Der Parameter
options.resizeQualitywird jetzt vonWindow.createImageBitmap()undWorkerGlobalScope.createImageBitmap()unterstützt. Darüber hinaus ermöglichen die Methoden jetzt, sowohl Resize-Optionen (options.resizeWidthoderoptions.resizeHeight) als auch Bild-Bitmap-Parameter (sx,sy,sw, undsh) gleichzeitig einzustellen — vorher führte das Einstellen beider zur Ausgabe des unskalierten Quell-Bitmaps. (Firefox Bug 2010125). -
Die Reporting API wird jetzt unterstützt, um Content Security Policy (CSP) und
Integrity-PolicyVerstöße zu melden. Diese API erlaubt es,CSPViolationReportundIntegrityViolationReportObjekte auf verletzenden Seiten mit einemReportingObserverzu berichtigen (Berichte können über die Eigenschafttypegefiltert werden:"csp-violation"oder"integrity-violation"). Eine serialisierte Version der Berichtsobjekte kann auch an einen Reporting-Server gesendet werden, der im entsprechenden HTTP-Header angegeben ist — Endpoint-Namen und zugehörige URLs müssen zuerst in den HTTP-Antwort-HeadernReporting-EndpointsoderReport-Todefiniert werden. (Firefox Bug 1976074, Firefox Bug 2008916).
DOM
-
Die Methode
HTMLSelectElement.showPicker()wird jetzt für eine Liste von Optionen unterstützt, die in einem<datalist>definiert sind. Dies ermöglicht es, den Browser-Picker für ein<datalist>programmgesteuert zu starten, wenn er durch Benutzerinteraktion ausgelöst wird (Firefox Bug 1998668). -
Die Schnittstelle
CloseWatcherwird jetzt unterstützt. Dies erlaubt es Entwicklern, Komponenten zu implementieren, die mit geräteinternen Mechanismen, wie der Esc auf Windows oder der Zurück-Taste auf Android, geschlossen werden können, ähnlich wie eingebaute Komponenten wie Dialogs und Popovers. (Firefox Bug 1966073). -
DOM-Methoden erlauben jetzt eine breitere Palette von Zeichen für Element- und Attributnamen. Bisher waren DOM-Methoden deutlich restriktiver, erlauben jetzt jedoch denselben Zeichensatz wie der HTML-Parser. Die betroffenen Methoden sind:
createAttribute(),createAttributeNS(),createElement()undcreateElementNS()derDocumentSchnittstelle,toggleAttribute(),setAttribute(),setAttributeNS()derElementSchnittstelle,createDocument()derDOMImplementationSchnittstelle sowiedefine()undwhenDefined()derCustomElementRegistrySchnittstelle. (Firefox Bug 1773312).
Medien, WebRTC und Web Audio
-
Die Methode
HTMLMediaElement.captureStream()wird jetzt unterstützt. Diese gibt ein Objekt zurück, das die Echtzeitaufzeichnung des Inhalts im Element streamt. Der Stream kann z. B. als Quelle für eine WebRTCRTCPeerConnectionverwendet werden. Zuvor warcaptureStream()nur als nicht standardmäßige MethodemozCaptureStream()verfügbar. (Firefox Bug 2017708). -
MediaElementAudioSourceNoderespektiert nun die Lautstärke des Medienelements beim Erfassen von Audio für alle Arten von Quellen (wie es die Spezifikation erfordert). Zuvor hatte die Lautstärkeeinstellung des Elements keinen Einfluss auf das erfasste Audio fürMediaStreamQuellen. (Firefox Bug 2010427). -
Die Methode
HTMLMediaElement.mozCaptureStream()erfasst nun rohes Audio aus der Quelle, ohne die Lautstärke des Medienelements anzuwenden, unabhängig davon, welche Art von Quelle das Medienelement abspielt (wie es die Spezifikation erfordert). Vor dieser Änderung hatte die Lautstärke des Medienelements Einfluss auf die Lautstärke des erfassten Streams. (Firefox Bug 2010427).
WebDriver Konformität (WebDriver BiDi, Marionette)
Allgemein
- Aktualisiert die Screenshot-Implementierungen sowohl für die WebDriver BiDi als auch für die klassische WebDriver-Protokolle, um korrekt einen Fehler zurückzugeben, wenn der angeforderte Screenshot-Bereich die maximal unterstützten Dimensionen überschreitet, anstatt ihn stillschweigend zu beschneiden. (Firefox Bug 1994148).
- Aktualisiert die Implementierung von Aktionen für beide WebDriver BiDi und klassische WebDriver-Protokolle, um eine
scrollAktion vom Eingabequellentypwheelzuzulassen, die mehr als die Dimensionen der visuellen Ansicht verschiebt. (Firefox Bug 1962355).
WebDriver BiDi
- Unterstützung für die automatische Behandlung von Benutzereingabeaufforderungen hinzugefügt, die über Funktionen mit dem
session.newBefehl konfiguriert werden können. (Firefox Bug 1905086). - Der Befehl
browser.setDownloadBehaviorwurde hinzugefügt, der es den Clients ermöglicht, Downloads zu erlauben oder zu verbieten und auch einen benutzerdefinierten Download-Ordner festzulegen. Dieses Verhalten kann pro Sitzung oder pro Benutzerkontext konfiguriert werden. (Firefox Bug 1989022). - Die Ereignisse
script.realmCreatedundscript.realmDestroyedfür Worker-Reiche (für spezielle, geteilte und Service-Worker) wurden hinzugefügt. (Firefox Bug 1936770). - Ein Problem wurde behoben, bei dem die Ereignisse
browsingContext.userPromptOpenedundbrowsingContext.userPromptClosedfälschlicherweise die ID des obersten Kontexts anstatt die ID des Iframe-Kontexts auf Android meldeten. (Firefox Bug 2007385). - Die Serialisierung für DOM-Knoten wurde behoben, um benutzeragenten-spezifische Shadow-Roots nicht mehr freizulegen. (Firefox Bug 2016673).
- Die Logik bei der Anwendung unterschiedlicher Einstellungen auf neue Browsing-Kontexte wurde aktualisiert, um sicherzustellen, dass im Fall des Erstellens eines Browsing-Kontexts mit dem
window.openBefehl, Emulationen, Ansichtsüberlagerungen und Preload-Skripte angewendet werden, bevor der Befehl zurückgegeben wird. (Firefox Bug 1985997, Firefox Bug 2005546 und Firefox Bug 2005558).
Marionette
- Mehrere klassische WebDriver-Befehle wurden verbessert, um
implicitundpageLoadZeitüberschreitungen im Einklang mit der Skript-Zeitüberschreitung zu behandeln, indemnullWerte die Zeitüberschreitungen deaktivieren. (Firefox Bug 2008345).
Änderungen für Add-on-Entwickler
-
Fügt erste Unterstützung für Split-View hinzu. Diese Unterstützung umfasst:
- Einschluss der Split-View-ID in
tabs.query,tabs.onUpdatedundtabs.Tab - Dokumentation des Verhaltens, wenn
tabs.moveodertabs.removeTabs in einem Split-View enthalten. (Firefox Bug 1993037)
- Einschluss der Split-View-ID in
-
Unterstützung für
tabIdals oberstes Parameterelement inaction.isEnabledundbrowserAction.isEnabledhinzugefügt. Diese Änderung sorgt für Kompatibilität mit der Chrome-Implementierung vonaction.isEnabled. (Firefox Bug 2013477) -
Ein Benutzerinteraktion ist nicht mehr erforderlich, damit
action.openPopupundbrowserAction.openPopupein Popup öffnen können. Diese Funktion war seit Firefox 108 hinter der Einstellungextensions.openPopupWithoutUserGesture.enabledverfügbar. Diese Änderung angleicht das Verhalten von Firefox an Chrome und Safari. (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 angleicht das Verhalten von Firefox an Chrome. (Firefox Bug 2011516) -
Die Fähigkeit von Erweiterungen, Code dynamisch in ihren
moz-extension:Dokumenten mittabs.executeScript,tabs.insertCSS,tabs.removeCSS,scripting.executeScript,scripting.insertCSSundscripting.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 später angewendet. (Firefox Bug 2015559) Als Alternative kann eine Erweiterung Code in ihren Dokumenten dynamisch ausführen, indem sie einenruntime.onMessageListener im Skript des Dokuments registriert und dann eine Nachricht sendet, um die Ausführung des erforderlichen Codes auszulösen. -
Der implizite CSS-Filter, der auf Seitenaktions- SVG-Icons in dunklen Themes 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 Seitenaktions-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 entsprechende Einstellung auf der Seite about:config 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. Dies ermöglicht es, zu spezifizieren, wie ein Attributwert in einen CSS-Wert geparst wird, und diese Werte direkt vondata-*zu übernehmen. (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, anstatt nur zwei. Dies ermöglicht es, viele Farben zu mischen und die Prozentsätze jeder Farbe zu bestimmen. (Firefox Bug 2007772). -
Mediabasierte Pseudo-Klassen:
dom.media.pseudo-classes.enabledDie mediabasierte 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 z. B. Abspielen oder Pausieren. (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 (nur Nightly):layout.css.style-queries.enabledDie
@containerCSS-At-rule unterstütztstyle()Abfragen. Dies ermöglicht es, zu überprüfen, ob ein Container eine gültige CSS-Deklaration, eine CSS-Eigenschaft oder eine benutzerdefinierte Eigenschaft hat, und entsprechend Styles auf seine Kinder anzuwenden. (Firefox Bug 2014404). -
CSS Typed Object Model Level 1:
layout.css.typed-om.enabledDie CSS Typed Object Model Level 1 Spezifikation wird implementiert. In dieser Veröffentlichung wurde die Unterstützung für die
to()Methode derCSSNumericValueSchnittstelle hinzugefügt, die es ermöglicht, einen CSS-numerischen Wert von einer Einheit in eine andere zu konvertieren. (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).