Firefox 57 (Quantum) für Entwickler

Dieser Artikel bietet Informationen zu den Änderungen in Firefox 57 (auch bekannt als Firefox Quantum), die Entwickler betreffen werden. Firefox 57 wurde am 14. November 2017 veröffentlicht.

Firefox 57 === Firefox Quantum

Firefox 57 erhielt den Veröffentlichungsnamen Quantum, benannt nach dem Firefox Quantum Entwicklungsprojekt, das darauf abzielt, Firefox von Grund auf neu aufzubauen und dabei bedeutende Verbesserungen in Leistung, Stabilität und Aussehen zu erreichen. Dies ist die erste Firefox-Version, die einige dieser Verbesserungen mit sich bringt, daher wollten wir den Anlass würdigen.

Hinweis: Um mehr über die Quantum-Funktionen in dieser Version zu erfahren, lesen Sie Firefox Quantum Developer Edition: der schnellste Firefox aller Zeiten mit Photon UI und besseren Werkzeugen von Dan Callahan.

Firefox's neuer paralleler CSS-Engine — auch bekannt als Quantum CSS oder Stylo — ist standardmäßig in Firefox 57 für den Desktop aktiviert, mit mobilen Firefox-Versionen, die später folgen werden. Entwickler sollten nichts wesentlich anderes bemerken, abgesehen von einer ganzen Reihe von Leistungsverbesserungen. Es gibt jedoch eine Reihe von geringfügigen funktionalen Unterschieden in Stylo, implementiert, um nicht-standardmäßiges Gecko-Verhalten zu korrigieren, das beseitigt werden sollte. Wir werden über solche Unterschiede auf Referenzseiten und in den Versionshinweisen berichten, soweit es angemessen ist (siehe Quantum CSS Notizen).

Änderungen für Webentwickler

Entwicklertools

Keine Änderungen.

HTML

CSS

Quantum CSS Notizen

Die folgenden Bugs wurden in Quantum behoben:

  • Radiale Verlaufswerte wie radial-gradient(circle gold,red) funktionieren im alten Gecko-Stilsystem, obwohl sie es wegen des fehlenden Kommas zwischen circle und gold nicht sollten (Firefox-Bug 1383323).
  • Wenn Sie ein Offscreen-Element Onscreen animieren, aber eine Verzögerung angeben, wird Gecko auf einigen Plattformen nicht neu gezeichnet, z. B. Windows (Firefox-Bug 1383239).
  • In Gecko können <details> Elemente nicht standardmäßig mithilfe des open Attributs geöffnet werden, wenn sie eine aktive animation haben (Firefox-Bug 1382124).
  • In Gecko funktionieren transitions nicht, wenn von einem text-shadow mit einer angegebenen Farbe zu einem text-shadow ohne angegebene Farbe übergegangen wird (Firefox-Bug 726550).
  • In Gecko kann das Abbrechen einer füllenden Animation (z. B. mit animation-fill-mode: forwards gesetzt) einen Übergang auslösen, der auf dasselbe Element angewendet wird, obwohl nur einmal (siehe Firefox-Bug 1192592 und diese Testfälle für weitere Informationen). Im Allgemeinen sollten deklarative Animationen keine Übergänge auslösen.
  • Animationen, die em-Einheiten verwenden, sind nicht von Änderungen der font-size des übergeordneten Elements des animierten Elements in Gecko betroffen, obwohl sie es sollten (Firefox-Bug 1254424).
  • Gecko behandelt auch die Vererbung der font-size anders als Quantum CSS, was bedeutet, dass bei einigen Spracheinstellungen vererbte Schriftgrößen kleiner als erwartet sind (siehe Firefox-Bug 1391341).
  • Gecko verwendet denselben Mechanismus, der beim Parsen eines url-Tokens verwendet wird, wenn die domain() oder url-prefix() URL-Matching-Funktionen für eine @-moz-document Regel geparst werden. Quantum CSS verwendet nicht denselben Mechanismus und betrachtet Token nicht als ungültig, wenn sie Klammern oder Anführungszeichen enthalten (Firefox-Bug 1362333).
  • In Gecko, wenn Sie eine Systemschriftart als den Wert eines Canvas-2D-Kontextes font (z. B. menu) setzen, schlägt das Abrufen des Schriftwerts fehl, um die erwartete Schriftart zurückzugeben (es wird nichts zurückgegeben). Dies wurde in Quantum behoben. (Firefox-Bug 1374885).
  • In Gecko, wenn Sie einen losgelösten Teilbaum erstellen (z. B. ein <div> mittels createElement(), der noch nicht in das DOM eingefügt ist), wird das Wurzelelement des Teilbaums als block-level Element gesetzt. In Quantum CSS wird dies als inline gesetzt, wie es die Spezifikation vorsieht (Firefox-Bug 1374994).
  • In Gecko werden calc() Ausdrücke abgelehnt — wodurch der Wert ungültig wird — wenn sie als Radiuskomponente einer radial-gradient() Funktion verwendet werden (Firefox-Bug 1376019).
  • In Gecko wird calc(1*2*3) nicht erfolgreich geparst; Quantum CSS behebt dies (Firefox-Bug 1379467).
  • In Quantum CSS wird calc() überall dort unterstützt, wo es die Spezifikation erklärt (Firefox-Bug 1350857). In Gecko nicht.
  • Gecko hat einen Bug, bei dem die ::before und ::after Pseudo-Elemente immer noch erzeugt werden, selbst wenn der content Eigenschaftswert auf normal oder none gesetzt ist. Laut Spezifikation sollten sie nicht erzeugt werden (Firefox-Bug 1387931).
  • Ein weiterer Gecko-Bug bedeutet, dass die background-position Eigenschaft nicht zwischen zwei Werten mit unterschiedlichen Zahlen von <position> Werten übergehen kann, zum Beispiel background-position: 10px 10px; und background-position: 20px 20px, 30px 30px; (siehe Firefox-Bug 1390446).

SVG

Keine Änderungen.

JavaScript

APIs

Neue APIs

DOM

DOM-Ereignisse

Keine Änderungen.

Medien und WebRTC

  • Die Unterstützung von Nachrichten beliebiger Größe (bis zu 1GiB, obwohl 256kiB interoperabler ist) wird jetzt auf RTCDataChannel durch Verwendung des End-of-record (EOR) Flags auf SCTP Nachrichten unterstützt. Siehe Verständnis von Nachrichtenbegrenzungsgrößen für weitere Informationen (Firefox-Bug 979417).

    Hinweis: Da Firefox das SCTP ndata Protokoll, das die Möglichkeit bietet, SCTP Nachrichten von mehreren Quellen zu verzahnen, noch nicht unterstützt, kann das Senden großer Datenobjekte zu erheblichen Verzögerungen bei jeglichem anderen SCTP Traffic führen. Siehe Firefox-Bug 1381145 um den Fortschritt bei der Implementierung und Bereitstellung der ndata-Unterstützung in Firefox zu verfolgen.

  • Die Methode RTCDataChannel.send() kann jetzt eine TypeError-Ausnahme werfen, wenn die Größe der Nachricht, die Sie senden möchten, nicht mit dem empfangenden user agent kompatibel ist (dies wurde im Rahmen von Firefox-Bug 979417 implementiert).

  • Die MediaStream Aufnahme-API wurde aktualisiert, sodass error Ereignisse, die gesendet werden, um Probleme zu melden, die während der Aufnahme auftreten, jetzt vom Typ MediaRecorderErrorEvent sind und nicht mehr generische Ereignisse.

  • Die Dokumentation zu OfflineAudioContext wurde aktualisiert, da die Eingaben des Konstruktors nun in einem Objekt anstelle einer Parameterliste angegeben werden können (Firefox-Bug 1388591).

  • Die Web Audio API unterstützt jetzt ordnungsgemäß Mehrkanalausgaben (Firefox-Bug 1378070).

Sicherheit

  • resource:// URLs lecken keine Informationen mehr (Firefox-Bug 863246)
  • Daten-URLs werden jetzt als eindeutige, undurchsichtige Ursprünge behandelt, anstatt den Ursprung des für die Navigation zuständigen Einstellungsobjekts zu erben (Firefox-Bug 1324406).

Plugins

Keine Änderungen.

Sonstiges

  • Der Firefox Headless-Modus enthält jetzt ein -screenshot Flag, das Ihnen ermöglicht, Website-Screenshots direkt von der Befehlszeile aus zu machen (Firefox-Bug 1378010).

Entfernungen von der Webplattform

HTML

  • <link rel="preload"> (siehe Inhalte mit rel="preload" vorladen) wurde in Firefox 57 aufgrund verschiedener Webkompatibilitätsprobleme deaktiviert (z. B. Firefox-Bug 1405761). Eine verbesserte Version, die für nicht-cachefähige Ressourcen funktioniert, wird voraussichtlich in Firefox 58 eingeführt.

APIs

SVG

Keine Änderungen.

Änderungen für Add-on- und Mozilla-Entwickler

Hinweis: Ab Firefox 57 wurde die gesamte Unterstützung für XPCOM-basierte Add-ons entfernt. Alle Erweiterungen müssen in die neuen Browsererweiterungen (auch bekannt als WebExtensions) umgewandelt werden, sonst funktionieren sie nicht mehr.

WebExtensions

Die folgenden APIs wurden hinzugefügt oder erweitert:

Ältere Versionen