Firefox 57 (Quantum) für Entwickler
Dieser Artikel bietet Informationen über die Ä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 hat den Release-Namen Quantum erhalten, nach dem Firefox Quantum Entwicklungsprojekt, das darauf abgezielt hat, Firefox von Grund auf neu zu bauen und dabei wesentliche Verbesserungen in Leistung, Stabilität und Optik mit sich zu bringen. Dies ist die erste Version von Firefox, die einige dieser Verbesserungen enthält, daher wollten wir diesen Anlass markieren.
Hinweis: Weitere Informationen über die Quantum-Funktionen in dieser Version finden Sie in 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 standardmäßig in Firefox 57 für den Desktop aktiviert, wobei mobile Versionen von Firefox später folgen werden. Entwickler sollten nichts signifikant anderes bemerken, abgesehen von einer ganzen Reihe von Leistungsverbesserungen. Es gibt jedoch eine Reihe von geringfügigen funktionalen Unterschieden in Stylo, die implementiert wurden, um nicht standardkonformes Gecko-Verhalten zu beheben, das beseitigt werden sollte. Wir werden über solche Unterschiede auf Referenzseiten und in den Release-Hinweisen berichten, wo dies angemessen ist (siehe Quantum CSS Anmerkungen).
Änderungen für Web-Entwickler
Entwickler-Tools
Keine Änderungen.
HTML
- Die date und time
<input>
Typen sind jetzt in allen Builds aktiviert (Firefox Bug 1399036).
CSS
- Die
minimal-ui
undstandalone
Werte derdisplay-mode
Media Query werden jetzt unterstützt (Firefox Bug 1369815). Siehe auch das Web-App-Manifestdisplay
Feld. - Die
grid-row-gap
undgrid-column-gap
Eigenschaften werden nicht mehr durch diegrid
Kurzform zurückgesetzt (Firefox Bug 1387410). - Die
layout.css.clip-path-shapes.enabled
Einstellung wurde entfernt (Firefox Bug 1399767). Diese Einstellung erlaubte das Deaktivieren der<basic-shape>
Unterstützung inclip-path
. Diese Unterstützung wurde in Firefox 54 bereitgestellt und kann nicht mehr deaktiviert werden.
Quantum CSS Anmerkungen
Folgende Bugs wurden in Quantum behoben:
- Radiale Farbverlauf-Werte wie
radial-gradient(circle gold,red)
funktionieren im alten Gecko-Stilsystem, obwohl sie es nicht sollten, wegen des fehlenden Kommas zwischencircle
undgold
(Firefox Bug 1383323). - Wenn Sie ein Offscreen-Element animieren, das auf den Bildschirm gebracht wird, aber eine Verzögerung angeben, wird in Gecko auf einigen Plattformen nicht nachgezeichnet, z.B. Windows (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 von einemtext-shadow
mit angegebener Farbe zu einemtext-shadow
ohne angegebene Farbe übergegangen wird (Firefox Bug 726550). - In Gecko kann das Abbrechen einer Füllanimation (z.B. mit
animation-fill-mode: forwards
) eine auf dasselbe Element gesetzte Transition auslösen, obwohl nur einmal (siehe Firefox Bug 1192592 und diese Testfälle für mehr Informationen). Im Allgemeinen sollten deklarative Animationen keine Transitions auslösen. - Animationen, die
em
Einheiten nutzen, werden in Gecko nicht von Änderungen derfont-size
des übergeordneten Elements der animierten Elemente beeinflusst, obwohl sie es sollten (Firefox Bug 1254424). - Gecko geht anders mit
font-size
Vererbung um als Quantum CSS, was bedeutet, dass für einige Spracheinstellungen vererbte Schriftgrößen kleiner als erwartet ausfallen (siehe Firefox Bug 1391341). - Gecko verwendet denselben Mechanismus wie beim Parsen eines URL-Tokens zum Parsen der
domain()
oderurl-prefix()
URL-Matching-Funktionen für eine@-moz-document
Regel. Quantum CSS verwendet denselben Mechanismus nicht 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 Canvas 2D-Kontextes
font
(z.B.menu
) setzen, schlägt das Abrufen des Schriftwertes fehl, um die erwartete Schrift zurückzugeben (es wird nichts zurückgegeben). Dies wurde in Quantum behoben. (Firefox Bug 1374885). - In Gecko wird ein von DOM getrennt Großmannsblock (z.B. ein
<div>
, erstellt mitcreateElement()
, der noch nicht in den DOM eingefügt wurde) als Block-Element festgelegt. In Quantum CSS wird dies gemäß der Spezifikation als Inline festgelegt (Firefox Bug 1374994). - In Gecko werden
calc()
Ausdrücke abgelehnt — was dazu führt, dass der Wert ungültig wird —, wenn sie als Komponentenradius 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()
wird überall unterstützt, wo die Spezifikation es erklärt (Firefox Bug 1350857). In Gecko ist es nicht. - Gecko hat einen Bug, bei dem die
::before
und::after
Pseudo-Elemente weiterhin generiert werden, auch wenn der Wert dercontent
Eigenschaft aufnormal
odernone
gesetzt ist. Laut Spezifikation sollten sie das nicht (Firefox Bug 1387931). - Ein weiterer Gecko-Bug bedeutet, dass die
background-position
Eigenschaft nicht zwischen zwei Werten, die unterschiedliche Anzahlen von<position>
Werten enthalten, ü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...in
Schleife, ursprünglich Teil von ECMAScript for XML (E4X), wurde entfernt. Bitte verwenden Sie stattdessenfor...of
. (Firefox Bug 1083470). - Die
Object.prototype.watch()
undObject.prototype.unwatch()
Methoden sind veraltet, geben jetzt eine Warnung aus, wenn sie verwendet werden, und werden bald entfernt (Firefox Bug 934669). - Die nicht standardisierten
Iterator
undStopIteration
Objekte sowie das Legacy-Iterionsprotokoll 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
PerformanceObserver
API ist jetzt standardmäßig aktiviert (Firefox Bug 1386021). - Die
AbortController
undAbortSignal
Schnittstellen (bekannt als die Abort API) wurden hinzugefügt, um 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.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 einstellbar (Firefox Bug 1384030). - Die
HTMLDocument.getSelection()
Methode wurde zurDocument
Schnittstelle verschoben, damit sie für XML-Dokumente verfügbar ist (Firefox Bug 718711). - Das
messageerror
Ereignis ist jetzt implementiert, und es kann Code ausgeführt werden, wenn es über Ereignishandler ausgelöst wird, die auf Nachrichtenziele implementiert sind — sehen Sie sich dasmessageerror
Ereignis vonMessagePort
,DedicatedWorkerGlobalScope
,Worker
,BroadcastChannel
undWindow
an (Firefox Bug 1359017). - Wenn
Headers
Werte iteriert werden, werden sie automatisch lexikografisch sortiert, und Werte von doppelten Headernamen 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 sind) wird jetzt auf
RTCDataChannel
durch Nutzung des End-of-Record (EOR)-Flags bei SCTP-Nachrichten unterstützt. Weitere Informationen finden Sie unter Verstehen von Nachrichtengrößenbeschränkungen (Firefox Bug 979417).Hinweis: Da Firefox das SCTP ndAT-Protokoll, das die Fähigkeit bietet, SCTP-Nachrichten aus mehreren Quellen zu überlagern, noch nicht unterstützt, können große Datenobjekte, die gesendet werden, signifikante Verzögerungen beim gesamten anderen SCTP-Datenverkehr verursachen. Siehe Firefox Bug 1381145, um den Fortschritt bei der Implementierung und dem Einsatz der ndAT-Unterstützung in Firefox zu verfolgen.
-
Die
RTCDataChannel.send()
Methode kann jetzt eineTypeError
Ausnahme auslösen, wenn die Größe der Nachricht, die Sie zu senden versuchen, nicht mit dem empfangenden User-Agent kompatibel ist (dies wurde im Rahmen von Firefox Bug 979417 implementiert). -
Die MediaStream Recording API wurde aktualisiert, sodass
error
Ereignisse, die gesendet werden, um Probleme zu melden, die beim Aufnehmen auftreten, jetzt vom TypMediaRecorderErrorEvent
sind, anstatt generische Ereignisse zu sein. -
Die Dokumentation rund um
OfflineAudioContext
wurde aktualisiert, da die Eingaben des Konstruktors jetzt in einem Objekt, statt als eine Liste von Parametern angegeben werden können (Firefox Bug 1388591). -
Die Web Audio API unterstützt nun ordnungsgemäß die Ausgabe von Mehrkanal-Audio (Firefox Bug 1378070).
Sicherheit
resource://
URLs leaken keine Informationen mehr (Firefox Bug 863246)- Daten-URLs werden nun 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 umfasst jetzt eine
-screenshot
Option, die es ermöglicht, Website-Screenshots direkt über die Kommandozeile zu erstellen (Firefox Bug 1378010).
Entfernungen aus der Web-Plattform
HTML
<link rel="preload">
(siehe Vorab laden von Inhalten mit rel="preload") wurde in Firefox 57 wegen verschiedener Webkompatibilitätsprobleme deaktiviert (z.B. Firefox Bug 1405761). Eine verbesserte Version, die für nicht-cachable Ressourcen funktioniert, wird voraussichtlich in Firefox 58 verfügbar sein.
APIs
- Mozillas eigens entwickelte 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 auf XPCOM basierende Add-ons entfernt. Alle Erweiterungen müssen in die neuen Browser-Erweiterungen (auch bekannt als WebExtensions) konvertiert werden, oder sie werden nicht funktionieren.
WebExtensions
Die folgenden APIs wurden hinzugefügt oder erweitert:
-
- Unterstützung für Separatoren durch
bookmarks.BookmarkTreeNodeType
- Unterstützung für Separatoren durch
-
theme_icons
Eigenschaft für helle/dunkle Thema-Icons
-
onCreated
onRemoved
onUpdated
colorCode
undiconUrl
incontextualIdentities.ContextualIdentity
-
incognito
Option indownloads.download()
estimatedEndTime
Eigenschaft indownloads.DownloadItem
-
FindProxyForURL()
kann jetzt ein Objekt zurückgeben
-
runtime.openOptionsPage()
Unterstützung auf Android
-
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 zutheme.update()
-
filterResponseData()
proxyInfo
Eigenschaft inwebRequest
Ereignissen
-
allowScriptsToClose
Option inwindows.create()
Ältere Versionen
- Firefox 56 für Entwickler
- Firefox 55 für Entwickler
- Firefox 54 für Entwickler
- Firefox 53 für Entwickler
- Firefox 52 für Entwickler
- Firefox 51 für Entwickler
- Firefox 50 für Entwickler
- Firefox 49 für Entwickler
- Firefox 48 für Entwickler
- Firefox 47 für Entwickler
- Firefox 46 für Entwickler
- Firefox 45 für Entwickler
- Firefox 44 für Entwickler
- Firefox 43 für Entwickler
- Firefox 42 für Entwickler
- Firefox 41 für Entwickler
- Firefox 40 für Entwickler
- Firefox 39 für Entwickler
- Firefox 38 für Entwickler
- Firefox 37 für Entwickler
- Firefox 36 für Entwickler
- Firefox 35 für Entwickler
- Firefox 34 für Entwickler
- Firefox 33 für Entwickler
- Firefox 32 für Entwickler
- Firefox 31 für Entwickler
- Firefox 30 für Entwickler
- Firefox 29 für Entwickler
- Firefox 28 für Entwickler
- Firefox 27 für Entwickler
- Firefox 26 für Entwickler