Firefox 57 (Quantum) für Entwickler
Dieser Artikel liefert 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 Freigabenamen Quantum, nach dem Firefox Quantum-Entwicklungsprojekt, das darauf abzielte, Firefox von Grund auf neu zu gestalten, mit erheblichen Verbesserungen in Leistung, Stabilität und visueller Darstellung. Dies ist die erste Version von Firefox, die einige dieser Verbesserungen enthält, daher wollten wir diesem Anlass besondere Aufmerksamkeit schenken.
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 Tools von Dan Callahan.
Firefox's neuer paralleler CSS-Engine — auch bekannt als Quantum CSS oder Stylo — ist in Firefox 57 für Desktop standardmäßig aktiviert, mit mobilen Versionen von Firefox, die später folgen. Entwickler sollten nichts Signifikantes bemerken, abgesehen von einer Vielzahl an Leistungsverbesserungen. Es gibt jedoch eine Reihe von kleineren funktionalen Unterschieden in Stylo, die implementiert wurden, um nicht-standardmäßiges Gecko-Verhalten zu beheben, das entfernt werden sollte. Wir werden über solche Unterschiede auf Referenzseiten und in den Versionshinweisen berichten, sofern es angebracht ist (siehe Quantum CSS Hinweise).
Änderungen für Webentwickler
>Entwickler-Tools
Keine Änderungen.
HTML
- Die date und time
<input>Typen sind jetzt in allen Builds aktiviert (Firefox Bug 1399036).
CSS
- Die Werte
minimal-uiundstandalonederdisplay-modeMedia Query werden jetzt unterstützt (Firefox Bug 1369815). Siehe auch das Web-App-ManifestdisplayFeld. - Die Eigenschaften
grid-row-gapundgrid-column-gapwerden nicht mehr durch diegridKurzschreibweise zurückgesetzt (Firefox Bug 1387410). - Die Voreinstellung
layout.css.clip-path-shapes.enabledwurde entfernt (Firefox Bug 1399767). Diese Voreinstellung erlaubte das Deaktivieren des<basic-shape>-Supports inclip-path. Diese Unterstützung wurde in Firefox 54 eingeführt und kann nicht mehr deaktiviert werden.
Quantum CSS Hinweise
Folgende Bugs wurden in Quantum behoben:
- Radiale Farbverlaufwerte wie
radial-gradient(circle gold,red)funktionieren im alten Gecko-Stilsystem, auch wenn sie es nicht sollten, wegen des fehlenden Kommas zwischencircleundgold(Firefox Bug 1383323). - Wenn Sie ein Offscreen-Element ins Sichtfeld animieren, aber eine Verzögerung angeben, wird Gecko auf einigen Plattformen, z.B. Windows, nicht neu gezeichnet (Firefox Bug 1383239).
- In Gecko können
<details>Elemente nicht standardmäßig mit demopenAttribut geöffnet sein, wenn sie eineanimationauf sich haben (Firefox Bug 1382124). - In Gecko funktionieren
transitionsnicht, wenn sie von einemtext-shadowmit einer angegebenen Farbe zu einemtext-shadowohne angegebener Farbe übergehen (Firefox Bug 726550). - In Gecko kann das Abbrechen einer Füllanimation (z.B. mit
animation-fill-mode: forwardsgesetzt) einen Übergang am gleichen Element auslösen, obwohl nur einmal (siehe Firefox Bug 1192592 und diese Testfälle für mehr Informationen). Im Allgemeinen sollten deklarative Animationen keine Übergänge auslösen. - Animationen, die em-Einheiten verwenden, werden in Gecko nicht von Änderungen der
font-sizedes Elternteils des animierten Elements beeinflusst, obwohl sie es sollten (Firefox Bug 1254424). - Gecko behandelt auch die Vererbung von
font-sizeanders als Quantum CSS, was bedeutet, dass für einige Spracheinstellungen geerbte Schriftgrößen kleiner als erwartet ausfallen (siehe Firefox Bug 1391341). - Gecko verwendet denselben Mechanismus, der auch beim Parsen eines URL-Tokens verwendet wird, beim Parsen der
domain()oderurl-prefix()URL-Übereinstimmungsfunktionen 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 eines 2D-Kontextes in einer Leinwand
font(z. B.menu) setzen, schlägt das Abrufen des Schriftwertes 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 abgetrennten Subtree erstellen (z. B. ein
<div>erstellt mitcreateElement(), das noch nicht in das DOM eingefügt ist), wird das Wurzelelement des Subtrees als Block-Element gesetzt. In Quantum CSS wird dies inline gesetzt, wie es der Spezifikation entspricht (Firefox Bug 1374994). - In Gecko werden
calc()-Ausdrücke — wodurch der Wert ungültig wird — abgelehnt, wenn sie als Radiuskomponente einerradial-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 die Spezifikation es erklärt (Firefox Bug 1350857). In Gecko ist es nicht der Fall. - Gecko hat einen Fehler, wobei die
::beforeund::afterPseudo-Elemente immer noch generiert werden, auch wenn dercontentEigenschaftenwert aufnormalodernonegesetzt ist. Laut Spezifikation sollten sie nicht (Firefox Bug 1387931). - Ein weiterer Fehler in Gecko bedeutet, dass die
background-position-Eigenschaft nicht zwischen zwei Werten mit unterschiedlichen Zahlen von<position>-Werten übergehen kann, zum Beispielbackground-position: 10px 10px;undbackground-position: 20px 20px, 30px 30px;(siehe Firefox Bug 1390446).
SVG
Keine Änderungen.
JavaScript
- Die nicht-standardisierte
for each...inSchleife, ursprünglich Teil von ECMAScript for XML (E4X), wurde entfernt. Bitte verwenden Sie stattdessenfor...of. (Firefox Bug 1083470). - Die Methoden
Object.prototype.watch()undObject.prototype.unwatch()sind veraltet, werfen nun eine Warnung beim Gebrauch und werden bald entfernt (Firefox Bug 934669). - Die nicht-standardisierten
IteratorundStopIteration-Objekte sowie das veraltete Iterationsprotokoll wurden entfernt (Firefox Bug 1098412). - Async Generator ist jetzt aktiviert (Firefox Bug 1352312).
- Die
for await (... of ...)-Syntax ist jetzt aktiviert (Firefox Bug 1352312).
APIs
Neue APIs
- Die
PerformanceObserverAPI ist jetzt standardmäßig aktiviert (Firefox Bug 1386021). - Die
AbortControllerundAbortSignalSchnittstellen (bekannt als die Abort-API) wurden hinzugefügt, die es ermöglicht, DOM-Anfragen (wie fetch-Anfragen) abzubrechen, falls gewünscht (Firefox Bug 1378342). - [2] Die Storage-API ist implementiert und standardmäßig aktiviert (Firefox Bug 1399038).
DOM
- Die
Selection.typeEigenschaft der Selection API ist jetzt implementiert (Firefox Bug 1359157). Document.createEvent('FocusEvent')wird jetzt unterstützt (Firefox Bug 1388069).- Die
filesEigenschaft derHTMLInputElementSchnittstelle ist jetzt setzbar (Firefox Bug 1384030). - Die Methode
HTMLDocument.getSelection()wurde zurDocumentSchnittstelle verschoben, sodass sie für XML-Dokumente verfügbar ist (Firefox Bug 718711). - Das
messageerrorEreignis ist jetzt implementiert und kann durch Event-Handler, die auf Nachrichtenzielfenstern implementiert sind, Code bei der Auslösung ausführen — siehe dasmessageerrorEreignis vonMessagePort,DedicatedWorkerGlobalScope,Worker,BroadcastChannelundWindow(Firefox Bug 1359017). - Wenn
HeadersWerte iteriert werden, werden sie automatisch in lexikographischer Reihenfolge sortiert und Werte von doppelten Header-Namen werden kombiniert (Firefox Bug 1396848).
DOM-Ereignisse
Keine Änderungen.
Medien und WebRTC
-
Unterstützung für Nachrichten jeder Größe (bis zu 1GiB, obwohl 256kiB interoperabler ist) wird jetzt auf
RTCDataChanneldurch Verwendung der End-of-Record (EOR) Flagge auf SCTP-Nachrichten unterstützt. Siehe Verständnis von Nachrichten-Größenbeschränkungen für weitere Informationen (Firefox Bug 979417).Hinweis: Da Firefox das SCTP Stream Schedulers und User Message Interleaving Protokoll, das die Möglichkeit bietet, SCTP-Nachrichten aus mehreren Quellen zu überlappen, noch nicht unterstützt, kann das Senden großer Datenobjekte bedeutende Verzögerungen bei allen anderen SCTP-Verkehrsarten verursachen. Sehen Sie Firefox Bug 1381145 um den Fortschritt bei der Implementierung und Bereitstellung von Stream-Scheduler-Unterstützung in Firefox zu verfolgen.
-
Die Methode
RTCDataChannel.send()kann jetzt eineTypeError-Ausnahme werfen, wenn die Größe der zu sendenden Nachricht nicht mit dem empfangenden User Agent kompatibel ist (dies ist als Teil von Firefox Bug 979417 implementiert). -
Die MediaStream Recording API wurde aktualisiert, sodass
errorEreignisse, die gesendet werden, um Probleme, die beim Aufnehmen auftreten, zu melden, jetzt vom TypMediaRecorderErrorEventsind anstatt generische Ereignisse zu sein. -
Die Dokumentation um
OfflineAudioContextwurde aktualisiert, da die Eingaben seines Konstruktors jetzt in einem Objekt anstatt in einer Parameterliste spezifiziert werden können (Firefox Bug 1388591). -
Die Web Audio API unterstützt jetzt korrekt Mehrkanal-Ausgabe (Firefox Bug 1378070).
Sicherheit
resource://URLs leaken keine Informationen mehr (Firefox Bug 863246).- Daten-URLs werden jetzt als eindeutige, undurchsichtige Ursprünge behandelt, anstatt den Ursprung des für die Navigation verantwortlichen Einstellungen-Objekts zu erben (Firefox Bug 1324406).
Plugins
Keine Änderungen.
Sonstiges
- Der Headless-Modus von Firefox enthält jetzt ein
-screenshot-Flag, das es Ihnen ermöglicht, Webseiten-Screenshots direkt von der Befehlszeile aufzunehmen (Firefox Bug 1378010).
Entfernt aus der Web-Plattform
>HTML
<link rel="preload">(siehe Preloading-Inhalte mit rel="preload") wurde in Firefox 57 wegen verschiedener Web-Kompatibilitätsprobleme deaktiviert (z.B. Firefox Bug 1405761). Eine verbesserte Version, die für nicht-cache-fähige Ressourcen funktioniert, wird voraussichtlich in Firefox 58 eingeführt.
APIs
- Mozillas proprietäre Social API wurde vollständig entfernt (Firefox Bug 1388902).
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 Browser-Erweiterungen (auch bekannt als WebExtensions) konvertiert werden, ansonsten funktionieren sie nicht.
WebExtensions
Folgende APIs wurden hinzugefügt oder erweitert:
-
- Unterstützung für Trennzeichen durch
bookmarks.BookmarkTreeNodeType
- Unterstützung für Trennzeichen durch
-
theme_iconsEigenschaft für hell/dunkel Themen-Symbole
-
onCreatedonRemovedonUpdatedcolorCodeundiconUrlincontextualIdentities.ContextualIdentity
-
incognito-Option indownloads.download()estimatedEndTimeEigenschaft indownloads.DownloadItem
-
FindProxyForURL()kann jetzt ein Objekt zurückgeben
-
runtime.openOptionsPage()Unterstützung auf Android
-
loadReplaceOption intabs.update()discardedEigenschaft intabs.Tab,tabs.onUpdated, undtabs.query()tabs.create()kann "view-source:" URLs öffnenopenerTabIdEigenschaft intabs.Tab,tabs.create(),tabs.query(), undtabs.update()
-
colors.toolbarcolors.toolbar_fieldcolors.toolbar_field_textcolors.toolbar_text
-
windowIdOption zutheme.update()
-
filterResponseData()proxyInfoEigenschaft inwebRequestEreignissen
-
allowScriptsToCloseOption inwindows.create()