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 hat den Veröffentlichungsnamen Quantum erhalten, nach dem Firefox Quantum Ingenieurprojekt, das darauf abzielt, Firefox von Grund auf neu aufzubauen, um bedeutende Leistungs-, Stabilitäts- und visuelle Verbesserungen mit sich zu bringen. Dies ist die erste Version von Firefox, die einige dieser Verbesserungen liefert, und wir wollten diesen Anlass entsprechend 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 neue parallele CSS-Engine — auch bekannt als Quantum CSS oder Stylo — ist in Firefox 57 für Desktop standardmäßig aktiviert, und Mobile-Versionen von Firefox folgen später. Entwickler sollten keine signifikant anderen Unterschiede bemerken, außer einer ganzen Reihe von Leistungsverbesserungen. Es gibt jedoch eine Reihe von kleineren funktionalen Unterschieden in Stylo, die implementiert wurden, um nicht-standardmäßiges Gecko-Verhalten zu beheben, das eliminiert werden sollte. Wir werden über solche Unterschiede auf Referenzseiten und in den Versionshinweisen berichten (siehe Quantum CSS Hinweise).

Änderungen für Webentwickler

Entwicklerwerkzeuge

Keine Änderungen.

HTML

CSS

Quantum CSS Hinweise

Folgende Bugs wurden in Quantum behoben:

  • Radiale Verlaufswerte wie radial-gradient(circle gold,red) funktionierten im alten Gecko-Style-System, obwohl sie es nicht sollten, weil das Komma zwischen circle und gold fehlt (Firefox Bug 1383323).
  • Wenn Sie ein außerhalb des Bildschirms befindliches Element auf den Bildschirm animieren, aber eine Verzögerung angeben, führt Gecko auf einigen Plattformen, z.B. Windows, kein Neuzeichnen durch (Firefox Bug 1383239).
  • In Gecko können <details> Elemente nicht standardmäßig geöffnet gemacht 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 gewechselt wird (Firefox Bug 726550).
  • In Gecko kann das Abbrechen einer Füllanimations (z.B. mit animation-fill-mode: forwards eingestellt) einen Übergang am gleichen Element auslösen, obwohl dies nur einmal geschieht (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 des übergeordneten 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 als erwartet ausfallen (siehe Firefox Bug 1391341).
  • Gecko nutzt denselben Mechanismus beim Parsen eines url-tokens, wenn die domain() oder url-prefix() URL-Matching-Funktionen für eine @-moz-document Regel geparst werden. Quantum CSS nutzt nicht denselben Mechanismus und betrachtet Tokens nicht als ungültig, wenn sie Klammern oder Anführungszeichen enthalten (Firefox Bug 1362333).
  • In Gecko wird das Setzen einer Systemschriftart als Wert eines Canvas 2D-Kontextes font (z.B. menu) nicht richtig zurückgegeben (es wird nichts zurückgegeben). Dies wurde in Quantum behoben (Firefox Bug 1374885).
  • In Gecko wird beim Erstellen eines abgetrennten Unterbaums (z.B. eines <div> erstellt mit createElement(), der noch nicht in das DOM eingefügt wurde) das Wurzelelement des Unterbaums als Block-Level-Element gesetzt. In Quantum CSS wird dies als Inline gesetzt, gemäß der Spezifikation (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).
  • calc(1*2*3) wird in Gecko nicht erfolgreich geparst; Quantum CSS behebt dies (Firefox Bug 1379467).
  • In Quantum CSS wird calc() überall unterstützt, wo es die Spezifikation beschreibt (Firefox Bug 1350857). In Gecko wird es nicht unterstützt.
  • Gecko hat einen Bug, bei dem die ::before und ::after Pseudoelemente immer noch generiert werden, selbst wenn der Wert der content Eigenschaft 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 unterschiedlicher Anzahl von <position> Werten, z.B. background-position: 10px 10px; und background-position: 20px 20px, 30px 30px;, übergangsweise verändert werden kann (siehe Firefox Bug 1390446).

SVG

Keine Änderungen.

JavaScript

APIs

Neue APIs

DOM

DOM-Ereignisse

Keine Änderungen.

Media und WebRTC

  • Unterstützung für Nachrichten beliebiger Größe (bis zu 1 GiB, obwohl 256 KiB interoperabler ist) ist jetzt auf RTCDataChannel durch Nutzung der End-of-Record (EOR) Markierung auf SCTP Nachrichten verfügbar. Für mehr Informationen siehe Verständnis von Nachrichten-Größenlimits (Firefox Bug 979417).

    Hinweis: Da Firefox das SCTP Stream Schedulers und User Message Interleaving-Protokoll, das die Fähigkeit bietet, SCTP-Nachrichten aus mehreren Quellen zu überlagern, noch nicht unterstützt, kann das Senden großer Datenobjekte bedeutende Verzögerungen bei allen anderen SCTP-Verkehrsarten verursachen. Siehe Firefox Bug 1381145, um den Fortschritt bei der Implementierung und Bereitstellung von Stream Scheduler-Unterstützung in Firefox zu verfolgen.

  • Die RTCDataChannel.send() Methode 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 im Rahmen von Firefox Bug 979417 implementiert).

  • Die MediaStream-Aufzeichnungs-API wurde aktualisiert, sodass error Ereignisse, die gesendet werden, um Probleme zu melden, die bei der Aufnahme auftreten, jetzt vom Typ MediaRecorderErrorEvent sind, anstatt generische Ereignisse zu sein.

  • Die Dokumentation zu OfflineAudioContext wurde aktualisiert, da seine Eingaben im Konstruktor jetzt in einem Objekt angegeben werden können, anstatt als Liste von Parametern (Firefox Bug 1388591).

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

Sicherheit

  • resource:// URLs leaken keine Information mehr (Firefox Bug 863246)
  • Data URLs werden jetzt als einzigartige opake Ursprünge behandelt, anstatt den Ursprung des für die Navigation verantwortlichen Einstellungsobjekts zu erben (Firefox Bug 1324406).

Plugins

Keine Änderungen.

Sonstiges

  • Der Headless Modus von Firefox enthält jetzt ein -screenshot Flag, das es ermöglicht, Screenshots von Websites direkt über die Kommandozeile zu machen (Firefox Bug 1378010).

Entfernung aus der Webplattform

HTML

  • <link rel="preload"> (siehe Inhalte mit rel="preload" vorladen) wurde in Firefox 57 deaktiviert, aufgrund verschiedener Webkompatibilitätsprobleme (z.B. Firefox Bug 1405761). Eine verbesserte Version, die auch für nicht-cachebare 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 jegliche Unterstützung für XPCOM-basierte 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:

Ältere Versionen