Firefox 155 – Versionshinweise für Entwickler
Dieser Artikel informiert über die Änderungen in Firefox 155, die Entwickler betreffen. Firefox 155 wurde am 1. September 2026 veröffentlicht.
Änderungen für Webentwickler
>Entwicklertools
- Die Schaltflächen zur Emulation von Medienmerkmalen in der Regelansicht sind jetzt in einem eigenen Emulationsbereich zusammengefasst, der über die Schaltfläche
@geöffnet wird. Der Bereich ermöglicht außerdem die Emulation des Medienmerkmalsprefers-reduced-motion. (Firefox-Bug 1692434 und Firefox-Bug 1477920). - Der JSON-Viewer öffnet jetzt JSON-Lines-Dokumente (NDJSON), die mit
application/jsonl,application/jsonlines,application/x-ndjsonodertext/jsonlausgeliefert werden oder die Dateiendung.jsonlhaben. Jede Zeile wird einzeln geparst und als eigener aufklappbarer Eintrag mit ihrer Zeilennummer angezeigt. Ein Parsing-Fehler in einer Zeile wird direkt an dieser Stelle gemeldet, ohne sich auf den Rest des Dokuments auszuwirken. (Firefox-Bug 2055774, Firefox-Bug 2060972 und Firefox-Bug 2060529). - Zum Deaktivieren von Breakpoints im Debugger wurde ein Tastenkürzel hinzugefügt. (Firefox-Bug 1642578).
HTML
Keine nennenswerten Änderungen.
CSS
-
Die CSS-Funktion
attr()kann jetzt in jeder CSS-Eigenschaft verwendet werden, nicht mehr nur incontent. So lässt sich die Gestaltung ohne JavaScript anhand von HTML-Attributen steuern, beispielsweise mitwidth: attr(data-size px).<attr-type>-Werte (einschließlich Einheitenbezeichnern wiepxunds), Fallback-Werte und Attribute mit Namensraum werden jetzt unterstützt. Sie könnenattr()jetzt auch innerhalb von Container-Style-Abfragen verwenden. (Firefox-Bug 2038940). -
Die CSS-Funktion
progress()wird jetzt unterstützt. Sie gibt einen<number>-Wert zurück, der angibt, wie weit ein Wert zwischen einem Anfangs- und einem Endwert fortgeschritten ist. Das Ergebnis kann anschließend zur Berechnung anderer Werte verwendet werden, beispielsweise inopacity: calc(0.4 + progress(100cqw, 300px, 900px) * 0.6). (Firefox-Bug 2047345). -
Die CSS-Funktion
alpha()wird jetzt unterstützt. Sie nimmt eine Farbe entgegen und gibt diese mit einem anderen Alpha-Wert (Transparenzwert) zurück, ohne die übrigen Farbkomponenten zu verändern. Innerhalb der Funktion können Sie mit dem Schlüsselwortalphaauf den Alphakanal der ursprünglichen Farbe verweisen, beispielsweise mitalpha(from var(--brand) / calc(alpha * 0.5)). (Firefox-Bug 2059738 und Firefox-Bug 2059988). -
Die CSS-Eigenschaft
font-widthwird jetzt unterstützt, ebenso derfont-width-Deskriptor für@font-faceund die EigenschaftCSSStyleDeclaration.fontWidth.font-widthist der neue Name für die Eigenschaftfont-stretch, die als veralteter Alias weiterhin funktioniert. Beachten Sie, dass beim Auflisten berechneter Styles jetztfont-widthstattfont-stretchzurückgegeben wird. (Firefox-Bug 1911075). -
Die in Firefox 153 eingeführte teilweise Unterstützung für das nicht standardisierte Pseudoelement
::-webkit-scrollbarist jetzt auf eine kleine Liste von Websites beschränkt, statt für das gesamte Web zu gelten. Firefox verwaltet diese Liste in der Einstellunglayout.css.fake-webkit-scrollbar.enabled-domains. Die Domain des Dokuments wird mit den Einträgen der Liste abgeglichen. Wenn sie mit keinem Eintrag übereinstimmt, gibt@supports selector(::-webkit-scrollbar)falsezurück.Diese Einschränkung nimmt die Änderung aus Firefox 153 zurück, mit der die teilweise Unterstützung für
::-webkit-scrollbarauf allen Websites eingeführt wurde und die auf manchen Websites zu fehlerhaften Scrollleisten führte. Diese Websites nutzten zur Gestaltung weitere::-webkit-scrollbar-*-Pseudoelemente, die Firefox nicht unterstützt. Firefox berücksichtigt nurdisplay: none, wodurch die Scrollleiste ausgeblendet wird, sowie einenwidth- oderheight-Wert ungleich null, wodurch Overlay-Scrollleisten für den betreffenden Scroll-Container deaktiviert werden.Verwenden Sie zur Gestaltung von Scrollleisten in Firefox die standardisierten Eigenschaften
scrollbar-colorundscrollbar-width. (Firefox-Bug 2061547).
JavaScript
- Die statischen Methoden
Promise.allKeyed()undPromise.allSettledKeyed()werden jetzt gemäß dem TC39-Vorschlag für Await Dictionaries unterstützt. Sie verhalten sich wiePromise.all()beziehungsweisePromise.allSettled(), nehmen jedoch statt eines Iterable ein Objekt mit Promises entgegen. Sie werden mit einem Objekt mit denselben Schlüsseln erfüllt, sodass Ergebnisse über ihren Namen statt über ihre Position gelesen werden können. (Firefox-Bug 2057270). - Ein Modul, dessen Laden aufgrund eines Netzwerkfehlers oder eines falschen MIME-Typs fehlschlägt, wird nicht mehr als fehlgeschlagen zwischengespeichert. Dadurch kann ein erneuter Import desselben Modulspezifizierers erfolgreich sein, sobald der Server wieder funktioniert.
Dies gilt für JavaScript-, JSON-, CSS- und Textmodule, die statisch oder per dynamischem Import geladen werden, sowohl in Fenstern als auch in Workern.
Außerdem löst
<link rel="modulepreload">für Module, die bereits abgerufen wurden oder noch abgerufen werden, jetzt das Ereignisloadstatterroraus. Ein Modulskript wird jetzt auch dann geladen, wenn ein vorherigesmodulepreloadderselben URL bei der Integritätsprüfung fehlgeschlagen ist. (Firefox-Bug 2055211 und Firefox-Bug 2052949).
HTTP
- Firefox verwendet beim Verbindungsaufbau jetzt Happy Eyeballs Version 3. Dabei werden IPv6- und IPv4-Adressen parallel ausprobiert, damit eine nicht erreichbare Adressfamilie den Verbindungsaufbau nicht verzögert. Beachten Sie, dass dies derzeit nur auf einigen Plattformen unterstützt wird. (Firefox-Bug 2062892).
- Die Versionsaushandlung für QUIC wird jetzt unterstützt. Dadurch können HTTP/3-Verbindungen QUIC Version 2 aushandeln. (Firefox-Bug 2059947).
APIs
- Mehrere Funktionen der WebTransport API werden jetzt unterstützt:
- Mit Sendegruppen können Sie Streams gruppieren, die sich Bandbreite teilen sollen, und Streams innerhalb einer Gruppe relativ zueinander priorisieren.
Sie können eine Gruppe mit
WebTransport.createSendGroup()erstellen. Übergeben Sie anschließend die zurückgegebeneWebTransportSendGroupüber die OptionsendGroupanWebTransport.createBidirectionalStream()oderWebTransport.createUnidirectionalStream(). (Firefox-Bug 2007165). - Die Methode
WebTransport.exportKeyingMaterial()leitet für ein bestimmtes Label und einen bestimmten Kontext Schlüsselmaterial aus der zugrunde liegenden TLS-Verbindung ab, sodass beide Endpunkte dasselbe gemeinsame Geheimnis erhalten können. Damit kann beispielsweise ein Handshake auf Anwendungsebene MITM-Angriffe erkennen, wenn eine Anwendung eine Verbindung zu einem Peer herstellt, der nur ein selbstsigniertes Zertifikat besitzt. (Firefox-Bug 2007200). - Die Methode
WebTransportDatagramDuplexStream.createWritable()gibt einenWebTransportDatagramsWritable-Stream zum Senden von Datagrammen zurück. Über dessen EigenschaftensendGroupundsendOrderlässt sich der Stream gegenüber anderen Sendern priorisieren. (Firefox-Bug 2007174). - Der Konstruktor
WebTransport()akzeptiert eine Optionprotocols, die die vom Client unterstützten Anwendungsprotokolle auflistet. Das vom Server ausgewählte Protokoll wird, sofern eines ausgewählt wurde, in der EigenschaftWebTransport.protocolzurückgegeben, wenn die Verbindung hergestellt ist und das PromiseWebTransport.readyerfüllt wird. (Firefox-Bug 2007150). - Die Eigenschaft
WebTransport.drainingzeigt an, wann der Server den Client aufgefordert hat, die Sitzung geordnet zu beenden. (Firefox-Bug 2007160).
- Mit Sendegruppen können Sie Streams gruppieren, die sich Bandbreite teilen sollen, und Streams innerhalb einer Gruppe relativ zueinander priorisieren.
Sie können eine Gruppe mit
- Die WebGPU API unterstützt auf Desktop-Systemen jetzt das Feature
dual-source-blending, das überGPUAdapter.requestDevice()angefordert werden kann. Dadurch könnensrc1,one-minus-src1,src1-alphaundone-minus-src1-alphain den EigenschaftensrcFactorunddstFactorvoncreateRenderPipeline()undcreateRenderPipelineAsync()angegeben werden. Die WGSL-Erweiterungdual_source_blendingwird ebenfalls unterstützt. (Firefox-Bug 1924328).
DOM
- Das Interface
SVGAElementimplementiert jetzt das MixinHyperlinkElementUtils. Dadurch stellen SVG-Elemente<a>dieselben Eigenschaften für URL-Bestandteile bereit wie HTML-Elemente<a>:protocol,username,password,host,hostname,port,pathname,searchundhash. Auch die schreibgeschützte Eigenschaftoriginwird bereitgestellt. (Firefox-Bug 2058578). - Die Interfaces
SVGNumberList,SVGPointList,SVGStringListundSVGTransformListunterstützen jetzt indizierte Setter. Das bedeutet, dass Sie einen Listeneintrag mit der Klammernotation, etwatransformList[0] = newTransform, ersetzen können, stattreplaceItem()aufzurufen. Das InterfaceSVGLengthListunterstützt indizierte Setter bereits. (Firefox-Bug 2059426). - Die Methode
SVGGraphicsElement.getBBox()berücksichtigt jetzt ihr Argumentoptionsmit den Eigenschaftenfill,stroke,markersundclipped. Dadurch können Sie ein umschließendes Rechteck abrufen, das auch die auf ein Element angewendete Kontur, Marker und Beschneidung berücksichtigt, statt nur dessen Füllgeometrie. (Firefox-Bug 2060873). - Nicht gerenderte Elemente, beispielsweise innerhalb von
<mask>,<clipPath>,<marker>,<symbol>und<defs>, geben überElement.getBoundingClientRect()jetzt ein leeres Rechteck und überElement.getClientRects()eine leere Liste zurück, statt ein Rechteck für einen Bereich zu melden, der nie gezeichnet wurde. (Firefox-Bug 2061646).
Medien, WebRTC und Web Audio
- Das Ereignis
error, das für einRTCDataChannel-Objekt ausgelöst wird, kann in seiner Eigenschafterror.errorDetailjetztsctp-failuremelden, wenn der Transport aufgrund eines Fehlers geschlossen wird. Außerdem stehenRTCErrorundRTCErrorEventjetzt in Dedicated Workern zur Verfügung (diese Verfügbarkeit ist noch nicht in der Spezifikation festgelegt). (Firefox-Bug 1814460). - Die Eigenschaft
RTCPeerConnection.sctpgibt jetzt zu den in der Spezifikation vorgeschriebenen Zeitpunkten einRTCSctpTransportzurück, auch im Signalisierungszustandhave-remote-offer, in dem sie zuvornullzurückgab. Der Transport erreicht jetzt außerdem die Zuständeconnectedundclosed, und seine EigenschaftenmaxChannelsundmaxMessageSizewerden korrekt befüllt. (Firefox-Bug 2019361 und Firefox-Bug 2056412). - Zwei Byte lange RTP-Header-Erweiterungen werden jetzt unterstützt. Dadurch können Header-Erweiterungen mit einer ID von 15 oder höher ausgehandelt werden, statt einen
OperationErrorauszulösen. (Firefox-Bug 2014357). - Die Eigenschaft
selectedCandidatePairChangeswird jetzt inRTCTransportStatsgemeldet. (Firefox-Bug 2055911). - Die von
RTCPeerConnection.getStats()zurückgegebenentransport-Statistiken sind jetzt auch vor der Aushandlung korrekt, also nachsetLocalDescription(), aber bevor eine Remote Description festgelegt wurde. Die EigenschaftdtlsRolewird jetzt alsunknowngemeldet, bis beim DTLS-Handshake eine Rolle ausgewählt wird; zuvor wurde sie überhaupt nicht gemeldet (Firefox-Bug 2053296). Die EigenschafticeStatebeginnt jetzt mitnewstatt mitchecking, was fälschlicherweise anzeigte, dass bereits Verbindungsprüfungen liefen (Firefox-Bug 2053297).
WebAssembly
- Die Binärformat-Erweiterung compact import section wird jetzt unterstützt. Sie verkleinert Module mit vielen
import-Anweisungen. (Firefox-Bug 2062344). - Der Vorschlag wide arithmetic wird jetzt unterstützt und ergänzt die Anweisungen
i64.add128,i64.sub128,i64.mul_wide_sundi64.mul_wide_u. Sie erzeugen 128-Bit-Ergebnisse aus 64-Bit-Operanden. Zuvor musste dies in zu WebAssembly kompiliertem Code emuliert werden, etwa in Bibliotheken für große Ganzzahlen und Kryptografie. (Firefox-Bug 2062374).
WebDriver-Konformität (WebDriver BiDi, Marionette)
Allgemein
- Das Download-Panel wurde deaktiviert, damit das aktuelle Dokument beim Beginn eines Downloads nicht den Fokus verliert. (Firefox-Bug 2035439).
- Die Actions API wurde korrigiert, sodass beim Doppelklicken mit gedrückter
Ctrl-Taste auf anderen Plattformen als macOS das Ereignisdblclickausgelöst wird. (Firefox-Bug 2058556).
WebDriver BiDi
- Das Mozilla-spezifische Modul
moz:debuggingwurde so aktualisiert, dass es nicht mehr dieselbe API für verschachtelte Ereignisschleifen wie DevTools verwendet. Dadurch werden Konflikte bei der parallelen Nutzung von WebDriver BiDi und DevTools vermieden. (Firefox-Bug 2041335). - Ein Fehler wurde behoben, durch den der Befehl
browsingContext.reloadbei Frames fehlschlug. (Firefox-Bug 2030909). - Die Unterstützung für das Argument
contextsim Befehlsession.unsubscribewurde entfernt. Clients können Abonnements künftig nur noch über den Ereignisnamen oder die Abonnement-ID beenden. (Firefox-Bug 1988723).
Experimentelle Webfunktionen
Diese Funktionen sind in Firefox 155 enthalten, aber standardmäßig deaktiviert.
Wenn Sie sie ausprobieren möchten, suchen Sie auf der Seite about:config nach der entsprechenden Einstellung und setzen Sie sie auf true.
Weitere solche Funktionen finden Sie auf der Seite Experimentelle Funktionen.
-
Scrollgesteuerte Animationen:
layout.css.scroll-driven-animations.enabledMit scrollgesteuerten Animationen hängt der Fortschritt einer Animation statt von der Zeit von der Scrollposition eines Scroll-Containers oder von der Position eines Elements innerhalb seines Scroll-Containers ab. Diese Einstellung umfasst die Eigenschaften
scroll-timelineundview-timelinesowie ihre Langformen, einschließlich der Eigenschaftview-timeline-inset, und außerdem die funktionalen Notationenscroll()undview(). In dieser Version wurde die Langformview-timeline-insetzur Kurzformview-timelinehinzugefügt. (Firefox-Bug 2046602). -
CSS Typed Object Model Level 1:
layout.css.typed-om.enabledDie CSS Typed Object Model API stellt CSS-Werte als typisierte JavaScript-Objekte statt als Zeichenfolgen bereit. Das vereinfacht die Bearbeitung von CSS per Skript. (Firefox-Bug 1278697).
-
Unterstützungsabfragen mit
at-rule():layout.css.supports.at-rule.enabledMit der Funktion
at-rule()innerhalb der At-Regel@supportskönnen Sie prüfen, ob der Browser eine bestimmte CSS-At-Regel unterstützt, beispielsweise mit@supports at-rule(@scope). (Firefox-Bug 2060754). -
Audio Session API:
dom.audio_session.enabledMit der Audio Session API kann eine Website festlegen, wie sich ihre Audiowiedergabe gegenüber anderen auf dem Gerät abgespielten Audiosignalen verhalten soll, etwa ob sie mit ihnen gemischt, vorübergehend abgesenkt oder unterbrochen werden sollen. (Firefox-Bug 2055710).
-
CSS-Grundformen erlauben die Schlüsselwörter
farthest-cornerundclosest-corner:layout.css.ellipse-corners.enabledDie Schlüsselwörter
farthest-cornerundclosest-cornerkönnen verwendet werden, um die Radien der CSS-Grundformenellipse()undcircle()anzugeben. (Firefox-Bug 2037673). -
Inhalte mit
line-clampkürzen:layout.css.line-clamp.enabledDie CSS-Eigenschaft
line-clampfunktioniert ohne das Herstellerpräfix-webkit-und unterstützt jetzt auch das Schlüsselwortno-ellipsissowie<string>-Werte, mit denen festgelegt wird, was an der Kürzungsstelle angezeigt wird. (Firefox-Bug 2042999 und Firefox-Bug 2043000). -
Geltungsbereichsgebundene Registries für Custom Elements:
dom.scoped-custom-element-registries.enabledEine
CustomElementRegistrykann erstellt und anElement.attachShadow()übergeben werden. So kann eine Shadow Root Custom Elements definieren, die nicht mit den in der globalen Registry definierten Elementen kollidieren. (Firefox-Bug 2018900). Diese Version ergänzt außerdem das globale Attributcustomelementregistry, mit dem sich im Markup auswählen lässt, welcher Registry ein Element zugeordnet ist. (Firefox-Bug 2029965). -
Puffergrenzen-Assertions in regulären Ausdrücken: (nur Nightly)
javascript.options.experimental.regexp_buffer_boundariesDer TC39-Vorschlag zu RegExp-Puffergrenzen ergänzt reguläre Ausdrücke um die Assertions
\A,\zund\Z. Diese entsprechen dem Anfang oder Ende der gesamten Eingabe, unabhängig davon, ob das Flagmgesetzt ist. (Firefox-Bug 2047706). -
Wert
border-areafürbackground-clip:layout.css.background-clip.border-area.enabledDer Wert
border-areader CSS-Eigenschaftbackground-clipbeschneidet den Hintergrund auf den vom Rand des Elements gezeichneten Bereich. Dadurch kann ein Farbverlauf oder Bild als Rand verwendet werden. (Firefox-Bug 2045230). -
view-timelineumfasstview-timeline-inset:layout.css.scroll-driven-animations.enabledDie Kurzform-Eigenschaft
view-timelineunterstützt jetzt die Eigenschaftview-timeline-inset. Mit der Kurzform können Sie einen Versatz nach innen oder außen am Anfang und/oder Ende angeben, um die Position der View-Progress-Timeline anzupassen. (Firefox-Bug 2046602). -
Das Interface
MathMLAnchorElement:mathml.a.element.enabledDas MathML-Element
<a>wird im DOM jetzt korrekt durch das InterfaceMathMLAnchorElementstatt durch das allgemeine InterfaceMathMLElementrepräsentiert. (Firefox-Bug 2059312). -
Namen für
timeline-scopesind jetzt standardmäßig global:layout.css.scroll-driven-animations.enabledDas Standardverhalten für den Geltungsbereich benannter Timelines wurde auf global geändert. Mit der CSS-Eigenschaft
timeline-scopeund dem Wert vonscroll-timeline-nameoderview-timeline-namelässt sich der Geltungsbereich auf Elemente und ihre Unterelemente beschränken (Firefox-Bug 2024012). -
<script type="speculationrules">:dom.speculation_rules.enabledDie nur in Nightly aktivierte Speculation Rules API bietet einen Mechanismus, um die Leistung künftiger Navigationen zu verbessern. Dazu wird anhand von Faktoren wie dem Nutzerverhalten gegenüber Links festgelegt, welche Ressourcen vorgeladen oder vorab gerendert werden sollen.
Die anfängliche Unterstützung umfasste nur
prefetch. Ressourcen wurden dabei über eineurls-Liste und die Prioritätsstufeimmediateangegeben. Dazu gehört auch die Unterstützung für den Wertnavigational-prefetchder EigenschaftPerformanceResourceTiming.deliveryType. (Firefox-Bug 2041381).