Firefox 149 Versionshinweise für Entwickler (Stable)
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. Popovers mit demhint-Wert schließen keineauto-Popovers, wenn sie angezeigt werden, schließen jedoch andere Hinweis-Popovers. (Firefox Bug 1867743).
MathML
- Die CSS-Eigenschaft
font-family: mathwird nun unterstützt und standardmäßig auf<math>-Elemente angewendet. Dies stellt sicher, dass Websites eine geeignete Math-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 nun die Funktionenxywh()undrect()als Werte. Diese Funktionen waren bereits für die Eigenschaftenclip-pathundoffset-pathimplementiert und sind nun auch fürshape-outsideverfügbar. (Firefox Bug 1983187). -
Die
vertical-alignCSS-Eigenschaft ist nun eine Kurzschreibung für die Eigenschaftenalignment-baseline,baseline-shiftundbaseline-source. (Firefox Bug 1830771). -
Der '
' Teil der@containerat-rule Bedingung ist nun optional. Dies ermöglicht das Abgleichen mit Containern, die ausschließlich auf ihren Namen basieren. (Firefox Bug 2016474).
JavaScript
- Der
"islamic-umalqura"Kalender wird jetzt vonIntlunterstützt. Dieser String wird in der Liste der Kalender, die vonIntl.supportedValuesOf()zurückgegeben werden, enthalten sein und kann alsoptions.calendarParameter imDateTimeFormat()Konstruktor festgelegt werden. (Firefox Bug 2011505).
APIs
-
Der
options.resizeQualityParameter wird jetzt vonWindow.createImageBitmap()undWorkerGlobalScope.createImageBitmap()unterstützt. Darüber hinaus erlauben die Methoden jetzt, dass sowohl Resize-Optionen (options.resizeWidthoderoptions.resizeHeight) als auch Bitmap-Parameter (sx,sy,sw, undsh) gleichzeitig festgelegt werden können — bisher führte das Festlegen beider zur Rückgabe des unskalierten Quell-Bitmaps. (Firefox Bug 2010125). -
Die Reporting API wird jetzt zum Melden von Content Security Policy (CSP) und
Integrity-PolicyVerletzungen unterstützt. Diese API erlaubtCSPViolationReportundIntegrityViolationReportObjekte auf fehlerhaften Seiten zu berichten, indem einReportingObserververwendet wird (Berichte können nach demtype-Eigentum gefiltert 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 — Endpunktnamen und entsprechende URLs müssen zuerst in denReporting-EndpointsoderReport-ToHTTP-Antwortheadern definiert werden. (Firefox Bug 1976074, Firefox Bug 2008916). -
Bis Firefox 148 erstellte
structuredClone.call(iframe.contentWindow)Objekte inkorrekt im Real des Anrufers statt im iframe-Real. Die Implementierung instanziiert nun Objekte imthis-Real, sodass das Verhalten der Methode näher an der Spezifikation liegt.
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 programmgesteuerte Öffnen des Browser-Pickers für ein<datalist>, wenn dies durch eine Benutzerinteraktion ausgelöst wird (Firefox Bug 1998668). -
Die Schnittstelle
CloseWatcherwird jetzt unterstützt. Dies ermöglicht Entwicklern, Komponenten zu implementieren, die mit gerätenativen Mechanismen geschlossen werden können, wie z.B. die Esc-Taste auf Windows oder die Zurück-Taste auf Android, auf die gleiche Weise wie eingebaute Komponenten wie Dialogs und Popovers. (Firefox Bug 1966073). -
DOM-Methoden erlauben jetzt einen breiteren Bereich von Zeichen für Element- und Attributnamen. Zuvor waren DOM-Methoden weit restriktiver, aber jetzt erlauben sie den gleichen Satz von Zeichen 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 der Inhalte im Element streamt. Der Stream kann zum Beispiel als Quelle für eine WebRTCRTCPeerConnectionverwendet werden. Zuvor warcaptureStream()nur als nicht-standardisiertemozCaptureStream()Methode verfügbar. (Firefox Bug 2017708). -
MediaElementAudioSourceNodebeachtet nun die Lautstärke des Medienelements beim Erfassen von Audio für alle Arten von Quellen (wie in der Spezifikation gefordert). Zuvor beeinflusste das Einstellen der Lautstärke des Elements nicht die erfasste Audioausgabe fürMediaStreamQuellen. (Firefox Bug 2010427). -
Die Methode
HTMLMediaElement.mozCaptureStream()erfasst jetzt rohes Audio von der Quelle ohne Anwendung der Lautstärke des Medienelements, unabhängig vom Typ der Quelle, die das Medienelement abspielt (wie in der Spezifikation gefordert). 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 für sowohl das WebDriver BiDi als auch das klassische WebDriver-Protokoll, 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 sowohl das WebDriver BiDi als auch das klassische WebDriver-Protokoll, um eine
scrollAktion des Eingabequellentypswheelzu ermöglichen, die mehr als die visuellen Ansichtport-Dimensionen scrollt. (Firefox Bug 1962355).
WebDriver BiDi
- Unterstützung für die automatische Benutzeraufforderungsbehandlung hinzugefügt, die über Fähigkeiten mit dem
session.new-Kommando konfiguriert werden kann. (Firefox Bug 1905086). - Der Befehl
browser.setDownloadBehaviorwurde hinzugefügt, der es Kunden ermöglicht, Downloads zu erlauben oder zu verbieten und auch einen benutzerdefinierten Download-Ordner festzulegen. Dieses Verhalten kann pro Session oder pro Benutzerkontext konfiguriert werden. (Firefox Bug 1989022). - Die Ereignisse
script.realmCreatedundscript.realmDestroyedfür Arbeiter-Realms (für dedizierte, geteilte und Dienst-Arbeiter) hinzugefügt. (Firefox Bug 1936770). - Ein Problem behoben, bei dem die Ereignisse
browsingContext.userPromptOpenedundbrowsingContext.userPromptClosedfalsch die Kontext-ID des Top-Level-Kontextes anstatt der Kontext-ID des Iframes auf Android berichteten. (Firefox Bug 2007385). - Die Serialisierung für DOM-Knoten korrigiert, um das Exponieren von benutzerspezifischen Schattenwurzeln zu verhindern. (Firefox Bug 2016673).
- Die Logik zur Anwendung unterschiedlicher Einstellungen auf neue Durchsuchungskontexte aktualisiert, um sicherzustellen, dass beim Erstellen eines Durchsuchungskontextes mit dem
window.open-Kommando Emulationen, Ansichtport-Überschreibungen und Preload-Skripte vor der Rückkehr des Befehls angewendet werden. (Firefox Bug 1985997, Firefox Bug 2005546 und Firefox Bug 2005558).
Marionette
- Mehrere klassische WebDriver-Befehle verbessert, um
impliziteundpageLoad-Timeouts im Einklang mit dem Skript-Timeout zu handhaben, sodassnull-Werte die Timeouts deaktivieren können. (Firefox Bug 2008345).
Änderungen für Add-on-Entwickler
-
Fügt erste Unterstützung für 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 einschließen. (Firefox Bug 1993037)
- Einbeziehung der ID der geteilten Ansicht in
-
Unterstützt
tabIdals Parameter auf oberster Ebene inaction.isEnabledundbrowserAction.isEnabled. Diese Änderung sorgt für Kompatibilität mit der Chrome-Implementierung vonaction.isEnabled. (Firefox Bug 2013477) -
Ein Benutzer-Geste ist nicht mehr erforderlich, damit
action.openPopupundbrowserAction.openPopupein Popup öffnen. Diese Funktion war hinter derextensions.openPopupWithoutUserGesture.enabledPräferenz von Firefox 108 verfügbar. Diese Änderung vereinheitlicht das Verhalten von Firefox mit Chrome und Safari. (Firefox Bug 1799344) -
Wenn
windowIdinaction.openPopupoderbrowserAction.openPopupübergeben wird, muss das Fenster fokussiert (aktiv) sein, damit das Popup geöffnet werden kann. Zum Öffnen eines Popups in einem nicht fokussierten Fenster musswindows.update(windowId, { focused: true })zuerst aufgerufen werden. Diese Änderung passt das Firefox-Verhalten an das von Chrome an. (Firefox Bug 2011516) -
Die Implementierung von
structuredClonewurde geändert, damit Objekte imthis-Real statt im Real des Anrufers instanziiert werden. Aus Gründen der Rückwärtskompatibilität umfasst der globale Umfang der Inhalts-Skripte jetzt eine eigenestructuredClone-Methode, die diewindow.structuredCloneMethode überschattet. Weitere Informationen finden Sie unterstructuredClonein Sharing objects with page scripts. -
Die Fähigkeit von Erweiterungen, Code in ihren
moz-extension:Dokumenten dynamisch mittabs.executeScript,tabs.insertCSS,tabs.removeCSS,scripting.executeScript,scripting.insertCSSundscripting.removeCSSauszuführen, wird nicht mehr unterstützt. (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.onMessage-Listener im Skript des Dokuments registriert wird und dann eine Nachricht gesendet wird, um die Ausführung des benötigten Codes auszulösen. -
Der implizite CSS-Filter, der auf Page Action SVG-Icons in dunklen Themes angewendet wurde, ist in Nightly-Builds deaktiviert (Firefox Bug 2001318) und wird ab Version 152 in anderen Firefox-Editionen deaktiviert sein (Firefox Bug 2016509). Sie können Page Action SVG-Icons mit dem CSS-Filter in anderen Firefox-Editionen testen, indem Sie eine boolesche
about:config-Präferenz namensextensions.webextensions.pageActionIconDarkModeFilter.enablederstellen und diese auffalsesetzen.
Experimentelle Webfeatures
Diese Funktionen werden in Firefox 149 bereitgestellt, sind aber standardmäßig deaktiviert.
Um mit ihnen zu experimentieren, suchen Sie auf der about:config Seite nach der entsprechenden Präferenz und setzen Sie diese auf true.
Weitere solche Funktionen finden Sie auf der Experimentelle Funktionen Seite.
-
<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 vondata-*zu beziehen. (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,:stalled, und:volume-lockederlauben es Ihnen,<audio>und<video>Elemente basierend auf ihrem aktuellen Status zu stylen, wie z.B. abspielend 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-Regel unterstütztstyle()Abfragen. Dies ermöglicht es Ihnen, 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
to()Methode derCSSNumericValueSchnittstelle hinzugefügt, die die Umrechnung eines CSS-numerischen Wertes von einer Einheit in eine andere ermöglicht. (Firefox Bug 1278697). -
JPEG XL Bildunterstützung: Rust-basierter Decoder (nur Nightly):
image.jxl.enabledDer vorherige C++ JPEG XL Bilddekoder wurde durch eine neue, rust-basierte Implementierung ersetzt, die die
jxl-rsBibliothek verwendet. (Firefox Bug 1986393).