Firefox 57 (Quantum) für Entwickler

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

Firefox 57 === Firefox Quantum

Firefox 57 trägt den Namen Quantum, nach dem Firefox Quantum Ingenieurprojekt, das darauf abzielt, Firefox von Grund auf neu zu entwickeln und dabei erhebliche Leistungs-, Stabilitäts- und visuelle Verbesserungen mitzubringen. Dies ist die erste Version von Firefox, die einige dieser Verbesserungen enthält, daher wollten wir diese Gelegenheit würdigen.

Hinweis: Um mehr über die Quantum-Features in dieser Version zu erfahren, lesen Sie Firefox Quantum Developer Edition: the fastest Firefox ever with Photon UI and better tooling 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 Versionen von Firefox, die später folgen. Entwickler sollten nichts signifikant Anderes bemerken, abgesehen von einer Vielzahl 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 den Referenzseiten und in den Versionshinweisen berichten, falls angemessen (siehe Quantum CSS Hinweise).

Änderungen für Webentwickler

Entwicklerwerkzeuge

Keine Änderungen.

HTML

CSS

Quantum CSS Hinweise

Folgende Bugs wurden in Quantum behoben:

  • Radial-Gradient-Werte wie radial-gradient(circle gold,red) funktionieren im alten Gecko-Stylesystem, obwohl sie es nicht sollten, wegen des fehlenden Kommas zwischen circle und gold (Firefox Bug 1383323).
  • Wenn Sie ein Offscreen-Element onscreen animieren, aber eine Verzögerung angeben, malt Gecko auf einigen Plattformen (z. B. Windows) nicht neu (Firefox Bug 1383239).
  • In Gecko können <details> Elemente standardmäßig nicht mit dem open Attribut geöffnet werden, wenn sie eine aktive animation darauf haben (Firefox Bug 1382124).
  • In Gecko funktionieren transitions nicht, wenn von einem text-shadow mit einer spezifizierten 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) eine auf demselben Element gesetzte Transition auslösen, jedoch nur einmal (siehe Firefox Bug 1192592 und diese Testfälle für mehr Informationen). Im Allgemeinen sollten deklarative Animationen keine Transitionen auslösen.
  • Animationen, die em-Einheiten verwenden, werden nicht durch Änderungen der font-size auf dem übergeordneten Element des animierten Elements in Gecko beeinflusst, obwohl sie es sollten (Firefox Bug 1254424).
  • Gecko behandelt die font-size Vererbung anders als Quantum CSS, was bedeutet, dass für einige Spracheinstellungen vererbte Schriftgrößen kleiner sind als erwartet (siehe Firefox Bug 1391341).
  • Gecko verwendet denselben Mechanismus beim Parsen eines url-Tokens zum Parsen der domain() oder url-prefix() URL-Matching-Funktionen 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 Systemschrift als Wert eines Canvas-2D-Kontexts font (z. B. menu) setzen, schlägt das Abrufen des Schriftwerts fehl, um die erwartete Schrift zurückzugeben (es wird nichts zurückgegeben). Dies wurde in Quantum behoben. (Firefox Bug 1374885).
  • In Gecko, wenn Sie einen abgetrennten Teilbaum erstellen (z. B. ein <div>, erstellt mit createElement(), das noch nicht in den DOM eingefügt ist), wird das Wurzelelement des Teilbaums als Block-Element gesetzt. In Quantum CSS wird dies gemäß Spezifikation als Inline-Element 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 laut Spezifikation erwartet (Firefox Bug 1350857). In Gecko nicht.
  • Gecko hat einen Bug, bei dem die ::before und ::after Pseudoelemente immer noch generiert werden, selbst wenn der content Eigenschaftswert auf normal oder none gesetzt ist. Gemäß Spezifikation sollten sie das nicht (Firefox Bug 1387931).
  • Ein weiterer Gecko-Bug bedeutet, dass die background-position Eigenschaft nicht zwischen zwei Werten mit unterschiedlichen Anzahlen an <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

  • Unterstützung für 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 der Größenbeschränkungen für Nachrichten für mehr Informationen (Firefox Bug 979417).

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

  • Die MediaStream Aufnahme-API wurde so aktualisiert, dass error Ereignisse, die gesendet werden, um Probleme zu melden, die während der Aufnahme auftreten, jetzt vom Typ MediaRecorderErrorEvent sind, anstatt generische Ereignisse zu sein.

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

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

Sicherheit

  • resource:// URLs leaken keine Informationen mehr (Firefox Bug 863246)
  • Daten-URLs werden jetzt als eindeutige undurchsichtige Herkunft behandelt, anstatt die Herkunft des Objekts zu erben, das für die Navigation verantwortlich ist (Firefox Bug 1324406).

Plugins

Keine Änderungen.

Sonstiges

Entfernungen aus der Webplattform

HTML

  • <link rel="preload"> (siehe Preloading content with rel="preload") wurde in Firefox 57 deaktiviert wegen verschiedener Webkompatibilitätsprobleme (z. B. Firefox Bug 1405761). Eine verbesserte Version, die für nicht-cachebare Ressourcen funktioniert, wird voraussichtlich in Firefox 58 veröffentlicht.

APIs

SVG

Keine Änderungen.

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

Hinweis: Ab Firefox 57 wird 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, oder sie funktionieren nicht mehr.

WebExtensions

Die folgenden APIs wurden hinzugefügt oder erweitert:

Ältere Versionen