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 nun den Werthint. Popover mit dem Werthintschließen nichtauto-Popovers, wenn sie angezeigt werden, jedoch anderehint-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 Mathe-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 CSS-Eigenschaft
shape-outsideunterstützt nun die Funktionenxywh()undrect()als Werte. Diese Funktionen wurden bereits für die Eigenschaftenclip-pathundoffset-pathimplementiert und sind nun auch fürshape-outsideverfügbar. (Firefox-Bug 1983187). -
Die CSS-Eigenschaft
vertical-alignist jetzt eine Kurzschreibweise für die Eigenschaftenalignment-baseline,baseline-shiftundbaseline-source. (Firefox-Bug 1830771). -
Der Teil
<container-query>der Bedingung der@containerRegel ist nun optional. Dies ermöglicht das Abgleichen von Containern allein basierend auf ihren Namen. (Firefox-Bug 2016474).
JavaScript
- Der
"islamic-umalqura"Kalender wird jetzt vonIntlunterstützt. Diese Zeichenkette wird in der Liste der Kalender sein, die vonIntl.supportedValuesOf()zurückgegeben wird, und kann als Parameteroptions.calendarim KonstruktorDateTimeFormat()gesetzt werden. (Firefox-Bug 2011505).
APIs
-
Der Parameter
options.resizeQualitywird jetzt vonWindow.createImageBitmap()undWorkerGlobalScope.createImageBitmap()unterstützt. Zusätzlich erlauben die Methoden jetzt sowohl Resize-Optionen (options.resizeWidthoderoptions.resizeHeight) als auch Bild-Bitmap-Parameter (sx,sy,swundsh) gleichzeitig festzulegen — vorher führte das Setzen beider zu einer unskalierte Quell-Bitmap. (Firefox-Bug 2010125). -
Die Reporting API wird jetzt zum Melden von Verstößen gegen die Content Security Policy (CSP) und
Integrity-Policyunterstützt. Diese API ermöglicht es,CSPViolationReportundIntegrityViolationReportObjekte auf einer verletzenden Seite mit einemReportingObserverzu melden (Berichte können nach dertype-Eigenschaft gefiltert werden:"csp-violation"oder"integrity-violation"). Eine serialisierte Version der Bericht-Objekte kann auch an einen Reporting-Server gesendet werden, der im entsprechenden HTTP-Header angegeben ist — die Endpunktenamen und die entsprechenden 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)Objekte fälschlicherweise im Bereich des Anrufenden anstatt im Bereich des iframe. Die Implementierung instanziiert Objekte jetzt imthis-Bereich, sodass das Verhalten der Methode näher an der Spezifikation ist (Firefox-Bug 2017797).
DOM
-
Die Methode
HTMLSelectElement.showPicker()wird jetzt für eine Liste von<datalist>-Optionen unterstützt. Dies ermöglicht es, den Browser-Auswahldialog für ein<datalist>programmgesteuert zu starten, wenn durch Benutzerinteraktion ausgelöst (Firefox-Bug 1998668). -
Die Schnittstelle
CloseWatcherwird jetzt unterstützt. Dies ermöglicht Entwicklern, Komponenten zu implementieren, die über gerätenative Mechanismen geschlossen werden können, wie die Taste Esc auf Windows oder die Back-Taste auf Android, ähnlich wie eingebaute Komponenten wie Dialoge und Popovers. (Firefox-Bug 1966073). -
DOM-Methoden erlauben jetzt eine breitere Palette von Zeichen für Element- und Attributnamen. Früher waren DOM-Methoden weit 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).
Media, 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 zum Beispiel als Quelle für eine WebRTCRTCPeerConnectionverwendet werden. Früher warcaptureStream()nur als die nicht standardisierte MethodemozCaptureStream()verfügbar. (Firefox-Bug 2017708). -
MediaElementAudioSourceNodeberücksichtigt nun die Lautstärke des Media-Elements bei der Aufnahme von Audio für alle Arten von Quellen (wie in der Spezifikation gefordert). Zuvor hatte das Setzen der Lautstärke des Elements keinen Einfluss auf das aufgenommene Audio fürMediaStream-Quellen. (Firefox-Bug 2010427). -
Die Methode
HTMLMediaElement.mozCaptureStream()erfasst nun Rohdaten-Audio von der Quelle, ohne die Lautstärke des Media-Elements anzuwenden, unabhängig von der Art der Quelle, die das Media-Element abspielt (wie von der Spezifikation gefordert). Vor dieser Änderung beeinflusste die Lautstärke des Media-Elements die Lautstärke des erfassten Streams. (Firefox-Bug 2010427).
WebDriver-Konformität (WebDriver BiDi, Marionette)
Allgemein
- Aktualisierte die Screenshot-Implementierungen für sowohl die WebDriver BiDi als auch die klassische WebDriver-Protokolle, um korrekt einen Fehler zurückzugeben, wenn der angeforderte Screenshot-Bereich die maximal unterstützten Abmessungen überschreitet, anstatt ihn stillschweigend zu schneiden. (Firefox-Bug 1994148).
- Aktualisierte die Actions-Implementierung für sowohl die WebDriver BiDi als auch die klassische WebDriver-Protokolle, um eine
scroll-Aktion des Eingabequellentypswheelzu erlauben, die mehr als die visuellen Viewport-Dimensionen scrollt. (Firefox-Bug 1962355).
WebDriver BiDi
- Unterstützung für automatische Nutzeranfrage-Verarbeitung hinzugefügt, die durch Fähigkeiten mit dem
session.new-Befehl konfiguriert werden kann. (Firefox-Bug 1905086). - Der Befehl
browser.setDownloadBehaviorhinzugefügt, der es Clients erlaubt, Downloads zu erlauben oder zu verbieten und auch einen benutzerdefinierten Download-Ordner festzulegen. Dieses Verhalten kann pro Sitzung oder Benutzerkontexte konfiguriert werden. (Firefox-Bug 1989022). - Die Ereignisse
script.realmCreatedundscript.realmDestroyedfür Worker-Bereiche (für dedizierte, geteilte und Service-Worker) hinzugefügt. (Firefox-Bug 1936770). - Ein Problem behoben, bei dem die Ereignisse
browsingContext.userPromptOpenedundbrowsingContext.userPromptClosedfälschlicherweise die Kontext-ID des obersten Niveaus anstatt der Kontexte-ID des iframe auf Android berichteten. (Firefox-Bug 2007385). - Die Serialisierung für DOM-Knoten behoben, um nicht mehr benutzerspezifische Schattenwurzeln offenzulegen. (Firefox-Bug 2016673).
- Die Logik für das Anwenden verschiedener Einstellungen auf neue Browser-Kontexte aktualisiert, um sicherzustellen, dass bei der Erstellung eines Browser-Kontextes mit dem
window.open-Befehl Emulationen, Viewport-Überschreibungen 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 verbessert, um
implicitundpageLoad-Timeouts im Einklang mit dem Skript-Timeout zu behandeln, wobeinull-Werte die Timeouts deaktivieren. (Firefox-Bug 2008345).
Änderungen für Add-on-Entwickler
- Fügt anfängliche Unterstützung für die geteilte Ansicht hinzu. Diese Unterstützung umfasst:
- Einschluss der ID für die geteilte Ansicht in
tabs.query,tabs.onUpdated, undtabs.Tab - Dokumentation des Verhaltens, wenn
tabs.moveodertabs.removeTabs in einer geteilten Ansicht umfassen. (Firefox-Bug 1993037)
- Einschluss der ID für die geteilte Ansicht in
- Fügt Unterstützung für
tabIdals Spitzenwert-Parameter inaction.isEnabledundbrowserAction.isEnabledhinzu. Diese Änderung sorgt für Kompatibilität mit der Chrome-Implementierung vonaction.isEnabled. (Firefox-Bug 2013477) - Ein Benutzer-Gesten ist nicht mehr erforderlich, damit
action.openPopupundbrowserAction.openPopupein Popup öffnen. Diese Funktion war verfügbar hinter derextensions.openPopupWithoutUserGesture.enabledPräferenz ab Firefox 108. Diese Änderung gleicht Firefox' Verhalten 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 gleicht das Verhalten von Firefox an das von Chrome an. (Firefox-Bug 2011516) - Die Implementierung von
structuredClonewurde geändert, um Objekte imthis-Bereich anstatt im Bereich des Anrufers zu instanziieren. Zur Rückwärtskompatibilität umfasst der globale Umfang von Inhaltsskripten jetzt seine eigenestructuredCloneMethode, die diewindow.structuredCloneMethode überschattet. Für weitere Informationen siehestructuredCloneim Teilen von Objekten mit Seitenskripten (Firefox-Bug 2017797). - Die Fähigkeit von Erweiterungen, Code in ihren
moz-extension:Dokumenten dynamisch auszuführen mittabs.executeScript,tabs.insertCSS,tabs.removeCSS,scripting.executeScript,scripting.insertCSS, undscripting.removeCSSwird 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 Tab-Konsole aus. Diese Einschränkung gilt für alle Versionen von Firefox 152 und später. (Firefox-Bug 2015559) Als Alternative kann eine Erweiterung Code in ihren Dokumenten dynamisch durch Registrierung einesruntime.onMessage-Listeners im Skript des Dokuments ausführen, um dann eine Nachricht zu senden, die die Ausführung des erforderlichen Codes auslöst. - 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-Editionen ab Version 152 deaktiviert sein (Firefox-Bug 2016509). Sie können die SVG-Icons der Seiteneaktion mit dem deaktivierten CSS-Filter in anderen Firefox-Editionen testen, indem Sie eine boolesche
about:configPräferenz mit dem Namenextensions.webextensions.pageActionIconDarkModeFilter.enablederstellen und auffalsesetzen.
Experimentelle Web-Features
Diese Funktionen sind in Firefox 149 vorhanden, aber standardmäßig deaktiviert.
Um mit ihnen zu experimentieren, suchen Sie die entsprechende Einstellung auf der Seite about:config und stellen Sie sie auf true.
Weitere solche Funktionen finden Sie auf der Seite Experimentelle Features.
-
<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 verwenden. (Firefox-Bug 1986631 & Firefox-Bug 1998245). -
color-mix()akzeptiert mehrere Farbarbeiten:layout.css.color-mix-multi-color.enabledDie CSS-Funktion
color-mix()unterstützt jetzt mehrere<color>Werte, anstatt nur zwei. Dies ermöglicht Ihnen, viele Farben miteinander zu mischen und die Prozentsätze jeder festzulegen. (Firefox-Bug 2007772). -
Medienbasierte Pseudoklassen:
dom.media.pseudo-classes.enabledDie medienbasierten Pseudoklassen
:buffering,:muted,:paused,:playing,:seeking,:stalled, und:volume-lockedermöglichen es Ihnen,<audio>und<video>Elemente basierend auf ihrem aktuellen Zustand zu gestalten, wie beispielsweise abgespielt 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ütztalpha&colorspaceAttribute. (Firefox-Bug 1919718). -
@container style()Abfragen (Nightly):layout.css.style-queries.enabledDie
@containerCSS-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()derCSSNumericValueSchnittstelle hinzugefügt, die die Konvertierung eines CSS-Numerischen Wertes von einer Einheit zu einer anderen ermöglicht. (Firefox-Bug 1278697). -
JPEG XL Bilderunterstü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).