Firefox 57 (Quantum) für Entwickler
Dieser Artikel bietet Informationen zu den Ä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 Veröffentlichungsnamen Quantum, benannt nach dem Firefox Quantum Entwicklungsprojekt, das darauf abzielt, Firefox von Grund auf neu aufzubauen und dabei bedeutende Verbesserungen in Leistung, Stabilität und Aussehen zu erreichen. Dies ist die erste Firefox-Version, die einige dieser Verbesserungen mit sich bringt, daher wollten wir den Anlass 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 neuer paralleler CSS-Engine — auch bekannt als Quantum CSS oder Stylo — ist standardmäßig in Firefox 57 für den Desktop aktiviert, mit mobilen Firefox-Versionen, die später folgen werden. Entwickler sollten nichts wesentlich anderes bemerken, abgesehen von einer ganzen Reihe von Leistungsverbesserungen. Es gibt jedoch eine Reihe von geringfügigen funktionalen Unterschieden in Stylo, implementiert, um nicht-standardmäßiges Gecko-Verhalten zu korrigieren, das beseitigt werden sollte. Wir werden über solche Unterschiede auf Referenzseiten und in den Versionshinweisen berichten, soweit es angemessen ist (siehe Quantum CSS Notizen).
Änderungen für Webentwickler
Entwicklertools
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 durch diegrid
Kurzschreibweise nicht mehr 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 der<basic-shape>
Unterstützung inclip-path
. Diese Unterstützung wurde in Firefox 54 eingeführt und kann nicht mehr deaktiviert werden.
Quantum CSS Notizen
Die folgenden Bugs wurden in Quantum behoben:
- Radiale Verlaufswerte wie
radial-gradient(circle gold,red)
funktionieren im alten Gecko-Stilsystem, obwohl sie es wegen des fehlenden Kommas zwischencircle
undgold
nicht sollten (Firefox-Bug 1383323). - Wenn Sie ein Offscreen-Element Onscreen animieren, aber eine Verzögerung angeben, wird Gecko auf einigen Plattformen nicht neu gezeichnet, z. B. Windows (Firefox-Bug 1383239).
- In Gecko können
<details>
Elemente nicht standardmäßig mithilfe desopen
Attributs geöffnet 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 übergegangen wird (Firefox-Bug 726550). - In Gecko kann das Abbrechen einer füllenden Animation (z. B. mit
animation-fill-mode: forwards
gesetzt) einen Übergang auslösen, der auf dasselbe Element angewendet wird, obwohl 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 nicht von Änderungen der
font-size
des übergeordneten Elements des animierten Elements in Gecko betroffen, obwohl sie es sollten (Firefox-Bug 1254424). - Gecko behandelt auch die Vererbung der
font-size
anders als Quantum CSS, was bedeutet, dass bei einigen Spracheinstellungen vererbte Schriftgrößen kleiner als erwartet sind (siehe Firefox-Bug 1391341). - Gecko verwendet denselben Mechanismus, der beim Parsen eines url-Tokens verwendet wird, wenn die
domain()
oderurl-prefix()
URL-Matching-Funktionen für eine@-moz-document
Regel geparst werden. Quantum CSS verwendet nicht denselben Mechanismus und betrachtet Token nicht als ungültig, wenn sie Klammern oder Anführungszeichen enthalten (Firefox-Bug 1362333). - In Gecko, wenn Sie eine Systemschriftart als den Wert eines Canvas-2D-Kontextes
font
(z. B.menu
) setzen, schlägt das Abrufen des Schriftwerts 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 losgelösten Teilbaum erstellen (z. B. ein
<div>
mittelscreateElement()
, der noch nicht in das DOM eingefügt ist), wird das Wurzelelement des Teilbaums als block-level Element gesetzt. In Quantum CSS wird dies als inline gesetzt, wie es die Spezifikation vorsieht (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). - 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 es die Spezifikation erklärt (Firefox-Bug 1350857). In Gecko nicht. - Gecko hat einen Bug, bei dem die
::before
und::after
Pseudo-Elemente immer noch erzeugt werden, selbst wenn dercontent
Eigenschaftswert 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 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...in
Schleife, die ursprünglich Teil von ECMAScript für XML (E4X) war, wurde entfernt. Bitte verwenden Siefor...of
stattdessen. (Firefox-Bug 1083470). - Die
Object.prototype.watch()
undObject.prototype.unwatch()
Methoden sind veraltet, generieren jetzt eine Warnung bei Verwendung und werden bald entfernt (Firefox-Bug 934669). - Die nicht standardisierten
Iterator
undStopIteration
Objekte sowie das veraltete Iterationsprotokoll wurden entfernt (Firefox-Bug 1098412). - Asynchrone Generatoren sind nun 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
AbortController
undAbortSignal
Schnittstellen (bekannt als die Abort API) wurden hinzugefügt, um DOM-Anforderungen (wie etwa fetch requests) 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
HTMLDocument.getSelection()
Methode wurde in dieDocument
Schnittstelle verschoben, sodass sie für XML-Dokumente verfügbar ist (Firefox-Bug 718711). - Das
messageerror
Ereignis ist jetzt implementiert und kann über Ereignishandler, die auf Nachrichtenzielen implementiert sind, auf seine Auslösung reagieren — siehe dasmessageerror
Ereignis vonMessagePort
,DedicatedWorkerGlobalScope
,Worker
,BroadcastChannel
undWindow
(Firefox-Bug 1359017). - Wenn über
Headers
Werte iteriert wird, 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
-
Die Unterstützung von 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 von Nachrichtenbegrenzungsgrößen für weitere Informationen (Firefox-Bug 979417).Hinweis: Da Firefox das SCTP ndata Protokoll, das die Möglichkeit bietet, SCTP Nachrichten von mehreren Quellen zu verzahnen, noch nicht unterstützt, kann das Senden großer Datenobjekte zu erheblichen Verzögerungen bei jeglichem anderen SCTP Traffic führen. Siehe Firefox-Bug 1381145 um den Fortschritt bei der Implementierung und Bereitstellung der ndata-Unterstützung in Firefox zu verfolgen.
-
Die Methode
RTCDataChannel.send()
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 wurde im Rahmen von Firefox-Bug 979417 implementiert). -
Die MediaStream Aufnahme-API wurde aktualisiert, sodass
error
Ereignisse, die gesendet werden, um Probleme zu melden, die während der Aufnahme auftreten, jetzt vom TypMediaRecorderErrorEvent
sind und nicht mehr generische Ereignisse. -
Die Dokumentation zu
OfflineAudioContext
wurde aktualisiert, da die Eingaben des Konstruktors nun in einem Objekt anstelle einer Parameterliste angegeben werden können (Firefox-Bug 1388591). -
Die Web Audio API unterstützt jetzt ordnungsgemäß Mehrkanalausgaben (Firefox-Bug 1378070).
Sicherheit
resource://
URLs lecken keine Informationen mehr (Firefox-Bug 863246)- Daten-URLs werden jetzt als eindeutige, undurchsichtige Ursprünge behandelt, anstatt den Ursprung des für die Navigation zuständigen Einstellungsobjekts zu erben (Firefox-Bug 1324406).
Plugins
Keine Änderungen.
Sonstiges
- Der Firefox Headless-Modus enthält jetzt ein
-screenshot
Flag, das Ihnen ermöglicht, Website-Screenshots direkt von der Befehlszeile aus zu machen (Firefox-Bug 1378010).
Entfernungen von der Webplattform
HTML
<link rel="preload">
(siehe Inhalte mit rel="preload" vorladen) wurde in Firefox 57 aufgrund verschiedener Webkompatibilitätsprobleme deaktiviert (z. B. Firefox-Bug 1405761). Eine verbesserte Version, die für nicht-cachefä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 Browsererweiterungen (auch bekannt als WebExtensions) umgewandelt werden, sonst funktionieren sie nicht mehr.
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 Icons von hellen/dunklen Themen
-
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 for developers
- Firefox 55 for developers
- Firefox 54 for developers
- Firefox 53 for developers
- Firefox 52 for developers
- Firefox 51 for developers
- Firefox 50 for developers
- Firefox 49 for developers
- Firefox 48 for developers
- Firefox 47 for developers
- Firefox 46 for developers
- Firefox 45 for developers
- Firefox 44 for developers
- Firefox 43 for developers
- Firefox 42 for developers
- Firefox 41 for developers
- Firefox 40 for developers
- Firefox 39 for developers
- Firefox 38 for developers
- Firefox 37 for developers
- Firefox 36 for developers
- Firefox 35 for developers
- Firefox 34 for developers
- Firefox 33 for developers
- Firefox 32 for developers
- Firefox 31 for developers
- Firefox 30 for developers
- Firefox 29 for developers
- Firefox 28 for developers
- Firefox 27 for developers
- Firefox 26 for developers