Firefox-155-Versionshinweise für Entwickler (Stable)
Dieser Artikel enthält Informationen zu den Änderungen in Firefox 155, die Entwickler betreffen. Firefox 155 wurde am 1. September 2026 veröffentlicht.
Änderungen für Webentwickler
>Entwicklerwerkzeuge
- Die Schaltflächen zur Emulation von Medien-Features in der Rules-Ansicht sind jetzt in einem eigenen Emulationspanel zusammengefasst, das über die Schaltfläche
@geöffnet wird. Das Panel fügt außerdem die Emulation des Medien-Featuresprefers-reduced-motionhinzu. (Firefox-Bug 1692434 und Firefox-Bug 1477920). - Der JSON Viewer öffnet jetzt JSON Lines-Dokumente (NDJSON), die als
application/jsonl,application/jsonlines,application/x-ndjsonodertext/jsonlbereitgestellt werden oder die Dateierweiterung.jsonlhaben. Jede Zeile wird separat in einen eigenen einklappbaren Eintrag geparst, der mit der Zeilennummer gekennzeichnet ist, aus der sie stammt. Eine Zeile, die nicht geparst werden kann, wird inline gemeldet, ohne den Rest des Dokuments zu beeinträchtigen. (Firefox-Bug 2055774, Firefox-Bug 2060972 und Firefox-Bug 2060529). - Ein Tastaturkürzel zum Deaktivieren von Breakpoints im Debugger wurde hinzugefügt. (Firefox-Bug 1642578).
HTML
Keine nennenswerten Änderungen.
CSS
-
Die CSS-Funktion
attr()kann jetzt in jeder CSS-Eigenschaft verwendet werden, statt nur incontent. Dadurch können Sie das Styling über HTML-Attribute steuern, etwa mitwidth: attr(data-size px), ohne JavaScript zu verwenden. Werte des Typs<attr-type>(einschließlich Einheitenbezeichnern wiepxunds), Fallback-Werte und namespaced attributes werden jetzt unterstützt. Sie könnenattr()jetzt außerdem innerhalb von Container-Style-Queries verwenden. (Firefox-Bug 2038940). -
Die CSS-Funktion
progress()wird jetzt unterstützt. Sie gibt eine<number>zurück, die angibt, wie weit ein Wert zwischen einem Start- und einem Endwert fortgeschritten ist. Das Ergebnis kann anschließend zur Berechnung anderer Werte verwendet werden, beispielsweiseopacity: calc(0.4 + progress(100cqw, 300px, 900px) * 0.6). (Firefox-Bug 2047345). -
Die CSS-Funktion
alpha()wird jetzt unterstützt. Sie ermöglicht es Ihnen, eine Farbe zu übergeben und die Farbe mit einem anderen Alpha-Wert (Transparenz) zurückzuerhalten, während die anderen Komponenten der Farbe unverändert bleiben. Innerhalb der Funktion können Sie das Schlüsselwortalphaverwenden, um auf den Alpha-Kanal der ursprünglichen Farbe zu verweisen, beispielsweisealpha(from var(--brand) / calc(alpha * 0.5)). (Firefox-Bug 2059738 und Firefox-Bug 2059988). -
Die CSS-Eigenschaft
font-widthwird jetzt unterstützt, zusammen mit demfont-width-Deskriptor von@font-faceund der EigenschaftCSSStyleDeclaration.fontWidth. Dies ist der neue Name für die Eigenschaftfont-stretch, die weiterhin als Legacy-Alias funktioniert. Beachten Sie, dass die Aufzählung berechneter Styles jetztfont-widthstattfont-stretchzurückgibt. (Firefox-Bug 1911075). -
Die teilweise Unterstützung des nicht standardmäßigen Pseudo-Elements
::-webkit-scrollbar, die in Firefox 153 hinzugefügt wurde, ist 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 in der Liste abgeglichen; wenn sie mit keinem Eintrag übereinstimmt, gibt@supports selector(::-webkit-scrollbar)falsezurück.Diese Einschränkung macht die Änderung aus Firefox 153 rückgängig, die eine teilweise Unterstützung für
::-webkit-scrollbarauf allen Websites einführte und auf einigen Websites zu fehlerhaften Scrollbars führte. Diese Websites stützten sich auf Styling mit anderen::-webkit-scrollbar-*-Pseudo-Elementen, die Firefox nicht unterstützt. Die einzigen Deklarationen, auf die Firefox reagiert, sinddisplay: none, wodurch die Scrollbar ausgeblendet wird, sowie ein von null verschiedener Wert fürwidthoderheight, wodurch Overlay-Scrollbars für diesen Scroll-Container deaktiviert werden.Verwenden Sie die standardmäßigen Eigenschaften
scrollbar-colorundscrollbar-width, um Scrollbars in Firefox zu gestalten. (Firefox-Bug 2061547).
JavaScript
- Die statischen Methoden
Promise.allKeyed()undPromise.allSettledKeyed()werden jetzt unterstützt, wie im TC39-await-dictionary-Vorschlag definiert. Sie verhalten sich jeweils wiePromise.all()undPromise.allSettled(), nehmen jedoch ein Objekt mit Promises statt eines Iterables entgegen. Sie werden mit einem Objekt erfüllt, das dieselben Schlüssel besitzt, sodass Ergebnisse anhand ihres Namens statt ihrer Position gelesen werden können. (Firefox-Bug 2057270). - Ein Modul, das aufgrund eines Netzwerkfehlers oder eines falschen MIME-Typs nicht geladen werden kann, wird nicht länger als fehlgeschlagen gecacht. Daher kann das erneute Importieren desselben Modulspezifizierers erfolgreich sein, sobald der Server wieder verfügbar ist.
Dies gilt für JavaScript-, JSON-, CSS- und Text-Module, die entweder statisch oder mit dynamischem Import geladen werden, sowohl in Windows als auch in Workern.
In diesem Zusammenhang löst
<link rel="modulepreload">jetzt das Ereignisloadstatterrorfür Module aus, die bereits abgerufen wurden oder noch abgerufen werden. Außerdem wird ein Modulsystem-Skript jetzt geladen, selbst wenn ein vorherigesmodulepreloadderselben URL seine Integritätsprüfung nicht bestanden hat. (Firefox-Bug 2055211 und Firefox-Bug 2052949).
HTTP
- Firefox verwendet beim Herstellen von Verbindungen jetzt Happy Eyeballs Version 3. IPv6- und IPv4-Adressen werden parallel getestet, sodass der Verbindungsaufbau nicht durch eine nicht erreichbare Adressfamilie verzögert wird. Beachten Sie, dass dies derzeit nur auf einigen Plattformen unterstützt wird. (Firefox-Bug 2062892).
- Die Versionsaushandlung von QUIC wird jetzt unterstützt, wodurch HTTP/3-Verbindungen die QUIC-Version 2 aushandeln können. (Firefox-Bug 2059947).
APIs
- Mehrere Funktionen der WebTransport API werden jetzt unterstützt:
- Send-Gruppen ermöglichen es Ihnen, Streams zu gruppieren, die Bandbreite gemeinsam nutzen sollen, und Streams innerhalb einer Gruppe relativ zueinander zu priorisieren.
Sie können eine Gruppe mit
WebTransport.createSendGroup()erstellen. Übergeben Sie anschließend die zurückgegebeneWebTransportSendGroupin der OptionsendGroupvonWebTransport.createBidirectionalStream()oderWebTransport.createUnidirectionalStream(). (Firefox-Bug 2007165). - Die Methode
WebTransport.exportKeyingMaterial()leitet Schlüsselmaterial aus der zugrunde liegenden TLS-Verbindung für ein bestimmtes Label und einen bestimmten Kontext ab, sodass beide Endpunkte dasselbe gemeinsame Geheimnis erhalten können. Dies ermöglicht beispielsweise einem Handshake auf Anwendungsebene, MITM-Angriffe zu erkennen, wenn eine Anwendung eine Verbindung zu einem Peer herstellt, der nur über ein selbstsigniertes Zertifikat verfügt. (Firefox-Bug 2007200). - Die Methode
WebTransportDatagramDuplexStream.createWritable()gibt einenWebTransportDatagramsWritable-Stream zum Senden von Datagrammen zurück, mit den EigenschaftensendGroupundsendOrder, um ihn gegenüber anderen Sendern zu priorisieren. (Firefox-Bug 2007174). - Der Konstruktor
WebTransport()akzeptiert eine Optionprotocols, die die Anwendungsprotokolle auflistet, welche der Client unterstützt. Das vom Server ausgewählte Protokoll wird, falls vorhanden, in der EigenschaftWebTransport.protocolzurückgegeben, wenn die Verbindung hergestellt ist und das PromiseWebTransport.readyerfüllt wird. (Firefox-Bug 2007150). - Die Eigenschaft
WebTransport.drainingzeigt an, wenn der Server den Client aufgefordert hat, eine ordnungsgemäße Beendigung der Sitzung einzuleiten. (Firefox-Bug 2007160).
- Send-Gruppen ermöglichen es Ihnen, Streams zu gruppieren, die Bandbreite gemeinsam nutzen sollen, und Streams innerhalb einer Gruppe relativ zueinander zu priorisieren.
Sie können eine Gruppe mit
- Die WebGPU API unterstützt jetzt auf Desktop-Systemen das Feature
dual-source-blending, das inGPUAdapter.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. Daher stellen SVG-<a>-Elemente dieselben URL-Komponenteneigenschaften wie HTML-<a>-Elemente bereit:protocol,username,password,host,hostname,port,pathname,searchundhash. Die schreibgeschützte Eigenschaftoriginwird ebenfalls bereitgestellt. (Firefox-Bug 2058578). - Die Interfaces
SVGNumberList,SVGPointList,SVGStringListundSVGTransformListunterstützen jetzt indizierte Setter. Das bedeutet, dass Sie ein Element in der Liste mittels Klammernotation ersetzen können, etwa mittransformList[0] = newTransform, 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 eine Bounding Box erhalten, die die auf ein Element angewendeten Konturen, Markierungen und Beschneidungen berücksichtigt, statt nur dessen Füllgeometrie. (Firefox-Bug 2060873). - Elemente, die nicht gerendert werden, etwa solche innerhalb von
<mask>,<clipPath>,<marker>,<symbol>und<defs>, geben jetzt ein leeres Rechteck vonElement.getBoundingClientRect()sowie eine leere Liste vonElement.getClientRects()zurück, statt eine Box zu melden, die niemals gezeichnet wurde. (Firefox-Bug 2061646).
Media, WebRTC und Web Audio
- Das Ereignis
error, das auf einemRTCDataChannel-Objekt ausgelöst wird, kann jetztsctp-failurein seiner Eigenschafterror.errorDetailmelden, wenn der Transport aufgrund eines Fehlers geschlossen wird. Zusätzlich sindRTCErrorundRTCErrorEventjetzt in dedizierten Workern verfügbar (diese Bereitstellung ist noch nicht in der Spezifikation enthalten). (Firefox-Bug 1814460). - Die Eigenschaft
RTCPeerConnection.sctpgibt jetzt zu den von der Spezifikation geforderten Zeitpunkten einenRTCSctpTransportzurück, einschließlich im Signalisierungszustandhave-remote-offer, in dem sie zuvornullwar. Der Transport erreicht jetzt außerdem die Zuständeconnectedundclosed, und seine EigenschaftenmaxChannelsundmaxMessageSizewerden korrekt befüllt. (Firefox-Bug 2019361 und Firefox-Bug 2056412). - RTP-Header-Erweiterungen mit zwei Byte werden jetzt unterstützt, sodass Header-Erweiterungen mit einer ID von 15 oder höher ausgehandelt werden können, statt einen
OperationErrorzu verursachen. (Firefox-Bug 2014357). - Die Eigenschaft
selectedCandidatePairChangeswird jetzt inRTCTransportStatsgemeldet. (Firefox-Bug 2055911). - Die von
RTCPeerConnection.getStats()zurückgegebenentransport-Statistiken sind jetzt vor der Aushandlung korrekt, also nachsetLocalDescription(), aber bevor eine Remote-Beschreibung gesetzt wurde. Die EigenschaftdtlsRolewird jetzt alsunknowngemeldet, bis der DTLS-Handshake eine Rolle auswählt; zuvor wurde sie überhaupt nicht gemeldet (Firefox-Bug 2053296). Die EigenschafticeStatebeginnt jetzt mitnewstatt mitchecking, was zuvor fälschlicherweise anzeigte, dass Konnektivitätsprüfungen bereits liefen (Firefox-Bug 2053297).
WebAssembly
- Die Binärformat-Erweiterung compact import section wird jetzt unterstützt. Sie reduziert die Größe von Modulen, die viele
import-Anweisungen haben. (Firefox-Bug 2062344). - Der Vorschlag wide arithmetic wird jetzt unterstützt und fügt die Instruktionen
i64.add128,i64.sub128,i64.mul_wide_sundi64.mul_wide_uhinzu. Diese erzeugen 128-Bit-Ergebnisse aus 64-Bit-Operanden, die zuvor in zu WebAssembly kompiliertem Code emuliert werden mussten, etwa in Bignum- und Kryptografie-Bibliotheken. (Firefox-Bug 2062374).
WebDriver-Konformität (WebDriver BiDi, Marionette)
Allgemein
- Das Download-Panel wurde deaktiviert, damit das aktuelle Dokument nicht den Fokus verliert, wenn ein Download beginnt. (Firefox-Bug 2035439).
- Die Actions API wurde korrigiert, sodass das Ereignis
dblclickausgelöst wird, wenn auf Nicht-macOS-Plattformen bei gedrückterCtrl-Taste ein Doppelklick ausgeführt wird. (Firefox-Bug 2058556).
WebDriver BiDi
- Das Mozilla-spezifische Modul
moz:debuggingwurde aktualisiert, sodass es nicht länger auf dieselbe verschachtelte Event-Loop-API wie DevTools angewiesen ist. Dies verhindert Konflikte, wenn WebDriver BiDi und DevTools parallel verwendet werden. (Firefox-Bug 2041335). - Der Fehler wurde behoben, durch den der Befehl
browsingContext.reloadbei Verwendung für Frames fehlschlug. (Firefox-Bug 2030909). - Die Unterstützung für das Argument
contextsim Befehlsession.unsubscribewurde entfernt. Ab jetzt können Clients sich nur anhand des Ereignisnamens oder der Abonnement-ID abmelden. (Firefox-Bug 1988723).
Experimentelle Web-Features
Diese Features werden in Firefox 155 ausgeliefert, sind jedoch standardmäßig deaktiviert.
Um mit ihnen zu experimentieren, suchen Sie auf der Seite about:config nach der entsprechenden Einstellung und setzen Sie sie auf true.
Weitere solche Features finden Sie auf der Seite Experimentelle Features.
-
Scroll-gesteuerte Animationen:
layout.css.scroll-driven-animations.enabledScroll-gesteuerte Animationen ermöglichen es, dass eine Animation mit der Scrollposition eines Scrollers oder mit der Position eines Elements innerhalb seines Scrollers fortschreitet, statt mit der Zeit. Diese Einstellung umfasst die Eigenschaften
scroll-timelineundview-timelinesowie deren Longhands, einschließlich der Eigenschaftview-timeline-inset, sowie die funktionalen Notationenscroll()undview(). In dieser Version wurde das Longhandview-timeline-insetzum Shorthandview-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 Strings bereit, was die Manipulation von CSS aus Skripten vereinfacht. (Firefox-Bug 1278697).
-
at-rule()-Support-Queries:layout.css.supports.at-rule.enabledDie Funktion
at-rule()in der At-Regel@supportsermöglicht es Ihnen zu testen, ob der Browser eine bestimmte CSS-At-Regel unterstützt, beispielsweise@supports at-rule(@scope). (Firefox-Bug 2060754). -
Audio Session API:
dom.audio_session.enabledDie Audio Session API ermöglicht es einer Website zu deklarieren, wie ihr Audio im Verhältnis zu anderem auf dem Gerät wiedergegebenem Audio funktionieren soll, beispielsweise ob es mit anderem Audio gemischt, abgesenkt oder unterbrochen werden soll. (Firefox-Bug 2055710).
-
CSS-Basisformen erlauben die Schlüsselwörter
farthest-cornerundclosest-corner:layout.css.ellipse-corners.enabledDie Schlüsselwörter
farthest-cornerundclosest-cornerkönnen verwendet werden, um die Radienwerte der CSS-Basisformenellipse()undcircle()festzulegen. (Firefox-Bug 2037673). -
Inhalte mit
line-clampabschneiden:layout.css.line-clamp.enabledDie CSS-Eigenschaft
line-clampfunktioniert ohne das Herstellerpräfix-webkit-und unterstützt jetzt außerdem das Schlüsselwortno-ellipsissowie Werte des Typs<string>, um auszuwählen, was an der Stelle angezeigt wird, an der der Text abgeschnitten wird. (Firefox-Bug 2042999 und Firefox-Bug 2043000). -
Bereichsbezogene Registries für Custom Elements:
dom.scoped-custom-element-registries.enabledEin
CustomElementRegistrykann konstruiert und anElement.attachShadow()übergeben werden, sodass ein Shadow Root Custom Elements definieren kann, die nicht mit den in der globalen Registry definierten kollidieren. (Firefox-Bug 2018900). Diese Version fügt außerdem das globale Attributcustomelementregistryhinzu, um aus dem Markup die Registry auszuwählen, mit der ein Element verknüpft ist. (Firefox-Bug 2029965). -
Assertions für Puffergrenzen in regulären Ausdrücken: (nur Nightly)
javascript.options.experimental.regexp_buffer_boundariesDer TC39-Vorschlag für RegExp-Puffergrenzen fügt regulären Ausdrücken die Assertions
\A,\zund\Zhinzu. 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 Bereich, der vom Rahmen des Elements gezeichnet wird. Dadurch kann ein Farbverlauf oder Bild als Rahmen verwendet werden. (Firefox-Bug 2045230). -
view-timelineschließtview-timeline-insetein:layout.css.scroll-driven-animations.enabledDie Shorthand-Eigenschaft
view-timelineunterstützt jetzt die Eigenschaftview-timeline-inset. Mit dem Shorthand können Sie Anfangs- und/oder Endwerte für Insets (oder Outsets) 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 generische InterfaceMathMLElementrepräsentiert. (Firefox-Bug 2059312).