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 Webentwickler
>HTML
- Das
target
-Attribut des<base>
-Elements erlaubt nun keine ASCII-Zeilenumbrüche, Tabs oder das<
-Zeichen mehr. Ist eines dieser Zeichen vorhanden, wird der Wert in_blank
geändert. Dadurch werden Injektionsangriffe mithilfe eines nicht geschlossenentarget
-Attributs verhindert (Firefox Bug 1835157).
CSS
- Die Relative-Farbsyntax ist jetzt standardmäßig aktiviert. Die Relative-Farbsyntax ermöglicht es Ihnen, einen Farbwert relativ zu einer Ursprungsfarbe zu erstellen, und erlaubt es, eine Farbe in einem anderen Farbraum mit Farb-Funktionen zu ändern (Firefox Bug 1900251).
- Die
content
-Eigenschaft unterstützt jetzt Alternativtext für Inhalte, die ein Bild enthalten. Der Alternativtext wird dann dem Zugriffspfad des Browsers hinzugefügt. (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 Mauerwerks-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 es erlaubt, die Größe von Buffern zu ändern, ohne einen neuen Buffer zuzuweisen und Daten hineinzukopieren (Firefox Bug 1884150). Die relevanten Methoden und Eigenschaften sind:- Erweitern Sie
SharedArrayBuffer
mit der MethodeSharedArrayBuffer.prototype.grow()
. Die maximal erlaubte Größe des Buffers wird mit demoptions.maxByteLength
-Parameter desSharedArrayBuffer()
Konstruktors angegeben. Die EigenschaftenSharedArrayBuffer.prototype.growable
undSharedArrayBuffer.prototype.maxByteLength
zeigen an, ob der Buffer wachsen kann und seine maximal erlaubte Größe. - Ändern Sie die Größe von
ArrayBuffer
mit der MethodeArrayBuffer.prototype.resize()
. Die maximal erlaubte Größe des Buffers wird mit demoptions.maxByteLength
-Parameter desArrayBuffer()
Konstruktors angegeben. Die EigenschaftenArrayBuffer.prototype.resizable
undArrayBuffer.prototype.maxByteLength
zeigen an, ob der Buffer geändert werden kann und seine maximal erlaubte Größe.
- Erweitern Sie
HTTP
- Der HTTP
Accept
-Header in Standardanfragen und Bildanforderungen umfasst jetzt den MIME-Typimage/svg+xml
(Firefox Bug 1711622). - Das RFC 9218: Extensible Prioritization Scheme for HTTP wird jetzt unterstützt, einschließlich des HTTP
Priority
Anfragen- und Antwort-Headers, der es Clients ermöglicht, den erwarteten relativen Prioritätsgrad für über eine Verbindung gesendete Ressourcen anzuzeigen, sowie derPRIORITY_UPDATE
-Frames von HTTP/2 und HTTP/3, die es ermöglichen, die Priorität nach dem Senden des Headers zu ändern (Firefox Bug 1865040).
APIs
RTCRtpReceiver.getParameters()
undRTCRtpSender.getParameters()
werden jetzt unterstützt und geben ein Objekt zurück, das die aktuellen Codecs beschreibt, die für die Codierung und Übertragung von Medien auf den Empfangs- und Sendertracks verwendet werden. (Firefox Bug 1534687).Request.bytes()
undResponse.bytes()
werden jetzt als bequemer Weg unterstützt, um einUint8Array
aus einerRequest
undResponse
zu erhalten. (Firefox Bug 1896475).PushMessageData.bytes()
wird jetzt 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 jetzt unterstützt, um zu überprüfen, ob das CDM-Modul, das zum Entschlüsseln von DRM-geschütztem Inhalt verwendet wird, die Darstellung von verschlüsseltem Mediendaten für einen „hypothetischen“ Schlüssel auf der Grundlage der angegebenen Richtlinienanforderungen wie der vom System unterstützten HDCP-Version erlauben würde. Dies bietet einer Anwendung einen einfachen Mechanismus, um im Voraus zu wissen, ob die Wiedergabe in optimaler Auflösung erlaubt wird, ohne eine Medienschlüssel-Sitzung erstellen oder eine echte Lizenz abrufen zu müssen. (Firefox Bug 1878714).RTCRtpTransceiver.setCodecPreferences()
wird jetzt unterstützt, um die Codecs festzulegen, die eine WebRTC-Lokaleinheit zum Decodieren empfangener Daten in ihrer bevorzugten Codec-Reihenfolge verwenden kann. Webanwendungen können dies verwenden, um den Remote-Peer zu veranlassen, einen bevorzugten Codec auszuwählen, und um die Aushandlung bestimmter Codecs zu deaktivieren – einschließlich derjenigen, die für Übertragung, Redundanz und Fehlerkorrektur verwendet werden. (Firefox Bug 1396922).- Serialisierung des deklarativen Schatten-DOMs, einschließlich der Methoden
ShadowRoot.getHTML()
undElement.getHTML()
, sowie zugehöriger EigenschaftenShadowRoot.serializable
undHTMLTemplateElement.shadowRootSerializable
. - Das
CSSPropertyRule
-Interface wird jetzt standardmäßig unterstützt und repräsentiert eine CSS@property
At-Regel. Das Interface ermöglicht Ihnen, die Werte einzuholen, einschließlichname
,syntax
,inherits
undinitialValue
, der mit der@property
-At-Regel definierten benutzerdefinierten CSS-Eigenschaften (Firefox Bug 1864818). - Die Methode
registerProperty()
wird jetzt standardmäßig unterstützt. Sie ermöglicht die Definition von benutzerdefinierten CSS-Eigenschaften über JavaScript, was der Verwendung der@property
-At-Regel in CSS ähnelt (Firefox Bug 1864818).
Medien, WebRTC und Web Audio
Entfernungen
- Die nicht-standardisierte Methode
HTMLMediaElement.seekToNextFrame()
wurde entfernt und wird jetzt von keinem Browser mehr unterstützt. (Firefox Bug 1336404).
WebDriver-Konformität (WebDriver BiDi, Marionette)
Allgemein
- Wir unterstützen jetzt die erweiterte "unhandledPromptBehavior"-Fähigkeit, die entweder ein String (WebDriver classic) oder ein JSON-Objekt (WebDriver BiDi) sein kann. Der Objekttyp bietet mehr Fähigkeiten für WebDriver BiDi, wie das Bearbeiten von "beforeunload"-Aufforderungen. (Firefox Bug 1884650)
WebDriver BiDi
- Unterstützung für das "BiDi-Flag" einer WebDriver-Sitzung hinzugefügt, um es mit der WebDriver BiDi-Spezifikation abzustimmen. Dies ermöglicht die Identifikation von Sitzungen, die für oder auf WebDriver BiDi aktualisiert wurden. (Firefox Bug 1898719)
- Unterstützung für mehrere Argumente für den
network.continueRequest
-Befehl hinzugefügt, der es jetzt erlaubt, Header, Cookies, Methode und Body einer Anfrage zu ändern, bevor sie über das Netzwerk gesendet wird. (Firefox Bug 1850680) - Unterstützung für das
userContext
-Argument impermissions.setPermission
-Befehl hinzugefügt, das es erlaubt, eine Erlaubnis auf einen spezifischen Benutzerkontext zu isolieren (in Firefox als Container implementiert). (Firefox Bug 1894217) - Ein Fehler in
browsingContext.navigate
behoben, bei dem ein Navigationsfehler eine Fehlerseite laden und nachfolgende Befehle zum Scheitern bringen würde. (Firefox Bug 1878690) - Die Reihenfolge, in der
network.responseCompleted
-Ereignisse für Umleitungen gesendet werden, wurde behoben. DieresponseCompleted
des ursprünglichen Antrags wird jetzt immer vor den Ereignissen der Umleitung gesendet. (Firefox Bug 1879580) - Um das aktuelle Firefox-Verhalten auszurichten, haben wir die Umgehung eingerichtet, um Cookies nicht zu partitionieren, die mit dem "storage.setCookie"-Befehl für die gleiche Domain wie die im Zielkontext geladene Seite hinzugefügt werden. (Firefox Bug 1898222)
- Der
input.setFiles
-Befehl wurde aktualisiert, um einenUnsupportedOperation
-Fehler zu werfen, wenn die angegebene Datei nicht existiert. (Firefox Bug 1887644)
Marionette
- Unterstützung für das "HTTP-Flag" einer WebDriver-Sitzung hinzugefügt, um es mit der WebDriver-classic-Spezifikation abzustimmen. Dies ermöglicht die Identifikation von Sitzungen, die für WebDriver classic erstellt wurden. (Firefox Bug 1884090)
- Unterstützung für die Permissions API im WebDriver classic hinzugefügt. (Firefox Bug 1524074)
Änderungen für Add-on-Entwickler
- Fügt die Möglichkeit hinzu, Regeln in statischen deklarativen Netzwerkanforderungs-Regelsätzen mit
declarativeNetRequest.updateStaticRules
zu aktivieren und zu deaktivieren und deaktivierte Regeln für einen statischen Regelsatz mitdeclarativeNetRequest.getDisabledRuleIds
aufzulisten (Firefox Bug 1810762). - Eine statische deklarative Netzwerkanforderungsregel, die über den
declarative_net_request
Manifest-Schlüssel definiert ist, wird jetzt geladen, wenn sie nicht erkannte Eigenschaften enthält, aber ansonsten gültig ist (Firefox Bug 1886608). - Führt
MAX_NUMBER_OF_DYNAMIC_RULES
undMAX_NUMBER_OF_SESSION_RULES
zudeclarativeNetRequest
ein. Diese Eigenschaften repräsentieren die maximale Anzahl dynamischer und sitzungsbezogener Regeln, die eine Erweiterung hinzufügen kann. Sie ersetzenMAX_NUMBER_OF_DYNAMIC_AND_SESSION_RULES
, das jetzt veraltet ist (Firefox Bug 1894128). - Der Standardwert der
proxy.settings
EigenschaftproxyDNS
ist jetztfalse
bei Verwendung von SOCKS4 undtrue
bei Verwendung von SOCKS5. Zuvor war erfalse
für SOCKS4 und SOCKS5 (Firefox Bug 1741375). - Unterstützung wird jetzt für
webRequest.onAuthRequired
bereitgestellt, um Authentifizierungsanforderungen asynchron zu verarbeiten, indem"asyncBlocking"
im ParameterextraInfoSpec
vonaddListener
angegeben wird (Firefox Bug 1889897). - Der Manifest-Schlüssel optional_host_permissions wurde hinzugefügt. Dieser Schlüssel ermöglicht Laufzeitanfragen für Zugriff (der Zugriff wird durch den Benutzer nach der Installation einer Erweiterung gewährt) für die APIs in der Erweiterung, die Hostdaten lesen oder ändern (Firefox Bug 1766026).
- Die nicht-standardkonformen Web-API-Ereignisse
overflow
undunderflow
wurden als veraltet markiert. Die Verwendung dieser Ereignisse sollte vor der Veröffentlichung von Firefox 131 aus Erweiterungsdokumenten entfernt werden (Firefox Bug 1898445). - Skripte können jetzt im Ausführungsumfeld der Webseite ausgeführt werden. Dies wird durch die Unterstützung für
MAIN
inExecutionWorld
für diescripting
API, die Hinzufügung vonworld
zurcontentScripts.register()
API, und die Unterstützung vonworld
imcontent_scripts
Manifest-Schlüssel bereitgestellt (Firefox Bug 1736575). - Die
scripting
API kann jetzt Skripte und CSS in sandboxed-Seiten mitabout:blank
,about:srcdoc
unddata:
URLs injizieren. Dies wurde fürscripting.executeScript
,scripting.insertCSS
undscripting.removeCSS
in Firefox Bug 1475831 undscripting.registerContentScripts
undscripting.updateContentScripts
in Firefox Bug 1853411 durch die Einführung vonmatchOriginAsFallback
zuscripting.RegisteredContentScript
implementiert. - Inhalte Skripte laufen jetzt auf sandboxed
http
,https
, undfile:
URLs (Firefox Bug 1411641). - Der Manifest-Schlüssel
content_scripts
unterstützt jetztmatch_origin_as_fallback
undcontentScripts.register
matchOriginAsFallback
, wodurch Skripte inabout:
,data:
, undblob:
Seiten eingebettet werden können, wenn der Dokumentursprung aufgrund der Verwendung von CSP oder iframe sandbox undurchsichtig ist (Firefox Bug 1475831 und Firefox Bug 1896669). Darüber hinaus können mit demcontent_scripts
Manifest-Schlüssel registrierte Skripte jetzt nur inblob:
Seiten laufen, wennmatch_origin_as_fallback
true
ist (Firefox Bug 1897113). - Unterstützung für die
declarativeNetRequest.RuleCondition
EigenschaftdomainType
hinzugefügt (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 beim Installieren zu einem Fehler. Das stellt sicher, dass, wenn eine neuebrowser_specific_settings.gecko
-Eigenschaft hinzugefügt wird, Erweiterungen, die diese neue Eigenschaft verwenden, in Firefox-Versionen ab diesem Release geladen werden (Firefox Bug 1757293). - Kontextmenüs, die mit
menus.create
in Erweiterungen erstellt wurden, die ein nicht-persistenten Hintergrundskript verwenden, bleiben nach Erweiterungs-Neustarts zuverlässiger bestehen. Zuvor gab es Fälle, in denen die Menüregistrierung bei Neustarts verschwand (Firefox Bug 1771328).
Experimentelle Webfunktionen
Diese Funktionen werden neu in Firefox 128 eingeführt, sind jedoch standardmäßig deaktiviert. Um mit ihnen zu experimentieren, suchen Sie auf der about:config
Seite nach der entsprechenden Präferenz und setzen Sie diese auf true
. Weitere solche Funktionen finden Sie auf der Seite für Experimentelle Funktionen.
-
image/jxl
MIME-Typ im Accept-Header für Standard- und Bildanforderungen:image.jxl.enabled
.Der HTTP
Accept
-Header in Standardanfragen und Bildanforderungen kann konfiguriert werden, um Unterstützung für den MIME-Typimage/jxl
anzuzeigen. (Firefox Bug 1711622). -
Cookies mit unabhängigem partitioniertem Status (CHIPS):
network.cookie.CHIPS.enabled
.CHIPS, oder "partitionierte Cookies", ermöglichen es Entwicklern, ein Cookie mithilfe der
partitioned
Direktive desSet-Cookie
HTTP-Headers in den partitionierten Speicher einzuschreiben. Wenn festgelegt, haben Cookies einen separaten Speicher für jede oberste Site und können nur innerhalb derselben obersten Site gelesen werden, auf der sie gesetzt wurden, sowie deren Subdomains. Dies blockiert das plattformübergreifende Tracking, während legitime Verwendungen von Drittanbieter-Cookies wie das Speichern des Zustands eingebetteter Karten- oder Chat-Widgets über verschiedene Subdomains einer Site hinweg weiterhin ermöglicht werden. (Firefox Bug 1898253). -
Privacy Preserving Attribution API (PPA):
dom.origin-trials.private-attribution.state
.Die PPA API bietet eine Alternative zum Nutzer-Tracking für Werbezuordnungen mithilfe des neuen
navigator.privateAttribution
Objekts mit den MethodensaveImpression()
undmeasureConversion()
. Mehr über PPA erfahren Sie im ursprünglichen Erklärer und der vorgeschlagenen Spezifikation. Dieses Experiment kann für Webseiten über origin trial oder im Browser durch Setzen der Präferenz auf1
aktiviert werden. (Firefox Bug 1900929).