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 Namen Quantum erhalten, nach dem Firefox Quantum Ingenieurprojekt, das darauf abzielt, Firefox von Grund auf neu zu entwickeln. Dies bringt große Verbesserungen in Bezug auf Leistung, Stabilität und visuelle Gestaltung mit sich. Dies ist die erste Version von Firefox, die einige dieser Verbesserungen ausliefert, daher wollten wir diesen Anlass kennzeichnen.
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' neue parallele CSS-Engine — auch bekannt als Quantum CSS oder Stylo — ist in Firefox 57 für den Desktop standardmäßig aktiviert, mit Mobilversionen von Firefox, die später folgen sollen. 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 korrigieren, das beseitigt werden soll. Wir werden über solche Unterschiede auf Referenzseiten und in den Versionshinweisen berichten (siehe Quantum CSS-Hinweise).
Änderungen für Webentwickler
>Entwicklerwerkzeuge
Keine Änderungen.
HTML
- Die date und time
<input>
Typen sind jetzt in allen Builds aktiviert (Firefox Bug 1399036).
CSS
- Die Werte
minimal-ui
undstandalone
derdisplay-mode
Medienabfrage werden jetzt unterstützt (Firefox Bug 1369815). Siehe auch das Web App Manifestdisplay
Feld. - Die Eigenschaften
grid-row-gap
undgrid-column-gap
werden durch diegrid
Kurznotation nicht mehr zurückgesetzt (Firefox Bug 1387410). - Die Präferenz
layout.css.clip-path-shapes.enabled
wurde entfernt (Firefox Bug 1399767). Diese Präferenz erlaubte es, die Unterstützung für<basic-shape>
inclip-path
zu deaktivieren. Diese Unterstützung wurde in Firefox 54 bereitgestellt und kann nicht mehr deaktiviert werden.
Quantum CSS-Hinweise
Folgende Fehler wurden in Quantum behoben:
- Radial-Gradient-Werte wie
radial-gradient(circle gold,red)
funktionierten im alten Gecko-Stil-System, obwohl sie es nicht sollten, aufgrund des fehlenden Kommas zwischencircle
undgold
(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, keine Neuzeichnung durch (Firefox Bug 1383239).
- In Gecko können
<details>
Elemente nicht standardmäßig mit demopen
Attribut geöffnet werden, wenn sie eine aktiveanimation
haben (Firefox Bug 1382124). - In Gecko funktionieren
transitions
nicht, wenn sie von einemtext-shadow
mit einer angegebenen Farbe zu einemtext-shadow
ohne angegebene Farbe wechseln (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, allerdings 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 in Gecko nicht von Änderungen derfont-size
am übergeordneten Element der Animation betroffen, obwohl sie es sein sollten (Firefox Bug 1254424). - Gecko behandelt auch die Vererbung von
font-size
anders als Quantum CSS, was bedeutet, dass in einigen Spracheinstellungen vererbte Schriftgrößen kleiner als erwartet ausfallen (siehe Firefox Bug 1391341). - Gecko verwendet denselben Mechanismus, der beim Parsen eines url-token verwendet wird, beim Parsen der
domain()
oderurl-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 2D-Kontextes einer Leinwand
font
einstellen (z.B.menu
), 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 wird eine abgetrennte Unterstruktur (z.B. ein
<div>
, das mitcreateElement()
erstellt wurde und noch nicht in den DOM eingefügt wurde) 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 – was dazu führt, dass der Wert ungültig ist –, 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,
calc()
is supported everywhere that the spec explains it should be (Firefox Bug 1350857). In Gecko ist dies nicht der Fall. - Gecko hat einen Fehler, bei dem die
::before
und::after
Pseudoelemente immer noch generiert werden, selbst wenn dercontent
Eigenschaftswert aufnormal
odernone
gesetzt ist. Laut Spezifikation sollten sie es nicht (Firefox Bug 1387931). - Ein weiterer Gecko-Fehler bedeutet, dass die Eigenschaft
background-position
nicht zwischen zwei Werten mit unterschiedlichen Zahlen von<position>
Werten übergegangen werden kann, zum Beispielbackground-position: 10px 10px;
undbackground-position: 20px 20px, 30px 30px;
(siehe Firefox Bug 1390446).
SVG
Keine Änderungen.
JavaScript
- Die nicht-standardmäßige
for each...in
Schleife, die ursprünglich Teil von ECMAScript für XML (E4X) war, wurde entfernt. Bitte verwenden Sie stattdessenfor...of
. (Firefox Bug 1083470). - Die Methoden
Object.prototype.watch()
undObject.prototype.unwatch()
sind veraltet, werfen jetzt eine Warnung, wenn sie verwendet werden, und werden bald entfernt (Firefox Bug 934669). - Die nicht-standardmäßigen
Iterator
undStopIteration
Objekte sowie das Legacy-Iterationsprotokoll wurden entfernt (Firefox Bug 1098412). - Asynchrone Generatoren sind jetzt aktiviert (Firefox Bug 1352312).
- Die Syntax for await (... of ...) ist jetzt aktiviert (Firefox Bug 1352312).
APIs
Neue APIs
- Die
PerformanceObserver
API ist jetzt standardmäßig aktiviert (Firefox Bug 1386021). - Die Schnittstellen
AbortController
undAbortSignal
(bekannt als die Abort-API) wurden hinzugefügt, um zu ermöglichen, dass DOM-Anfragen (wie Fetch-Anfragen) bei Bedarf abgebrochen werden können (Firefox Bug 1378342). - [2] Die Storage API wurde implementiert und ist standardmäßig aktiviert (Firefox Bug 1399038).
DOM
- Die
Selection.type
Eigenschaft der Selection API ist jetzt implementiert (Firefox Bug 1359157). Document.createEvent('FocusEvent')
wird jetzt unterstützt (Firefox Bug 1388069).- Die
files
Eigenschaft derHTMLInputElement
Schnittstelle ist jetzt setzbar (Firefox Bug 1384030). - Die Methode
HTMLDocument.getSelection()
wurde auf dieDocument
Schnittstelle verschoben, sodass sie nun auch für XML-Dokumente verfügbar ist (Firefox Bug 718711). - Das
messageerror
Ereignis ist jetzt implementiert, und es kann Code ausgeführt werden, wenn das Ereignis über Ereignis-Handler, die auf Nachrichten-Zielen implementiert sind, ausgelöst wird — siehe dasmessageerror
Ereignis vonMessagePort
,DedicatedWorkerGlobalScope
,Worker
,BroadcastChannel
, undWindow
(Firefox Bug 1359017). - Wenn
Headers
Werte iteriert werden, werden sie automatisch lexikographisch sortiert, und Werte von doppelten Header-Namen werden kombiniert (Firefox Bug 1396848).
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 Nachrichten Größenlimits 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 von mehreren Quellen zu verzahnen, noch nicht unterstützt, kann das Senden großer Datenobjekte erhebliche Verzögerungen für den gesamten anderen SCTP-Verkehr verursachen. Siehe Firefox Bug 1381145 zur Verfolgung des Fortschritts bei der Implementierung und Bereitstellung der Unterstützung für Stream Schedulers in Firefox.
-
Die Methode
RTCDataChannel.send()
kann jetzt eineTypeError
Ausnahme auslösen, wenn die Größe der Nachricht, die Sie senden möchten, nicht mit dem empfangenden User-Agent kompatibel ist (dies wird als Teil von Firefox Bug 979417 implementiert). -
Die MediaStream Recording API wurde aktualisiert, sodass
error
Ereignisse, die zur Meldung von Problemen gesendet werden, die beim Aufnehmen auftreten, jetzt vom TypMediaRecorderErrorEvent
sind, anstatt generische Ereignisse zu sein. -
Die Dokumentation zu
OfflineAudioContext
wurde aktualisiert, da die Eingaben des Konstruktors jetzt in einem Objekt anstatt als Liste von Parametern angegeben werden können (Firefox Bug 1388591). -
Die Web Audio API unterstützt jetzt ordnungsgemäß Multi-Channel-Ausgabe (Firefox Bug 1378070).
Sicherheit
resource://
URLs lecken keine Informationen mehr (Firefox Bug 863246)- Daten-URLs werden jetzt als eindeutige 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 Ihnen ermöglicht, Screenshots von Webseiten direkt über die Kommandozeile zu machen (Firefox Bug 1378010).
Entfernungen von der Web-Plattform
>HTML
<link rel="preload">
(siehe Preloading content with rel="preload") wurde in Firefox 57 deaktiviert, aufgrund verschiedener Web-Kompatibilitätsprobleme (z.B. Firefox Bug 1405761). Eine verbesserte Version, die für nicht-cachebare Ressourcen funktioniert, wird voraussichtlich in Firefox 58 veröffentlicht.
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 jegliche Unterstützung für XPCOM-basierte Add-ons entfernt. Alle Erweiterungen müssen in die neuen browser extensions (auch bekannt als WebExtensions) umgewandelt werden, ansonsten funktionieren sie nicht.
WebExtensions
Die folgenden APIs wurden hinzugefügt oder erweitert:
-
- Unterstützung für Trennzeichen durch
bookmarks.BookmarkTreeNodeType
- Unterstützung für Trennzeichen durch
-
theme_icons
Eigenschaft für Licht-/Dunkelthemen-Icons
-
onCreated
onRemoved
onUpdated
colorCode
undiconUrl
incontextualIdentities.ContextualIdentity
-
incognito
Option indownloads.download()
estimatedEndTime
Eigenschaft indownloads.DownloadItem
-
FindProxyForURL()
kann jetzt ein Objekt zurückgeben
-
- Unterstützung für
runtime.openOptionsPage()
auf Android
- Unterstützung für
-
loadReplace
Option intabs.update()
discarded
Eigenschaft intabs.Tab
,tabs.onUpdated
, undtabs.query()
tabs.create()
kann "view-source:" URLs öffnenopenerTabId
Eigenschaft intabs.Tab
,tabs.create()
,tabs.query()
, undtabs.update()
-
colors.toolbar
colors.toolbar_field
colors.toolbar_field_text
colors.toolbar_text
-
windowId
Option fürtheme.update()
-
filterResponseData()
proxyInfo
Eigenschaft inwebRequest
Ereignissen
-
allowScriptsToClose
Option inwindows.create()