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 zu den Ä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. Popovers mit dem Wert hint schließen keine auto Popovers, wenn sie angezeigt werden, schließen jedoch andere Hint-Popovers. (Firefox-Bug 1867743).

MathML

  • Die CSS-Eigenschaft font-family: math wird jetzt unterstützt und standardmäßig auf <math>-Elemente angewendet. Dies gewährleistet, dass Websites eine geeignete Mathe-Schrift und/oder MathML verwenden können, ohne wissen zu müssen, welche Schriften 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 Echtzeitaufnahme des Inhalts im Element streamt. Der Stream kann beispielsweise als Quelle für eine WebRTC RTCPeerConnection verwendet werden. Zuvor war captureStream() nur als die nicht standardisierte Methode mozCaptureStream() verfügbar. (Firefox-Bug 2017708).

  • MediaElementAudioSourceNode beachtet jetzt die Lautstärke des Medien-Elements beim Aufnehmen von Audio für alle Arten von Quellen (wie von der Spezifikation gefordert). Zuvor hatte das Einstellen der Lautstärke des Elements keine Auswirkungen auf das aufgenommene Audio für MediaStream Quellen. (Firefox-Bug 2010427).

  • Die Methode HTMLMediaElement.mozCaptureStream() erfasst jetzt Roh-Audio aus der Quelle, ohne die Lautstärke des Medien-Elements anzuwenden, unabhängig von der Art der Quelle, die das Medien-Element abspielt (wie von der Spezifikation gefordert). Vor dieser Änderung beeinflusste die Lautstärke des Medien-Elements die Lautstärke des erfassten Streams. (Firefox-Bug 2010427).

WebDriver-Konformität (WebDriver BiDi, Marionette)

Allgemein

  • Aktualisierte die Screenshot-Implementierungen für das WebDriver BiDi und das klassische WebDriver-Protokoll, um korrekt einen Fehler zurückzugeben, wenn der angeforderte Screenshot-Bereich die maximal unterstützten Abmessungen überschreitet, anstatt ihn stillschweigend zu beschneiden. (Firefox-Bug 1994148).
  • Aktualisierte die Implementierung der Aktionen für das WebDriver BiDi und das klassische WebDriver-Protokoll, um eine scroll-Aktion des Eingabequellentyps wheel zuzulassen, die mehr als die Abmessungen des visuellen Viewports scrollt. (Firefox-Bug 1962355).

WebDriver BiDi

  • Unterstützung für die automatische Bearbeitung von Benutzeraufforderungen hinzugefügt, die über Fähigkeiten mit dem session.new-Befehl konfiguriert werden kann. (Firefox-Bug 1905086).
  • Der browser.setDownloadBehavior-Befehl wurde hinzugefügt, der es Clients ermöglicht, Downloads zuzulassen 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.realmCreated und script.realmDestroyed für Worker-Realms (für dedizierte, geteilte und Service-Worker) wurden hinzugefügt. (Firefox-Bug 1936770).
  • Ein Problem wurde behoben, bei dem die Ereignisse browsingContext.userPromptOpened und browsingContext.userPromptClosed fälschlicherweise die Kontext-ID des obersten Levels anstelle der Kontext-ID des iframes auf Android meldeten. (Firefox-Bug 2007385).
  • Die Serialisierung für DOM-Knoten wurde so behoben, dass keine User-Agent spezifischen Shadow-Roots mehr offengelegt werden. (Firefox-Bug 2016673).
  • Die Logik für das Anwenden verschiedener Einstellungen auf neue Browsing-Kontexte wurde aktualisiert, um sicherzustellen, dass im Fall der Erstellung eines Browsing-Kontexts mit dem window.open-Befehl Emulationen, Viewport-Überschreibungen und Preload-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 Script-Timeout zu handhaben, was null-Werte erlaubt, um die Timeouts zu deaktivieren. (Firefox-Bug 2008345).

Änderungen für Add-on-Entwickler

  • Fügt initiale Unterstützung für die geteilte Ansicht hinzu. Diese Unterstützung umfasst:
  • Unterstützung für tabId als Top-Level-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 mehr 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 bringt das Verhalten von Firefox mit Chrome und Safari in Einklang. (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 windows.update(windowId, { focused: true }) zuerst aufgerufen werden. Diese Änderung bringt das Firefox-Verhalten in Einklang mit Chrome. (Firefox-Bug 2011516)
  • Die Implementierung von structuredClone wurde geändert, um Objekte im this-Realm anstelle des Realms des Aufrufers zu instanziieren. Für die Abwärtskompatibilität enthält der globale Bereich von Inhaltsskripten jetzt eine eigene structuredClone-Methode, die die window.structuredClone-Methode überschattet. Für weitere Informationen siehe structuredClone in Teilen von Objekten mit 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 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 ein runtime.onMessage Listener im Skript des Dokuments registriert und dann eine Nachricht gesendet wird, um die Ausführung des erforderlichen Codes auszulösen.
  • 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-Ausgaben ab Version 152 deaktiviert (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 namens extensions.webextensions.pageActionIconDarkModeFilter.enabled erstellen und auf false setzen.

Experimentelle Web-Funktionen

Diese Funktionen werden in Firefox 149 ausgeliefert, sind jedoch standardmäßig deaktiviert. Um mit ihnen zu experimentieren, suchen Sie die entsprechenden Einstellungen 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 der attr() CSS-Funktion: layout.css.attr.enabled

    Die attr() CSS-Funktion unterstützt jetzt <attr-type> Werte. Dadurch können Sie spezifizieren, wie ein Attributwert in einen CSS-Wert geparst wird und diese direkt von data-* Attributen nehmen. (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 statt nur zwei. Dies ermöglicht es, viele Farben zu mischen und die Prozentsätze von jeder festzulegen. (Firefox-Bug 2007772).

  • Medienbasierte Pseudo-Klassen: dom.media.pseudo-classes.enabled

    Die medienbasierten Pseudo-Klassen :buffering, :muted, :paused, :playing, :seeking, :stalled, und :volume-locked ermöglichen es, <audio> und <video> Elemente basierend auf ihrem aktuellen Zustand zu stylen, wie spielen oder pausiert. (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-rule unterstützt style() Abfragen. Dies ermöglicht, 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).

  • Wert base-select für die CSS-Eigenschaft appearance: dom.select.customizable_select.enabled und layout.css.appearance-base.enabled

    Der base-select Wert für die appearance CSS-Eigenschaft, die nur für das <select> Element und das ::picker(select) Pseudo-Element relevant ist, ermöglicht es, sie vollständig zu stylen. Derzeit wird nur das Styling des <select>-Elements unterstützt. Das Styling des ::picker(select) Pseudo-Elements wird in zukünftigen Versionen hinzugefügt. Diese Funktion ist Teil der Arbeit an Anpassbaren Select-Elementen. Zwei Einstellungen müssen aktiviert sein, um sie zu verwenden. (Firefox-Bug 1974787).

  • CSS Typed Object Model Level 1: layout.css.typed-om.enabled

    Die Implementierung der CSS Typed Object Model Level 1 Spezifikation ist im Gange. In dieser Version wurde die Unterstützung für die Methode to() der Schnittstelle CSSNumericValue hinzugefügt, die die Umwandlung eines CSS-numerischen Wertes von einer Einheit in eine andere erlaubt. (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).