Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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 popover unterstützt jetzt den Wert hint. Popover mit dem Wert hint schließen keine auto Popover, wenn sie angezeigt werden, sondern schließen andere Hinweis-Popover. (Firefox-Bug 1867743).

MathML

  • Die CSS-Eigenschaft font-family: math wird 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

JavaScript

APIs

DOM

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 WebRTC RTCPeerConnection verwendet werden. Zuvor war captureStream() nur als nicht-standardisierte mozCaptureStream()-Methode verfügbar. (Firefox-Bug 2017708).

  • MediaElementAudioSourceNode respektiert 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ür MediaStream-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 Eingabequellentyps wheel zu 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.setDownloadBehavior 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 Benutzerkontext konfiguriert werden. (Firefox-Bug 1989022).
  • Die Ereignisse script.realmCreated und script.realmDestroyed für Worker-Realms (für dedizierte, gemeinsame und Service-Worker) hinzugefügt. (Firefox-Bug 1936770).
  • Ein Problem behoben, bei dem die Ereignisse browsingContext.userPromptOpened und browsingContext.userPromptClosed fä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 implicit und pageLoad-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:
  • Unterstützung für tabId als obersten Parameter in action.isEnabled und browserAction.isEnabled hinzugefügt. Diese Änderung sorgt für Kompatibilität mit der Chrome-Implementierung von action.isEnabled. (Firefox-Bug 2013477)
  • Eine Benutzeraktion ist nicht länger erforderlich, damit action.openPopup und browserAction.openPopup ein Popup öffnen. Diese Funktion war ab Firefox 108 hinter der Einstellung extensions.openPopupWithoutUserGesture.enabled verfügbar. Diese Änderung stimmt das Verhalten von Firefox mit Chrome und Safari ab. (Firefox-Bug 1799344)
  • Wenn windowId in action.openPopup oder browserAction.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 zuerst windows.update(windowId, { focused: true }) aufgerufen werden. Diese Änderung stimmt das Firefox-Verhalten mit Chrome ab. (Firefox-Bug 2011516)
  • Die Implementierung von structuredClone wurde geändert, um Objekte im this Realm statt im Realm des Aufrufers zu instanziieren. Aus Gründen der Rückwärtskompatibilität enthält der globale Bereich von Inhaltsskripten jetzt eine eigene structuredClone-Methode, die die window.structuredClone-Methode überschattet. Weitere Informationen finden Sie unter structuredClone in Sharing objects with page scripts (Firefox-Bug 2017797).
  • Die Fähigkeit von Erweiterungen, Code dynamisch in ihren moz-extension:-Dokumenten mit tabs.executeScript, tabs.insertCSS, tabs.removeCSS, scripting.executeScript, scripting.insertCSS und scripting.removeCSS auszufü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 einen runtime.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 namens extensions.webextensions.pageActionIconDarkModeFilter.enabled erstellen und sie auf false setzen.

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 der attr() CSS-Funktion: layout.css.attr.enabled

    Die 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 aus data-* zu übernehmen. (Firefox-Bug 1986631 & Firefox-Bug 1998245).

  • color-mix() akzeptiert mehrere Farbargumente: layout.css.color-mix-multi-color.enabled

    Die 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.enabled

    Die medienbasierten Pseudoklassen :buffering, :muted, :paused, :playing, :seeking, :stalled und :volume-locked ermö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 & colorspace Attribute in color Eingabeelementen (nur Nightly): dom.forms.html_color_picker.enabled

    Das HTML <input type="color">-Element unterstützt die Attribute alpha & colorspace. (Firefox-Bug 1919718).

  • @container style() Abfragen (Nightly): layout.css.style-queries.enabled

    Die @container CSS-At-Regel unterstützt style()-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.enabled

    Die CSS Typed Object Model Level 1-Spezifikation wird implementiert. In dieser Version wurde die Unterstützung für die Methode to() des CSSNumericValue-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.enabled

    Der vorherige C++ JPEG XL-Bilddecoder wurde durch eine neue Rust-basierte Implementierung ersetzt, die die jxl-rs-Bibliothek verwendet. (Firefox-Bug 1986393).