Firefox 57 (Quantum) für Entwickler

Dieser Artikel bietet Informationen über die Ä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, nach dem Firefox Quantum Entwicklungsprojekt, das darauf abzielt, Firefox von Grund auf neu zu gestalten und dabei erhebliche Verbesserungen in der Leistung, Stabilität und visuellen Gestaltung bietet. Dies ist die erste Version von Firefox, die einige dieser Verbesserungen ausliefert, und wir wollten diesen Anlass markieren.

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

Firefox's neue parallele CSS-Engine — auch bekannt als Quantum CSS oder Stylo — ist in Firefox 57 für Desktop standardmäßig aktiviert, mobile Versionen von Firefox folgen später. Entwickler sollten keine signifikanten Unterschiede bemerken, abgesehen von einer ganzen Reihe von Leistungsverbesserungen. Es gibt jedoch eine Reihe von kleinen funktionellen Unterschieden in Stylo, die implementiert wurden, um nicht standardkonformes Gecko-Verhalten zu beheben, das eliminiert werden soll. Wir werden über solche Unterschiede auf Referenzseiten und in den Versionshinweisen berichten (siehe Quantum CSS Anmerkungen).

Änderungen für Webentwickler

Entwicklerwerkzeuge

Keine Änderungen.

HTML

CSS

Quantum CSS Anmerkungen

Folgende Bugs wurden in Quantum behoben:

  • Radiale Gradientwerte wie radial-gradient(circle gold,red) funktionieren im alten Gecko-Stilsystem, obwohl sie es nicht sollten, da das Komma zwischen circle und gold fehlt (Firefox Bug 1383323).
  • Wenn Sie ein Off-Screen-Element auf den Bildschirm animieren, aber eine Verzögerung festlegen, wird Gecko auf einigen Plattformen, z. B. unter Windows, nicht neu gezeichnet (Firefox Bug 1383239).
  • In Gecko können <details> Elemente nicht standardmäßig mit dem open Attribut geöffnet werden, wenn sie eine aktive animation haben (Firefox Bug 1382124).
  • In Gecko funktioniert transitions nicht, wenn von einem text-shadow mit einer Farbe zu einem text-shadow ohne spezifizierte 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 auf demselben Element auslösen, jedoch 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 mit em-Einheiten sind nicht von Änderungen der font-size auf dem Elternteil des animierten Elements in Gecko betroffen, obwohl sie es sein sollten (Firefox Bug 1254424).
  • Gecko behandelt auch die font-size Vererbung anders als Quantum CSS, was bedeutet, dass für einige Spracheinstellungen vererbte Schriftgrößen kleiner ausfallen als erwartet (siehe Firefox Bug 1391341).
  • Gecko verwendet denselben Mechanismus beim Parsen eines url-tokens beim Parsen der domain() oder url-prefix() URL-Abgleichsfunktionen für eine @-moz-document Regel. Quantum CSS verwendet nicht denselben Mechanismus und betrachtet Tokens nicht als ungültig, wenn sie Klammern oder Anführungszeichen enthalten (Firefox Bug 1362333).
  • In Gecko, wenn Sie eine Systemschriftart als Wert des font eines Canvas 2D-Kontexts setzen (z. B. menu), schlägt das Abrufen des Schriftwerts fehl, um die erwartete Schriftart zurückzugeben (sie gibt nichts zurück). Dies wurde in Quantum behoben. (Firefox Bug 1374885).
  • In Gecko, wenn Sie einen abgetrennten Teilbaum erstellen (z. B. ein <div>, der mit createElement() erstellt wurde und noch nicht in das DOM eingefügt wurde), wird das Wurzelelement des Teilbaums als Block-Element gesetzt. In Quantum CSS wird dies gemäß der Spezifikation als Inline gesetzt (Firefox Bug 1374994).
  • In Gecko werden calc() Ausdrücke abgelehnt — was den Wert ungültig macht — 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 unterstützt, wo die Spezifikation es erklärt (Firefox Bug 1350857). In Gecko ist es nicht.
  • Gecko hat einen Fehler, bei dem die ::before und ::after Pseudoelemente weiterhin generiert werden, selbst wenn der content Eigenschaftswert auf normal oder none gesetzt ist. Laut Spezifikation sollten sie nicht generiert werden (Firefox Bug 1387931).
  • Ein anderer Fehler in Gecko bedeutet, dass die background-position Eigenschaft nicht zwischen zwei Werten mit unterschiedlicher Anzahl von <position> Werten übergangen werden 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

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

    Hinweis: Da Firefox das SCTP Stream Schedulers and User Message Interleaving Protokoll, das die Fähigkeit bietet, SCTP-Nachrichten von mehreren Quellen zu unterbrechen, noch nicht unterstützt, kann das Senden großer Datenobjekte erhebliche Verzögerungen bei allen anderen SCTP-Verkehr verursachen. Siehe Firefox Bug 1381145, um den Fortschritt bei der Implementierung und Bereitstellung der Stream Scheduler-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 ist als Teil von Firefox Bug 979417 implementiert).

  • Die MediaStream Recording API wurde aktualisiert, sodass error Ereignisse, die gesendet werden um Probleme beim Aufzeichnen zu melden, jetzt vom Typ MediaRecorderErrorEvent sind, anstatt generische Ereignisse zu sein.

  • Die Dokumentation zu OfflineAudioContext wurde aktualisiert, da die Eingaben des Konstrukteurs nun in einem Objekt anstatt als eine Liste von Parametern spezifiziert werden können (Firefox Bug 1388591).

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

Sicherheit

  • resource:// URLs leaken keine Informationen mehr (Firefox Bug 863246)
  • Daten-URLs werden jetzt als eindeutige opake Ursprünge behandelt, anstatt den Ursprung des Navigationskontextes zu erben (Firefox Bug 1324406).

Plugins

Keine Änderungen.

Sonstiges

  • Firefox headless mode beinhaltet jetzt ein -screenshot Flag, das Ihnen erlaubt, Website-Screenshots direkt von der Kommandozeile aus zu machen (Firefox Bug 1378010).

Entfernungen von der Webplattform

HTML

  • <link rel="preload"> (siehe Vorladen von Inhalten mit rel="preload") wurde in Firefox 57 deaktiviert aufgrund verschiedener Web-Kompatibilitätsprobleme (z.B. Firefox Bug 1405761). Eine verbesserte Version, die auch für nicht cachebare Ressourcen funktioniert, wird in Firefox 58 erwartet.

APIs

SVG

Keine Änderungen.

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

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

WebExtensions

Die folgenden APIs wurden hinzugefügt oder erweitert: