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
- 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
Kurzschreibweise zurückgesetzt (Firefox Bug 1387410). - Die
layout.css.clip-path-shapes.enabled
Präferenz wurde entfernt (Firefox Bug 1399767). Diese Präferenz erlaubte das Deaktivieren des<basic-shape>
Supports inclip-path
. Dieser Support wurde in Firefox 54 eingeführt und kann nicht mehr deaktiviert werden.
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 zwischencircle
undgold
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 aktiveanimation
haben (Firefox Bug 1382124). - In Gecko funktionieren
transitions
nicht, wenn von einemtext-shadow
mit einer angegebenen Farbe zu einemtext-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()
oderurl-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 mitcreateElement()
, 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 einerradial-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 dercontent
Eigenschaft aufnormal
odernone
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;
undbackground-position: 20px 20px, 30px 30px;
, übergangsweise verändert werden kann (siehe Firefox Bug 1390446).
SVG
Keine Änderungen.
JavaScript
- Die nicht-standardisierte
for each...in
Schleife, ursprünglich Teil von ECMAScript für XML (E4X), wurde entfernt. Bitte nutzen Sie stattdessenfor...of
. (Firefox Bug 1083470). - Die Methoden
Object.prototype.watch()
undObject.prototype.unwatch()
sind veraltet, werden nun bei Nutzung eine Warnung auslösen und bald entfernt werden (Firefox Bug 934669). - Die nicht-standardisierten
Iterator
undStopIteration
Objekte sowie das Legacy-Iteration-Protokoll 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 Schnittstellen
AbortController
undAbortSignal
(bekannt als die Abort API) wurden hinzugefügt, um DOM-Anfragen (wie fetch-Anfragen) bei Bedarf abzubrechen (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 setzbar (Firefox Bug 1384030). - Die Methode
HTMLDocument.getSelection()
wurde auf dieDocument
Schnittstelle verschoben, sodass sie auch für XML-Dokumente verfügbar ist (Firefox Bug 718711). - Das
messageerror
Ereignis ist jetzt implementiert, und es kann Code in Reaktion auf dessen Auftreten über Ereignis-Handler umgesetzt werden, die auf Nachrichtenziele umgesetzt sind — siehe dasmessageerror
Ereignis vonMessagePort
,DedicatedWorkerGlobalScope
,Worker
,BroadcastChannel
, undWindow
(Firefox Bug 1359017). - Wenn
Headers
Werte durchlaufen werden, werden sie automatisch in lexikographischer Reihenfolge sortiert und Werte von doppelten Header-Namen werden kombiniert (Firefox Bug 1396848).
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 eineTypeError
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 TypMediaRecorderErrorEvent
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
- 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-Erweiterungen (auch bekannt als WebExtensions) umgewandelt werden, sonst funktionieren sie nicht.
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 nun ein Objekt zurückgeben
-
- Unterstützung von
runtime.openOptionsPage()
auf Android
- Unterstützung von
-
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