Firefox 149 Release Notes für Entwickler (Stabil)
Dieser Artikel bietet Informationen über die Ä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. 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 stellt sicher, dass Websites eine passende Mathe-Schriftart und/oder MathML verwenden können, ohne wissen zu müssen, welche Schriftarten auf dem zugrunde liegenden OS 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 von den linken (x) und oberen (y) Kanten des umschließenden Blocks sowie einer Breite (w) und Höhe (h). (Firefox-Bug 1983187). -
Die
vertical-alignCSS-Eigenschaft ist nun eine Kurzform-Eigenschaft für die Eigenschaftenalignment-baseline,baseline-shiftundbaseline-source. (Firefox-Bug 1830771). -
Der Teil der Bedingung
<container-query>der@containerat-rule ist jetzt optional. Dies erlaubt das Abgleichen gegen Container basierend allein auf ihren Namen. (Firefox-Bug 2016474).
JavaScript
Keine bemerkenswerten Änderungen.
APIs
-
Der Parameter
options.resizeQualitywird nun vonWindow.createImageBitmap()undWorkerGlobalScope.createImageBitmap()unterstützt. Zusätzlich erlauben die Methoden jetzt, sowohl die Vergrößerungsoptionen (options.resizeWidthoderoptions.resizeHeight) als auch die Bild-Bitmap-Parameter (sx,sy,sw, undsh) gleichzeitig festzulegen — zuvor führte das Festlegen beider dazu, dass das unskalierte Quell-Bitmap zurückgegeben wurde. (Firefox-Bug 2010125). -
Die Reporting API wird jetzt für das Reporting von Content Security Policy (CSP)- und
Integrity-Policy-Verstößen unterstützt. Dies ermöglicht es, dass Berichtobjekte, dieCSPViolationReport-Objekte undIntegrityViolationReport-Objekte sind, auf verletzenden Seiten mithilfe einesReportingObservergemeldet werden können (Berichte können mithilfe dertype-Eigenschaft gefiltert werden:"csp-violation"oder"integrity-violation"). Eine serialisierte Version der Berichtobjekte kann auch an einen Berichtserver gesendet werden, der in den entsprechenden HTTP-Headern spezifiziert ist — Endpunktnamen und entsprechende URLs müssen zuerst in denReporting-EndpointsoderReport-ToHTTP-Antwort-Headern definiert werden. (Firefox-Bug 1976074, Firefox-Bug 2008916).
DOM
-
Die Methode
HTMLSelectElement.showPicker()wird nun für eine Liste von Optionen unterstützt, die in einem<datalist>definiert sind. Dies ermöglicht das programmatische Starten des Browser-Pickers für ein<datalist>, wenn er durch eine Benutzerinteraktion ausgelöst wird (Firefox-Bug 1998668). -
Die Schnittstelle
CloseWatcherwird jetzt unterstützt. Dies ermöglicht es Entwicklern, Komponenten zu implementieren, die mit geräteinternen Mechanismen geschlossen werden können, wie z.B. die Esc auf Windows oder die Zurück-Taste auf Android, auf die gleiche Weise wie integrierte Komponenten wie Dialogs und Popovers. (Firefox-Bug 1966073). -
DOM-Methoden erlauben nun eine breitere Palette von Zeichen für Element- und Attributnamen. Zuvor waren DOM-Methoden viel restriktiver, aber jetzt erlauben sie denselben Zeichensatz wie der HTML-Parser. Die betroffenen Methoden sind:
createAttribute(),createAttributeNS(),createElement()undcreateElementNS()derDocument-Schnittstelle,toggleAttribute(),setAttribute(),setAttributeNS()derElement-Schnittstelle,createDocument()derDOMImplementation-Schnittstelle unddefine()undwhenDefined()derwhenDefined()-Schnittstelle. (Firefox-Bug 1773312).
Medien, WebRTC und Web Audio
-
Die Methode
HTMLMediaElement.captureStream()wird jetzt unterstützt. Dies gibt ein Objekt zurück, das den Echtzeit-Capture des Inhalts im Element streamt. Der Stream kann beispielsweise als Quelle für eine WebRTCRTCPeerConnectionverwendet werden. Vorher warcaptureStream()nur als die nicht standardmäßige MethodemozCaptureStream()verfügbar. (Firefox-Bug 2017708). -
MediaElementAudioSourceNoderespektiert jetzt die Lautstärke des Medienelements, wenn Audio für alle Arten von Quellen erfasst wird (wie es die Spezifikation verlangt). Zuvor beeinflusste das Einstellen der Lautstärke des Elements nicht das erfasste Audio fürMediaStream-Quellen. (Firefox-Bug 2010427). -
Die Methode
HTMLMediaElement.mozCaptureStream()erfasst jetzt rohes Audio aus der Quelle, ohne die Lautstärke des Medienelements anzuwenden, unabhängig von der Art der Quelle, die das Medienelement spielt (wie es die Spezifikation verlangt). Vor dieser Änderung beeinflusste die Lautstärke des Medienelements die Lautstärke des erfassten Streams. (Firefox-Bug 2010427).
WebDriver-Konformität (WebDriver BiDi, Marionette)
Allgemein
- Die Implementierungen der Screenshot-Funktionen für sowohl das WebDriver BiDi- als auch das klassische WebDriver-Protokoll wurden aktualisiert, um bei Überschreitung der maximal unterstützten Dimensionen des angeforderten Screenshot-Bereichs korrekt einen Fehler zurückzugeben, anstatt diesen stillschweigend abzuschneiden. (Firefox-Bug 1994148).
- Die Implementierung der Aktionen sowohl für das WebDriver BiDi- als auch das klassische WebDriver-Protokoll wurde aktualisiert, um eine
scroll-Aktion des Eingabequellentypswheelzu erlauben, die über die visuellen Viewport-Dimensionen hinaus scrollt. (Firefox-Bug 1962355).
WebDriver BiDi
- Unterstützung für die automatische Handhabung von Benutzeraufforderungen hinzugefügt, die durch Fähigkeiten mit dem
session.new-Befehl konfiguriert werden kann. (Firefox-Bug 1905086). - Der Befehl
browser.setDownloadBehaviorwurde hinzugefügt, der es Clients ermöglicht, Downloads zu erlauben 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-Realm (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 des iframes auf Android gemeldet haben. (Firefox-Bug 2007385). - Die Serialisierung für DOM-Knoten wurde korrigiert, um das Exponieren von Benutzeragent-spezifischen Schattenwurzeln zu verhindern. (Firefox-Bug 2016673).
- Die Logik bei der Anwendung unterschiedlicher Einstellungen auf neue Browsing-Kontexte wurde aktualisiert, um sicherzustellen, dass beim Erstellen eines Browsing-Kontextes mit dem
window.open-Befehl Emulationen, Viewport-Overrides und Vorladeskripte angewendet werden, bevor der Befehl zurückkehrt. (Firefox-Bug 1985997, Firefox-Bug 2005546 und Firefox-Bug 2005558).
Marionette
- Mehrere klassische WebDriver-Befehle wurden verbessert, um
implizierteundpageLoad-Timeouts gemäß dem Skript-Timeout zu handhaben, wobeinull-Werte verwendet werden können, um die Timeouts zu deaktivieren. (Firefox-Bug 2008345).
Änderungen für Add-on-Entwickler
-
Erste Unterstützung für geteilte Ansicht hinzugefügt. Diese Unterstützung umfasst:
- Einbeziehung der ID der geteilten Ansicht in
tabs.query,tabs.onUpdatedundtabs.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 Parameter der obersten Ebene inaction.isEnabledandbrowserAction.isEnabledhinzugefügt. Diese Änderung sorgt für Kompatibilität mit der Chrome-Implementierung vonaction.isEnabled. (Firefox-Bug 2013477) -
Ein Benutzer-Eingriff ist nicht mehr erforderlich, damit
action.openPopupundbrowserAction.openPopupein Popup öffnen können. Diese Funktion war hinter der Einstellungextensions.openPopupWithoutUserGesture.enabledseit Firefox 108 verfügbar. Diese Änderung passt das Verhalten von Firefox an Chrome und Safari an. (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, muss zuerstwindows.update(windowId, { focused: true })aufgerufen werden. Diese Änderung passt das Verhalten von Firefox an Chrome an. (Firefox-Bug 2011516) -
Die Fähigkeit von Erweiterungen, Code in ihren
moz-extension:-Dokumenten mittabs.executeScript,tabs.insertCSS,tabs.removeCSS,scripting.executeScript,scripting.insertCSS, undscripting.removeCSSdynamisch auszuführen, wird eingestellt. (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 auf 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 einruntime.onMessage-Listener im Skript des Dokuments registriert und dann eine Nachricht gesendet wird, um die Ausführung des benötigten Codes zu triggern. -
Der implizite CSS-Filter, der auf Page Action-SVG-Icons in dunklen Themen angewendet wurde, ist in Nightly-Builds deaktiviert (Firefox-Bug 2001318) und wird in anderen Firefox-Ausgaben ab Version 152 deaktiviert sein (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 sind in Firefox 149 enthalten, aber standardmäßig deaktiviert.
Um sie zu testen, suchen Sie nach der entsprechenden Einstellung 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 nun<attr-type>Werte. Dies ermöglicht es Ihnen, festzulegen, 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 Ihnen, viele Farben zu mischen und die Prozentsätze jeder Farbe festzulegen. (Firefox-Bug 2007772). -
Pseudoklassen basierend auf Medien:
dom.media.pseudo-classes.enabledDie medienbasierten Pseudoklassen
:buffering,:muted,:paused,:playing,:seeking,:stalled, und:volume-lockederlauben es Ihnen,<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). -
Anfragen über
@container style()(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 Stile 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 Version wurde Unterstützung für die Methode
to()der SchnittstelleCSSNumericValuehinzugefügt, die es erlaubt, einen CSS-numerischen Wert von einer Einheit in eine andere zu konvertieren. (Firefox-Bug 1278697). -
JPEG XL Bildunterstützung: Rust-basierter Decoder:
image.jxl.enabledDer vorherige C++ JPEG XL Bilddecoder wurde durch eine neue Rust-basierte Implementierung ersetzt, die die
jxl-rsBibliothek verwendet. (Firefox-Bug 1986393).