Firefox 128 für Entwickler
Dieser Artikel bietet Informationen über die Änderungen in Firefox 128, die Entwickler betreffen. Firefox 128 wurde am 9. Juli 2024 veröffentlicht.
Änderungen für Web-Entwickler
HTML
- Das
target
-Attribut des<base>
-Elements erlaubt jetzt keine ASCII-Zeilenumbrüche, Tabs oder das<
-Zeichen mehr und ändert den Wert in_blank
, wenn diese vorhanden sind. Dies verhindert hängende Markup-Injection-Angriffe, die ein nicht geschlossenestarget
-Attribut verwenden (Firefox-Bug 1835157).
CSS
- Relative Farbsyntax ist nun standardmäßig aktiviert. Relative Farbsyntax ermöglicht es, einen Farbwert relativ zu einer Ausgangsfarbe zu erstellen und in einem anderen Farbraum mithilfe von Farb-Funktionen zu ändern (Firefox-Bug 1900251).
- Die
content
-Eigenschaft unterstützt nun alternativen Text für Inhalte, die ein Bild enthalten. Der alternative Text wird dann dem Zugänglichkeits-Tree des Browsers zugänglich gemacht. (Siehe Firefox-Bug 1281158 und Firefox-Bug 1896047). - Der
syntax
-Deskriptor der@property
-At-Regel unterstützt jetzt den<string>
-Syntax-Komponenten-Namen. (Siehe Firefox-Bug 1846635).
Entfernungen
- Die Masonry-Layout-Eigenschaften
align-tracks
undjustify-tracks
wurden entfernt. Diese Eigenschaften waren nur in Firefox implementiert und wurden kürzlich aus der Spezifikation entfernt (Firefox-Bug 1900195).
JavaScript
- Resizable
ArrayBuffer
und growableSharedArrayBuffer
werden jetzt unterstützt, was erlaubt, die Größe von Buffern zu ändern, ohne einen neuen Buffer allokieren und Daten hinein kopieren zu müssen (Firefox-Bug 1884150). Die relevanten Methoden und Eigenschaften sind:- Vergrößern von
SharedArrayBuffer
mit der MethodeSharedArrayBuffer.prototype.grow()
. Die maximal zulässige Größe des Buffers wird mit dem Parameteroptions.maxByteLength
desSharedArrayBuffer()
-Konstruktors angegeben. Die EigenschaftenSharedArrayBuffer.prototype.growable
undSharedArrayBuffer.prototype.maxByteLength
zeigen an, ob der Buffer vergrößert werden kann und seine maximal zulässige Größe. - Resize von
ArrayBuffer
mit der MethodeArrayBuffer.prototype.resize()
. Die maximal zulässige Größe des Buffers wird mit dem Parameteroptions.maxByteLength
desArrayBuffer()
-Konstruktors angegeben. Die EigenschaftenArrayBuffer.prototype.resizable
undArrayBuffer.prototype.maxByteLength
zeigen an, ob der Buffer vergrößert werden kann und seine maximal zulässige Größe.
- Vergrößern von
HTTP
- Der HTTP-Header
Accept
in Standardanforderungen und Bildanforderungen enthält nun den MIME-Typimage/svg+xml
(Firefox-Bug 1711622). - Das RFC 9218: Extensible Prioritization Scheme for HTTP wird nun unterstützt, einschließlich des HTTP-Request- und -Response-Headers
Priority
, der es den Clients ermöglicht, einen Hinweis auf die erwartete relative Priorität für Ressourcen über eine Verbindung zu senden, sowie die HTTP/2- und HTTP/3-PRIORITY_UPDATE
-Frames, die es ermöglichen, die Priorität nach dem Senden des Headers zu ändern (Firefox-Bug 1865040).
APIs
RTCRtpReceiver.getParameters()
undRTCRtpSender.getParameters()
werden nun unterstützt und geben ein Objekt zurück, das die aktuell verwendeten Codecs für die Kodierung und Übertragung von Medien auf den Receiver- und Sender-Tracks beschreibt. (Firefox-Bug 1534687).Request.bytes()
undResponse.bytes()
werden nun als bequeme Möglichkeit unterstützt, einUint8Array
von einerRequest
undResponse
zu erhalten. (Firefox-Bug 1896475).PushMessageData.bytes()
wird nun unterstützt, um die Daten einer Push-Nachricht als Byte-Array in einemUint8Array
-Objekt zurückzugeben. (Firefox-Bug 1897871).Blob.bytes()
wird unterstützt, um die Daten einesBlob
als Byte-Array in einemUint8Array
-Objekt zurückzugeben. (Firefox-Bug 1896509).MediaKeys.getStatusForPolicy()
wird nun unterstützt, um zu überprüfen, ob das CDM-Modul, das zum Entschlüsseln von DRM-geschütztem Inhalt verwendet wird, die Darstellung verschlüsselter Mediendaten für einen "hypothetischen" Schlüssel basierend auf spezifischen Richtlinienanforderungen wie der vom System unterstützten High-bandwidth Digital Content Protection (HDCP)-Version erlauben würde. Dies bietet einer Anwendung einen einfachen Mechanismus, um im Voraus zu wissen, ob die Wiedergabe in optimaler Auflösung möglich ist, ohne eine Medien-Schlüsselsitzung erstellen oder eine echte Lizenz abrufen zu müssen. (Firefox-Bug 1878714).RTCRtpTransceiver.setCodecPreferences()
wird nun unterstützt, um die Codecs festzulegen, die ein WebRTC-Lokalpeer verwenden kann, um empfangene Daten in der bevorzugten Codec-Reihenfolge zu dekodieren. Webanwendungen können dies nutzen, um den Remote-Peer dazu zu veranlassen, einen bevorzugten Codec auszuwählen und um die Aushandlung bestimmter Codecs — einschließlich derer, die für die Retransmission, Redundanz und Fehlerkorrektur verwendet werden — zu deaktivieren. (Firefox-Bug 1396922).- Serialisierung von deklarativem Shadow DOM, einschließlich der Methoden
ShadowRoot.getHTML()
undElement.getHTML()
sowie der zugehörigen EigenschaftenShadowRoot.serializable
undHTMLTemplateElement.shadowRootSerializable
. - Die Schnittstelle
CSSPropertyRule
wird nun standardmäßig unterstützt und repräsentiert eine CSS-@property
-At-Regel. Die Schnittstelle ermöglicht es, die Werte, einschließlichname
,syntax
,inherits
undinitialValue
, von CSS-Custom-Properties zu erhalten, die mit der@property
-At-Regel definiert wurden (Firefox-Bug 1864818). - Die Methode
registerProperty()
wird nun standardmäßig unterstützt. Sie ermöglicht es, CSS-Custom-Properties über JavaScript zu definieren, ähnlich wie bei der Verwendung der@property
-At-Regel in CSS (Firefox-Bug 1864818).
Medien, WebRTC und Web Audio
Entfernungen
- Die nicht standardisierte Methode
HTMLMediaElement.seekToNextFrame()
wurde entfernt und wird nun von keinem Browser mehr unterstützt. (Firefox-Bug 1336404).
WebDriver-Konformität (WebDriver BiDi, Marionette)
Allgemein
- Wir unterstützen jetzt die erweiterte Fähigkeit "unhandledPromptBehavior", die entweder eine Zeichenkette (WebDriver klassisch) oder ein JSON-Objekt (WebDriver BiDi) sein kann. Der Objekttyp bietet mehr Fähigkeiten für WebDriver BiDi, wie das Behandeln von "beforeunload"-Aufforderungen. (Firefox-Bug 1884650)
WebDriver BiDi
- Unterstützung für das "BiDi-Flag" einer WebDriver-Sitzung hinzugefügt, um mit der WebDriver-BiDi-Spezifikation in Einklang zu stehen. Dies ermöglicht die Identifizierung von Sitzungen, die für oder auf WebDriver BiDi aktualisiert wurden. (Firefox-Bug 1898719)
- Unterstützung für mehrere Argumente für den Befehl
network.continueRequest
hinzugefügt, der es nun ermöglicht, Header, Cookies, Methode und Body einer Anfrage zu ändern, bevor sie über das Netzwerk gesendet wird. (Firefox-Bug 1850680) - Unterstützung für das Argument
userContext
im Befehlpermissions.setPermission
hinzugefügt, das es ermöglicht, eine Berechtigung zu einem bestimmten Benutzerkontext zu isolieren (implementiert als Container in Firefox). (Firefox-Bug 1894217) - Ein Fehler in
browsingContext.navigate
behoben, bei dem ein Navigationsfehler eine Fehlerseite laden würde und nachfolgende Befehle zum Scheitern brachte. (Firefox-Bug 1878690) - Wir haben die Reihenfolge korrigiert, in der
network.responseCompleted
-Ereignisse für Weiterleitungen ausgegeben werden. DieresponseCompleted
des ursprünglichen Antrags wird jetzt immer vor den Ereignissen für die Weiterleitung ausgegeben. (Firefox-Bug 1879580) - Um mit dem aktuellen Firefox-Verhalten übereinzustimmen, wurde das Workaround eingeführt, Cookies, die mit dem Befehl "storage.setCookie" für die gleiche Domäne wie die geladene Seite im Zielkontext hinzugefügt werden, nicht zu partitionieren. (Firefox-Bug 1898222)
- Der Befehl
input.setFiles
wurde aktualisiert, um einenUnsupportedOperation
-Fehler auszulösen, wenn die angegebene Datei nicht existiert. (Firefox-Bug 1887644)
Marionette
- Unterstützung für das "HTTP-Flag" einer WebDriver-Sitzung hinzugefügt, um mit der klassischen WebDriver-Spezifikation übereinzustimmen. Dies ermöglicht die Identifizierung von Sitzungen, die für WebDriver klassisch erstellt wurden. (Firefox-Bug 1884090)
- Unterstützung für die Permissions-API in WebDriver Classic hinzugefügt. (Firefox-Bug 1524074)
Änderungen für Add-on-Entwickler
- Fügt die Möglichkeit hinzu, Regeln in statischen deklarativen Netzwerkanfrageregel-Sets mit
declarativeNetRequest.updateStaticRules
zu aktivieren und zu deaktivieren und deaktivierte Regeln für ein statisches Regel-Set mitdeclarativeNetRequest.getDisabledRuleIds
aufzulisten (Firefox-Bug 1810762). - Eine statische deklarative Netzwerkanfrageregel, die durch den
declarative_net_request
-Manifest-Schlüssel definiert wird, wird jetzt geladen, wenn sie nicht erkannte Eigenschaften enthält, aber ansonsten gültig ist (Firefox-Bug 1886608). MAX_NUMBER_OF_DYNAMIC_RULES
undMAX_NUMBER_OF_SESSION_RULES
werden indeclarativeNetRequest
eingeführt. Diese Eigenschaften repräsentieren die maximale Anzahl von dynamischen und sitzungsbezogenen Regeln, die eine Erweiterung hinzufügen kann. Sie ersetzenMAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES
, was nun veraltet ist (Firefox-Bug 1894128).- Der Standardwert der
proxy.settings
-EigenschaftproxyDNS
ist nunfalse
bei Verwendung von SOCKS4 undtrue
bei Verwendung von SOCKS5. Zuvor war es standardmäßigfalse
für SOCKS4 und SOCKS5 (Firefox-Bug 1741375). - Unterstützung wird nun für
webRequest.onAuthRequired
bereitgestellt, um Authentifizierungsanfragen asynchron zu behandeln, indem"asyncBlocking"
imaddListener
-ParameterextraInfoSpec
angegeben wird (Firefox-Bug 1889897). - Der Manifest-Schlüssel optional_host_permissions wurde hinzugefügt. Dieser Schlüssel ermöglicht Laufzeitanfragen für den Zugriff (Zugriff wird vom Benutzer nach der Installation einer Erweiterung gewährt) auf die APIs in der Erweiterung, die Hostdaten lesen oder ändern (Firefox-Bug 1766026).
- Die nicht standardmäßigen Web-API-Ereignisse
overflow
undunderflow
wurden veraltet. Die Verwendung dieser Ereignisse sollte aus Erweiterungsdokumenten entfernt werden, bevor Firefox 131 veröffentlicht wird (Firefox-Bug 1898445). - Unterstützung wird nun bereitgestellt, damit Skripte in der Ausführungsumgebung einer Webseite laufen können. Dies wird durch die Unterstützung von
MAIN
inExecutionWorld
für diescripting
-API bereitgestellt, der Hinzufügung vonworld
zurcontentScripts.register()
-API und der Unterstützung fürworld
imcontent_scripts
-Manifest-Schlüssel (Firefox-Bug 1736575). - Die
scripting
-API kann nun Skripte und CSS in sandboxed-Seiten mitabout:blank
,about:srcdoc
unddata:
-URLs einfügen. Dies wurde fürscripting.executeScript
,scripting.insertCSS
, undscripting.removeCSS
im Firefox-Bug 1475831 undscripting.registerContentScripts
undscripting.updateContentScripts
im Firefox-Bug 1853411 durch die Einführung vonmatchOriginAsFallback
zuscripting.RegisteredContentScript
bereitgestellt. - Inhaltsskripte laufen nun auf sandboxed
http
,https
, undfile:
URLs (Firefox-Bug 1411641). - Der Manifest-Schlüssel
content_scripts
unterstützt nunmatch_origin_as_fallback
undcontentScripts.register
matchOriginAsFallback
, wodurch Skripte inabout:
,data:
, undblob:
-Seiten injiziert werden können, wenn der Dokumentursprung durch die Verwendung von CSP oder iframe-sandboxing undurchsichtig ist (Firefox-Bug 1475831 und Firefox-Bug 1896669). Darüber hinaus können Skripte, die mit demcontent_scripts
-Manifest-Schlüssel registriert sind, nur dann inblob:
-Seiten ausgeführt werden, wennmatch_origin_as_fallback
true
ist (Firefox-Bug 1897113). - Unterstützung hinzugefügt für das
declarativeNetRequest.RuleCondition
-EigenschaftdomainType
(Firefox-Bug 1797408). - Erweiterungen, die eine nicht erkannte Eigenschaft im Manifest-Schlüssel
browser_specific_settings.gecko
enthalten, werden jetzt mit einer Warnung geladen. Zuvor führten diese Erweiterungen zu einem Fehler bei der Installation. Dies stellt sicher, dass, wenn ein neuerbrowser_specific_settings.gecko
-Eigenschaft hinzugefügt wird, Erweiterungen, die diese neue Eigenschaft verwenden, in Firefox-Versionen zurück zu dieser Veröffentlichung geladen werden (Firefox-Bug 1757293). - Kontextmenüs, die mit
menus.create
in Erweiterungen mit einem nicht-persistenten Hintergrundskript erstellt werden, bleiben jetzt zuverlässiger über Erweiterungsneustarts hinweg erhalten. Zuvor gab es Fälle, in denen die Menüregistrierung bei Neustarts verschwand (Firefox-Bug 1771328).
Experimentelle Webfunktionen
Diese Funktionen sind neu in Firefox 128 ausgeliefert, aber standardmäßig deaktiviert. Um mit ihnen zu experimentieren, suchen Sie die entsprechende Einstellung auf der about:config
-Seite und setzen Sie sie auf true
. Weitere solche Funktionen finden Sie auf der Seite zu experimentellen Funktionen.
-
image/jxl
MIME-Typ im Accept-Header für Standard- und Bildanforderungen:image.jxl.enabled
.Der HTTP-Header
Accept
in Standardanforderungen und Bildanforderungen kann so konfiguriert werden, dass er Unterstützung für den MIME-Typimage/jxl
anzeigt. (Firefox-Bug 1711622). -
Cookies mit unabhängigem partitioniertem Zustand (CHIPS):
network.cookie.CHIPS.enabled
.CHIPS, oder "partitionierte Cookies", ermöglichen es Entwicklern, ein Cookie mit dem
partitioned
-Direktiv desSet-Cookie
-HTTP-Headers in partitionierten Speicher zu optieren. Wenn sie gesetzt sind, haben Cookies separaten Speicher für jede Top-Level-Site und können nur innerhalb derselben Top-Level-Site, auf der sie gesetzt wurden, und deren Subdomains gelesen werden. Dies blockiert ein Cross-Site-Tracking, während es dennoch legitime Verwendungen von Drittanbieter-Cookies ermöglicht, wie z.B. den Zustand eingebetteter Karten oder Chat-Widgets über verschiedene Subdomains einer Site zu erhalten. (Firefox-Bug 1898253). -
Privacy Preserving Attribution API (PPA):
dom.origin-trials.private-attribution.state
.Die PPA-API bietet eine Alternative zum Benutzer-Tracking für Anzeigenzuordnung mithilfe des neuen Objekts
navigator.privateAttribution
mit den MethodensaveImpression()
undmeasureConversion()
. Lesen Sie mehr über die PPA im ursprünglichen Erklärer und im vorgeschlagenen Spezifikation. Dieses Experiment kann für Websites über Origin-Trial oder im Browser durch Setzen des Präferenzwerts auf1
aktiviert werden. (Firefox-Bug 1900929).
Ältere Versionen
- Firefox 127 für Entwickler
- Firefox 126 für Entwickler
- Firefox 125 für Entwickler
- Firefox 124 für Entwickler
- Firefox 123 für Entwickler
- Firefox 122 für Entwickler
- Firefox 121 für Entwickler
- Firefox 120 für Entwickler
- Firefox 119 für Entwickler
- Firefox 118 für Entwickler
- Firefox 117 für Entwickler
- Firefox 116 für Entwickler
- Firefox 115 für Entwickler
- Firefox 114 für Entwickler
- Firefox 113 für Entwickler
- Firefox 112 für Entwickler
- Firefox 111 für Entwickler
- Firefox 110 für Entwickler
- Firefox 109 für Entwickler
- Firefox 108 für Entwickler
- Firefox 107 für Entwickler
- Firefox 106 für Entwickler
- Firefox 105 für Entwickler
- Firefox 104 für Entwickler
- Firefox 103 für Entwickler
- Firefox 102 für Entwickler
- Firefox 101 für Entwickler
- Firefox 100 für Entwickler
- Firefox 99 für Entwickler
- Firefox 98 für Entwickler
- Firefox 97 für Entwickler