Versionshinweise für Entwickler zu Firefox 135
Dieser Artikel liefert Informationen über die Änderungen in Firefox 135, die Entwickler betreffen. Firefox 135 wurde am 4. Februar 2025 veröffentlicht.
Änderungen für Webentwickler
>HTML
Keine bemerkenswerten Änderungen
CSS
Entfernungen
- Die
-moz-user-inputCSS-Eigenschaft ermöglichte es, Eingabefelder zu deaktivieren. Die Eigenschaft ist nun veraltet und wurde entfernt (Firefox Bug 1935198).
JavaScript
- Der JSON parse with source-Vorschlag wird jetzt unterstützt, was darauf abzielt, Funktionen bereitzustellen, um Probleme mit dem Präzisionsverlust beim Konvertieren von Werten wie großen Fließkommazahlen und Datumswerten zwischen JavaScript-Werten und JSON-Text zu mindern (Firefox Bug 1934622). Insbesondere sind die folgenden Funktionen jetzt verfügbar:
- Das
JSON.parse()reviver-Parametercontext-Argument: Bietet Zugriff auf den ursprünglichen JSON-Quelltext, der geparst wurde. JSON.isRawJSON(): Testet, ob ein Wert ein Objekt ist, das vonJSON.rawJSON()zurückgegeben wird.JSON.rawJSON(): Erstellt ein "rohes JSON"-Objekt, das ein Stück JSON-Text enthält, der dann in ein Objekt eingeschlossen werden kann, um den spezifizierten Wert zu bewahren, wenn dieses Objekt stringifiziert wird.
- Das
Sicherheit
- Certificate Transparency ist ein Standard, um sicherzustellen, dass Zertifikate öffentlich offengelegt werden, bevor Webbrowser ihnen vertrauen. Firefox unterstützt dieses Feature jetzt in Desktop-Versionen (aber nicht auf Android). Dies betrifft nur Server, die Zertifikate verwenden, die von einer Zertifizierungsstelle im Mozilla's Root CA Programm ausgestellt wurden. (Firefox Bug 1938242).
APIs
- Die statische Methode
PublicKeyCredential.getClientCapabilities()wird unterstützt und erlaubt es einer Web-App zu prüfen, ob ein Browser bestimmte WebAuthn-Fähigkeiten und Erweiterungen ermöglicht, ohne auf User-Agent-Sniffing zurückgreifen zu müssen. (Firefox Bug 1884466).
DOM
Medien, WebRTC und Web Audio
- Die
midundridEigenschaften desRTCOutboundRtpStreamStatsInterface und diemidEigenschaft desRTCInboundRtpStreamStatsInterface werden jetzt unterstützt. (Firefox Bug 1643001).
WebDriver-Konformität (WebDriver BiDi, Marionette)
Allgemein
-
Um Benutzereingaben realistischer zu gestalten und echte Benutzerinteraktionen im Browser besser zu simulieren, haben wir die Verarbeitung der Aktionssequenz der
Perform Actions-Befehle sowohl in Marionette als auch in WebDriver BiDi vom Inhaltsprozess zum Elternprozess verschoben. Während Ereignisse immer noch synchron vom Inhaltsprozess gesendet werden, werden sie nun asynchron über IPC-Aufrufe ausgelöst, die vom Elternprozess ausgehen (Firefox Bug 1922077).Aufgrund dieser erheblichen Änderung können noch einige Regressionen bestehen. Wenn Sie auf Probleme stoßen, reichen Sie bitte einen Fehlerbericht für den Remote-Agent ein. Wenn die Regressionsten Tests blockieren, können Sie vorübergehend zum vorherigen Verhalten zurückkehren, indem Sie die Firefox-Einstellung
remote.events.async.enabledauffalsesetzen. -
Mit der Verarbeitung von Aktionen, die nun im Elternprozess erfolgt, wurden auch die folgenden Probleme behoben:
-
Wir unterstützen jetzt die ordnungsgemäße Warteschlangenbildung von Aktionssequenzen ohne Race-Conditions. Dies ist besonders wichtig für den
input.performActions-Befehl von WebDriver BiDi, der mehrmals parallel aufgerufen werden kann und die eingereihten Aktionen nacheinander ausführen muss (Firefox Bug 1915798). -
Beim Versenden von Aktionen wird die
input cancel listnun erst dann korrekt aktualisiert, nachdem die Aktion erfolgreich versendet wurde. Zuvor konnte, wenn eine Aktion nicht ausgeführt werden konnte, eine Rückwärtsaktion hinterlassen werden, was zu unerwarteten Nebeneffekten führen konnte, wenn der Status derinput sourcezurückgesetzt wird (Firefox Bug 1930845). -
Bei der Ausführung von Aktionen werden einzelne Aktionen nun während des Versendens erneut versucht, insbesondere in Situationen, in denen eine einzelne Aktion eine Navigation auslöst, die den aktuellen Browserkontext ersetzt (Firefox Bug 1930530, Firefox Bug 1930090).
-
Bei der Ausführung von Aktionen trat ein
TypeError: can't access property "getActor", browsingContext.currentWindowGlobal is null-Fehler auf, wenn eine Aktion (nicht die letzte) in der Aktionskette das Fenster geschlossen hat und die verbleibenden Aktionen noch versendet wurden (Firefox Bug 1932916).
-
-
Einige Marionette- und WebDriver BiDi-Befehle, die intern darauf angewiesen sind, dass ein
requestAnimationFrameausgegeben wird, bevor sie zurückkehren, würden hängen bleiben, wenn der aktuelle Browserkontext während ihrer Ausführung navigiert wurde (Firefox Bug 1937118).
WebDriver BiDi
- Unterstützung für das
format-Feld imbrowsingContext.captureScreenshot-Befehl hinzugefügt, wodurch Clients verschiedene Dateiformate (derzeit werdenimage/pngundimage/jpegunterstützt) angeben und die Kompressionsqualität für Screenshots definieren können (Firefox Bug 1861737).
Änderungen für Add-on-Entwickler
commands.updatekann jetzt Tastenkürzel für Befehle den TastenF13bisF19zuweisen. Allerdings können Erweiterungen diese Tasten nicht über dencommandsmanifest.json-Schlüssel zuweisen. Benutzer können auch Funktionen diesen Tasten über Erweiterte Tastenkürzel verwalten zuweisen (Firefox Bug 1924542)
Experimentelle Webfunktionen
Diese Funktionen sind neu in Firefox 135 eingeführt, aber standardmäßig deaktiviert. Um sie auszuprobieren, suchen Sie auf der about:config Seite nach dem entsprechenden Schalter und setzen Sie ihn auf true. Weitere solche Funktionen finden Sie auf der Seite Experimentelle Features.
- Temporal API (Nightly Release):
javascript.options.experimental.temporal. Das Temporal-Objekt zielt darauf ab, die Arbeit mit Daten und Zeiten in verschiedenen Szenarien zu vereinfachen, mit eingebauten Zeitzonen- und Kalenderdarstellungen. (Firefox Bug 1912511). - Priorisierte Task-Scheduling-API:
dom.enable_web_task_scheduling. Die Priorisierte Task-Scheduling-API bietet eine standardisierte Möglichkeit, alle Aufgaben, die zu einer Anwendung gehören, zu priorisieren, egal ob sie im Code eines Website-Entwicklers definiert sind oder in Drittanbieter-Bibliotheken und -Frameworks enthalten sind. Diese wurde vorübergehend in Nightly-Builds deaktiviert, um Schäden im Feld zu vermeiden. (Firefox Bug 1938242).