Firefox 149 Versionshinweise für Entwickler
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 jetzt den Werthint. Popover mit dem Werthintschließen keineautoPopover, wenn sie angezeigt werden, sondern schließen andere Hinweis-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 Mathematik-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-outside-CSS-Eigenschaft unterstü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
vertical-align-CSS-Eigenschaft ist jetzt eine Kurzschreibweise 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 gegen Container basierend nur auf ihren Namen. (Firefox-Bug 2016474).
JavaScript
- Der
"islamic-umalqura"Kalender wird jetzt vonIntlunterstützt. Dieser String wird in der Liste der Kalender enthalten sein, die vonIntl.supportedValuesOf()zurückgegeben werden, und kann alsoptions.calendar-Parameter imDateTimeFormat()-Konstruktor festgelegt werden. (Firefox-Bug 2011505).
APIs
-
Der Parameter
options.resizeQualitywird jetzt vonWindow.createImageBitmap()undWorkerGlobalScope.createImageBitmap()unterstützt. Darüber hinaus erlauben die Methoden jetzt, dass sowohl Größenänderungsoptionen (options.resizeWidthoderoptions.resizeHeight) als auch Bild-Bitmap-Parameter (sx,sy,sw, undsh) gleichzeitig festgelegt werden können — zuvor führte die Festlegung beider zur Rückgabe der unskalierten Quellbitmap. (Firefox-Bug 2010125). -
Die Reporting API wird nun zum Berichten von Content Security Policy (CSP) und
Integrity-Policy-Verstößen unterstützt. Diese API ermöglicht das Berichten vonCSPViolationReportundIntegrityViolationReport-Objekten auf problematischen Seiten mit einemReportingObserver(Berichte können nach demtype-Eigenschaft gefiltert werden:"csp-violation"oder"integrity-violation"). Eine serialisierte Version der Berichtsobjekte kann auch an einen im entsprechenden HTTP-Header angegebenen Berichtsserver gesendet werden — Endpoint-Namen und entsprechende URLs müssen zuerst in den HTTP-Antwort-HeadernReporting-EndpointsoderReport-Todefiniert werden. (Firefox-Bug 1976074, Firefox-Bug 2008916). -
Bis Firefox 148 erstellte
structuredClone.call(iframe.contentWindow)fälschlicherweise Objekte im Realm des Aufrufers statt im Realm des iframes. Die Implementierung instanziiert jetzt Objekte imthisRealm, sodass das Verhalten der Methode enger an die Spezifikation angepasst ist (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 das programmatische Aufrufen des Browser-Auswahlmenüs für ein<datalist>, wenn es durch Benutzerinteraktion ausgelöst wird (Firefox-Bug 1998668). -
Das Interface
CloseWatcherwird jetzt unterstützt. Dies ermöglicht Entwicklern, Komponenten zu implementieren, die über gerätenative Mechanismen geschlossen werden können, wie die<kbd>Esc</kbd>-Taste unter Windows oder die<kbd>Zurück</kbd>-Taste unter Android, ähnlich wie eingebaute Komponenten wie dialogs und popovers. (Firefox-Bug 1966073). -
DOM-Methoden erlauben jetzt eine breitere Palette an Zeichen für Element- und Attributnamen. Früher waren DOM-Methoden viel einschränkender, aber jetzt erlauben sie denselben Zeichensatz wie der HTML-Parser. Die betroffenen Methoden sind:
createAttribute(),createAttributeNS(),createElement()undcreateElementNS()desDocument-Interfaces,toggleAttribute(),setAttribute(),setAttributeNS()desElement-Interfaces,createDocument()desDOMImplementation-Interfaces unddefine()undwhenDefined()desCustomElementRegistry-Interfaces. (Firefox-Bug 1773312).
Medien, WebRTC und Web Audio
-
Die Methode
HTMLMediaElement.captureStream()wird jetzt unterstützt. Diese gibt ein Objekt zurück, das die Echtzeit-Erfassung des Inhalts im Element streamt. Der Stream kann beispielsweise als Quelle für eine WebRTCRTCPeerConnectionverwendet werden. Zuvor warcaptureStream()nur als nicht-standardisiertemozCaptureStream()-Methode verfügbar. (Firefox-Bug 2017708). -
MediaElementAudioSourceNoderespektiert jetzt die Lautstärke des Medienelements beim Erfassen von Audio für alle Typen von Quellen (wie es die Spezifikation erfordert). Zuvor beeinflusste das Einstellen der Lautstärke des Elements das erfasste Audio fürMediaStream-Quellen nicht. (Firefox-Bug 2010427). -
Die Methode
HTMLMediaElement.mozCaptureStream()erfasst jetzt rohes Audio von der Quelle, ohne die Lautstärke des Medienelements anzuwenden, unabhängig von der Art der Quelle, die das Medienelement abspielt (wie es die Spezifikation erfordert). 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
- Aktualisierte die Screenshot-Implementierungen sowohl für die WebDriver BiDi- als auch die klassischen 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).
- Aktualisierte die Aktionen-Implementierung für beide Protokolle, um eine
scroll-Aktion des Eingabequellentypswheelzu ermöglichen, die mehr als die Dimensionen des visuellen Viewports scrollt. (Firefox-Bug 1962355).
WebDriver BiDi
- Unterstützung für die automatische Handhabung von Benutzeraufforderungen hinzugefügt, die über Fähigkeiten mit dem
session.new-Befehl konfiguriert werden kann. (Firefox-Bug 1905086). - Den Befehl
browser.setDownloadBehaviorhinzugefü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 Benutzerkontext konfiguriert werden. (Firefox-Bug 1989022). - Die Ereignisse
script.realmCreatedundscript.realmDestroyedfür Worker-Realms (für dedizierte, gemeinsame und Service-Worker) hinzugefügt. (Firefox-Bug 1936770). - Ein Problem behoben, bei dem die Ereignisse
browsingContext.userPromptOpenedundbrowsingContext.userPromptClosedfälschlicherweise die Kontext-ID auf oberster Ebene anstelle der Kontext-ID des iframes auf Android meldeten. (Firefox-Bug 2007385). - Die Serialisierung von DOM-Knoten aktualisiert, um das Exponieren von user-agentspezifischen Schattenwurzeln zu stoppen. (Firefox-Bug 2016673).
- Die Logik zur Anwendung verschiedener Einstellungen auf neue Browsing-Kontexte aktualisiert, um sicherzustellen, dass im Fall der Erstellung eines Browsing-Kontextes mit dem
window.open-Befehl Emulationen, Viewport-Overrides und Vorab-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
implicitundpageLoad-Timeouts im Einklang mit dem Skript-Timeout zu handhaben und es zu ermöglichen,null-Werte zum Deaktivieren der Timeouts zu verwenden. (Firefox-Bug 2008345).
Änderungen für Add-on-Entwickler
- Fügt anfängliche Unterstützung für geteilte Ansicht hinzu. Diese Unterstützung umfasst:
- Einbeziehung der geteilten Ansichts-ID in
tabs.query,tabs.onUpdatedundtabs.Tab - Dokumentation des Verhaltens, wenn
tabs.moveodertabs.removeTabs in einer geteilten Ansicht umfassen. (Firefox-Bug 1993037)
- Einbeziehung der geteilten Ansichts-ID in
- Unterstützung für
tabIdals obersten 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 länger erforderlich, damit
action.openPopupundbrowserAction.openPopupein Popup öffnen. Diese Funktion war ab Firefox 108 hinter der Einstellungextensions.openPopupWithoutUserGesture.enabledverfügbar. Diese Änderung stimmt das Verhalten von Firefox mit Chrome und Safari ab. (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 stimmt das Firefox-Verhalten mit Chrome ab. (Firefox-Bug 2011516) - Die Implementierung von
structuredClonewurde geändert, um Objekte imthisRealm statt im Realm des Aufrufers zu instanziieren. Aus Gründen der Rückwärtskompatibilität enthält der globale Bereich von Inhaltsskripten jetzt eine eigenestructuredClone-Methode, die diewindow.structuredClone-Methode überschattet. Weitere Informationen finden Sie unterstructuredClonein Sharing objects with 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.insertCSSundscripting.removeCSSauszuführen, ist veraltet. (Firefox-Bug 2011234) Die Funktion ist im Firefox Nightly nicht mehr verfügbar, und die Beta- sowie die 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 sie einenruntime.onMessage-Listener 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 Seitentasten-SVG-Icons in dunklen Themen angewendet wird, ist in Nightly-Builds deaktiviert (Firefox-Bug 2001318) und wird in anderen Firefox-Editionen ab Version 152 deaktiviert (Firefox-Bug 2016509). Sie können Seitentasten-SVG-Icons mit dem deaktivierten CSS-Filter in anderen Firefox-Editionen testen, indem Sie eine Boolean-
about:config-Einstellung namensextensions.webextensions.pageActionIconDarkModeFilter.enablederstellen und sie auffalsesetzen.
Experimentelle Web-Features
Diese Funktionen werden in Firefox 149 ausgeliefert, sind aber standardmäßig deaktiviert.
Um mit ihnen zu experimentieren, suchen Sie nach der entsprechenden Einstellung auf der about:config-Seite und stellen 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 Ihnen, zu spezifizieren, wie ein Attributwert in einen CSS-Wert geparst wird, und diese Werte direkt ausdata-*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, nicht nur zwei. Dies ermöglicht es Ihnen, viele Farben zu mischen und die Prozentsätze jeder Farbe festzulegen. (Firefox-Bug 2007772). -
Medienbasierte Pseudoklassen:
dom.media.pseudo-classes.enabledDie medienbasierten Pseudoklassen
:buffering,:muted,:paused,:playing,:seeking,:stalledund:volume-lockedermöglichen es Ihnen,<audio>- und<video>-Elemente basierend auf ihrem aktuellen Zustand, wie z.B. Wiedergabe oder Pause, zu stylen. (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-Regel unterstütztstyle()-Abfragen. Dies ermöglicht es Ihnen zu prü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 die Unterstützung für die Methode
to()desCSSNumericValue-Interfaces 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-rs-Bibliothek verwendet. (Firefox-Bug 1986393).