Firefox 128 Versionshinweise 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. Wenn diese vorhanden sind, wird der Wert zu_blankgeändert. Dies verhindert hängende Markup-Injektion-Angriffe, die ein nicht geschlossenestarget-Attribut verwenden (Firefox-Bug 1835157).
CSS
- Die Relative Color Syntax ist jetzt standardmäßig aktiviert. Diese Syntax ermöglicht es, einen Farbwert relativ zu einer Ursprungsfarbe zu erstellen und eine Farbe in einem anderen Farbraum mithilfe von 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 im Accessibility-Tree des Browsers angezeigt. (Siehe Firefox-Bug 1281158 und Firefox-Bug 1896047). - Der
syntax-Deskriptor der@property-At-Regel unterstützt jetzt den<string>-Syntax-Komponentennamen. (Siehe Firefox-Bug 1846635).
Entfernungen
- Die Mauerwerk-Layout-Eigenschaften
align-tracksundjustify-trackswurden entfernt. Diese Eigenschaften waren nur in Firefox implementiert und wurden kürzlich aus der Spezifikation entfernt (Firefox-Bug 1900195).
JavaScript
- Resizable
ArrayBufferund ausbaufähigeSharedArrayBufferwerden jetzt unterstützt, wodurch die Größe von Puffern verändert werden kann, ohne einen neuen Puffer zuzuweisen und Daten hineinzukopieren (Firefox-Bug 1884150). Die relevanten Methoden und Eigenschaften sind:- Grow
SharedArrayBuffermit der MethodeSharedArrayBuffer.prototype.grow(). Die maximale erlaubte Größe des Puffers wird mithilfe des Parametersoptions.maxByteLengthimSharedArrayBuffer()-Konstruktor festgelegt. Die EigenschaftenSharedArrayBuffer.prototype.growableundSharedArrayBuffer.prototype.maxByteLengthgeben an, ob der Puffer wachsen kann und seine maximal erlaubte Größe. - Resize
ArrayBuffermit der MethodeArrayBuffer.prototype.resize(). Die maximale erlaubte Größe des Puffers wird mithilfe des Parametersoptions.maxByteLengthimArrayBuffer()-Konstruktor festgelegt. Die EigenschaftenArrayBuffer.prototype.resizableundArrayBuffer.prototype.maxByteLengthgeben an, ob der Puffer vergrößert werden kann und seine maximal erlaubte Größe.
- Grow
HTTP
- Der HTTP-Header
Acceptin Standardanfragen und Bildanfragen enthält jetzt den MIME-Typimage/svg+xml(Firefox-Bug 1711622). - Das RFC 9218: Erweiterbare Priorisierungs-Schema für HTTP wird jetzt unterstützt, einschließlich des HTTP
PriorityAnfrage- und Antwort-Headers, der es Clients ermöglicht, einen Hinweis auf die erwartete relative Priorität für über eine Verbindung gesendete Ressourcen zu geben, sowie der 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 jetzt unterstützt und geben ein Objekt zurück, das die derzeit verwendeten Codecs für das Kodieren und Übertragen von Medien auf den Empfänger- und Sender-Spuren beschreibt. (Firefox-Bug 1534687).Request.bytes()undResponse.bytes()werden jetzt als bequemer Weg unterstützt, um einenUint8Arrayvon einemRequestundResponsezu erhalten, jeweils. (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 einesBlobals 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 zur Entschlüsselung von DRM-geschütztem Inhalt verwendet wird, die Präsentation von verschlüsselten Mediendaten für einen "hypothetischen" Schlüssel basierend auf festgelegten Richtlinienanforderungen wie der High-bandwidth Digital Content Protection (HDCP)-Version, die vom System unterstützt wird, zulassen 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üsselsitzung erstellen oder eine reale Lizenz abrufen zu müssen. (Firefox-Bug 1878714).RTCRtpTransceiver.setCodecPreferences()wird jetzt unterstützt, um die Codecs festzulegen, die ein WebRTC-Lokaler Peer zum Dekodieren empfangener Daten verwenden kann, in seiner bevorzugten Codec-Reihenfolge. Webanwendungen können dies verwenden, um den Remote-Peer dazu zu bringen, einen bevorzugten Codec auszuwählen, und um die Aushandlung bestimmter Codecs zu deaktivieren, einschließlich der für Rückübertragungen, Redundanz und Vorwärtsfehlerkorrektur verwendeten. (Firefox-Bug 1396922).- Die Serialisierung des deklarierten Shadow DOM, einschließlich der Methoden
ShadowRoot.getHTML()undElement.getHTML()sowie der zugehörigen EigenschaftenShadowRoot.serializableundHTMLTemplateElement.shadowRootSerializable. - Die Schnittstelle
CSSPropertyRulewird nun standardmäßig unterstützt und repräsentiert eine CSS-@property-At-Regel. Die Schnittstelle ermöglicht es, die Werte, einschließlichname,syntax,inheritsundinitialValuevon CSS-Benutzerdefinierten Eigenschaften zu erhalten, die mit der@propertyAt-Regel definiert sind (Firefox-Bug 1864818). - Die Methode
registerProperty()wird jetzt standardmäßig unterstützt. Sie ermöglicht Ihnen die Definition von CSS-Benutzerdefinierten Eigenschaften über JavaScript, ähnlich wie die Verwendung der@propertyAt-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 "unhandledPromptBehavior"-Funktionalität, die entweder ein String (WebDriver klassisch) oder ein JSON-Objekt (WebDriver BiDi) sein kann. Der Objekttyp bietet mehr Möglichkeiten für WebDriver BiDi, wie z.B. die Handhabung von "beforeunload" Aufforderungen. (Firefox-Bug 1884650)
WebDriver BiDi
- Unterstützung für das "BiDi-Flag" einer WebDriver-Sitzung wurde hinzugefügt, um sich mit der WebDriver-BiDi-Spezifikation abzustimmen. 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.continueRequestwurde hinzugefügt, der es nun ermöglicht, Header, Cookies, Methode und Körper einer Anfrage zu ändern, bevor sie über das Netzwerk gesendet wird. (Firefox-Bug 1850680) - Unterstützung für das Argument
userContextim Befehlpermissions.setPermissionwurde hinzugefügt, um eine Berechtigung auf einen bestimmten Benutzerkontext (in Firefox als Container implementiert) zu isolieren. (Firefox-Bug 1894217) - Ein Fehler in
browsingContext.navigatewurde behoben, bei dem ein Navigationsfehler eine Fehlerseite lud und nachfolgende Befehle fehlschlugen. (Firefox-Bug 1878690) - Wir haben die Reihenfolge korrigiert, in der
network.responseCompletedEreignisse für Weiterleitungen ausgegeben werden. Die ursprüngliche Anfrage'sresponseCompletedwird nun immer vor den Ereignissen für die Weiterleitung ausgegeben. (Firefox-Bug 1879580) - Um sich mit dem aktuellen Firefox-Verhalten abzustimmen, haben wir den Workaround eingeführt, um Cookies nicht zu partitionieren, die mit dem Befehl "storage.setCookie" für dieselbe Domain wie die im Zielkontext geladene Seite hinzugefügt werden. (Firefox-Bug 1898222)
- Der Befehl
input.setFileswurde aktualisiert, um einenUnsupportedOperation-Fehler auszugeben, wenn die angegebene Datei nicht existiert. (Firefox-Bug 1887644)
Marionette
- Unterstützung für das "HTTP-Flag" einer WebDriver-Sitzung wurde hinzugefügt, um sich mit den WebDriver Classic Spezifikationen abzustimmen. Dies ermöglicht die Identifizierung von Sitzungen, die für das klassische WebDriver erstellt wurden. (Firefox-Bug 1884090)
- Unterstützung für die Permissions API in WebDriver Classic wurde hinzugefügt. (Firefox-Bug 1524074)
Änderungen für Add-on-Entwickler
- Fügt die Möglichkeit hinzu, Regeln in statischen deklarativen Netzanfrage-Regelsätzen mit
declarativeNetRequest.updateStaticRuleszu aktivieren und zu deaktivieren und deaktivierte Regeln für einen statischen Regelsatz mitdeclarativeNetRequest.getDisabledRuleIdsaufzulisten (Firefox-Bug 1810762). - Eine statische deklarative Netzanfrage-Regel, die durch den
declarative_net_requestManifest-Schlüssel definiert wurde, wird jetzt geladen, selbst wenn sie nicht erkannte Eigenschaften enthält, aber ansonsten gültig ist (Firefox-Bug 1886608). - Führt
MAX_NUMBER_OF_DYNAMIC_RULESundMAX_NUMBER_OF_SESSION_RULESindeclarativeNetRequestein. Diese Eigenschaften repräsentieren die maximale Anzahl von dynamischen und sitzungsgültigen 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 Eigenschaft
proxy.settingsproxyDNSist jetztfalsebei Verwendung von SOCKS4 undtruebei Verwendung von SOCKS5. Zuvor betrug der Standardwertfalsefür sowohl SOCKS4 als auch SOCKS5 (Firefox-Bug 1741375). - Es wird nun Unterstützung für
webRequest.onAuthRequiredbereitgestellt, um Authentifizierungsanforderungen asynchron zu behandeln, indem"asyncBlocking"imaddListenerParameterextraInfoSpecangegeben wird (Firefox-Bug 1889897). - Der optional_host_permissions Manifest-Schlüssel wurde hinzugefügt. Dieser Schlüssel ermöglicht Laufzeitanfragen für den Zugriff (Zugriff, der durch den Benutzer nach der Installation einer Erweiterung gewährt wird) für die APIs in der Erweiterung, die Host-Daten lesen oder verändern (Firefox-Bug 1766026).
- Die nicht-standardmäßigen Web-API-Ereignisse
overflowundunderflowwurden veraltet. Die Verwendung dieser Ereignisse sollte vor der Veröffentlichung von Firefox 131 aus Erweitungsdokumenten entfernt werden (Firefox-Bug 1898445). - Unterstützung wird nun bereitgestellt, um Skripte in der Ausführungsumgebung der Webseite laufen zu lassen. Dies wird durch die Unterstützung von
MAINinExecutionWorldfür diescriptingAPI bereitgestellt, die Ergänzung vonworldzurcontentScripts.register()API und die Unterstützung vonworldimcontent_scriptsManifest-Schlüssel (Firefox-Bug 1736575). - Die
scriptingAPI kann jetzt Skripte und CSS in sandboxed Seiten mitabout:blank,about:srcdocunddata:URLs injizieren. Dies wurde fürscripting.executeScript,scripting.insertCSSundscripting.removeCSSin Firefox-Bug 1475831 undscripting.registerContentScriptsundscripting.updateContentScriptsin Firefox-Bug 1853411 durch die Einführung vonmatchOriginAsFallbackzuscripting.RegisteredContentScriptimplementiert. - Content-Skripte laufen jetzt auf sandboxed
http,httpsundfile:URLs (Firefox-Bug 1411641). - Der Manifest-Schlüssel
content_scriptsunterstützt jetztmatch_origin_as_fallbackundcontentScripts.registermatchOriginAsFallback, wodurch Skripte inabout:,data:undblob:Seiten injiziert werden können, wenn der Dokumentursprung aufgrund der Verwendung von CSP oder iframe-Sandbox opak ist (Firefox-Bug 1475831 und Firefox-Bug 1896669). Darüber hinaus können Skripte, die mit demcontent_scriptsManifest-Schlüssel registriert sind, jetzt nur dann aufblob:Seiten ausgeführt werden, wennmatch_origin_as_fallbacktrueist (Firefox-Bug 1897113). - Unterstützung für die
declarativeNetRequest.RuleConditionEigenschaftdomainTypewurde hinzugefügt (Firefox-Bug 1797408). - Erweiterungen, die eine nicht erkannte Eigenschaft im Manifest-Schlüssel
browser_specific_settings.geckoenthalten, werden jetzt mit einer Warnung geladen. Früher führten diese Erweiterungen bei der Installation zu einem Fehler. Dies stellt sicher, dass wenn eine neuebrowser_specific_settings.geckoEigenschaft hinzugefügt wird, Erweiterungen, die diese neue Eigenschaft verwenden, rückwirkend ab dieser Veröffentlichung in Firefox geladen werden (Firefox-Bug 1757293). - Kontextmenüs, die mit
menus.createin Erweiterungen mit einem nicht-persistenten Hintergrundskript erstellt wurden, bleiben jetzt zuverlässiger über Neustarts der Erweiterung hinweg bestehen. Früher gab es Fälle, in denen die Menu-Registrierung bei Neustarts verschwand (Firefox-Bug 1771328).
Experimentelle Web-Funktionen
Diese Funktionen sind neu in Firefox 128 implementiert, aber standardmäßig deaktiviert. Um mit ihnen zu experimentieren, suchen Sie auf der about:config Seite nach der entsprechenden Einstellung und setzen Sie diese auf true. Weitere solche Funktionen finden Sie auf der Seite für experimentelle Funktionen.
-
image/jxlMIME-Typ im Accept-Header für Standard- und Bildanfragen:image.jxl.enabled.Der HTTP-Header
Acceptin Standardanfragen und Bildanfragen kann konfiguriert werden, um Unterstützung für den MIME-Typimage/jxlanzuzeigen. (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
partitionedDirektive imSet-CookieHTTP-Header in den partitionierten Speicher aufzunehmen. Wenn es gesetzt ist, haben Cookies separate Speicher für jede Top-Level-Website und können nur innerhalb derselben Top-Level-Website, auf der sie gesetzt wurden, und deren Subdomains gelesen werden. Dies verhindert Cross-Site-Tracking und ermöglicht gleichzeitig legitime Verwendungen von Third-Party-Cookies, wie das Beibehalten des Zustands eingebetteter Karten oder Chat-Widgets über verschiedene Subdomains einer Seite hinweg. (Firefox-Bug 1898253). -
Privacy Preserving Attribution API (PPA):
dom.origin-trials.private-attribution.state.PPA API bietet eine Alternative zur Nutzerverfolgung für Anzeigen-Attribution unter Verwendung des neuen
navigator.privateAttributionObjekts mit den MethodensaveImpression()undmeasureConversion(). Lesen Sie mehr über die PPA in der ursprünglichen Erklärung und in der vorgeschlagenen Spezifikation. Dieses Experiment kann für Webseiten über Origin Trial oder im Browser durch Setzen der Einstellung auf1aktiviert werden. (Firefox-Bug 1900929).