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 wurde unter dem Namen Quantum veröffentlicht, benannt nach dem Firefox Quantum Engineering-Projekt, das sich das Ziel gesetzt hat, Firefox von Grund auf neu zu gestalten, um erhebliche Leistungs-, Stabilitäts- und visuelle Verbesserungen zu erzielen. Dies ist die erste Version von Firefox, die einige dieser Verbesserungen enthält, weshalb wir diesen Anlass hervorheben wollten.
Hinweis: Um mehr über die Quantum-Features 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 in Firefox 57 für Desktop standardmäßig aktiviert, mit mobilen Versionen von Firefox, die später folgen werden. Entwickler sollten nichts signifikant anderes bemerken, abgesehen von einer Vielzahl von Leistungsverbesserungen. Es gibt jedoch einige kleinere funktionale Unterschiede in Stylo, die implementiert wurden, um nicht standardmäßiges Gecko-Verhalten zu beheben, das beseitigt werden sollte. Wir werden über solche Unterschiede auf Referenzseiten und in den Versionshinweisen berichten, wo es angebracht ist (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
Medienabfrage 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 vomgrid
Shorthand zurückgesetzt (Firefox-Bug 1387410). - Die Einstellung
layout.css.clip-path-shapes.enabled
wurde entfernt (Firefox-Bug 1399767). Diese Einstellung ermöglichte es, die Unterstützung von<basic-shape>
inclip-path
zu deaktivieren. 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 Gradient-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 onscreen animieren, aber eine Verzögerung angeben, führt Gecko auf einigen Plattformen, z.B. Windows, kein Redraw durch (Firefox-Bug 1383239).
- In Gecko können
<details>
Elemente nicht standardmäßig geöffnet werden, wenn sie ein aktivesanimation
haben (Firefox-Bug 1382124). - In Gecko funktionieren
transitions
nicht, wenn von einemtext-shadow
mit einer angegebenen Farbe auf einentext-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) 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 Übergänge auslösen. - Animationen, die em-Einheiten verwenden, sind in Gecko nicht von Änderungen an der
font-size
auf dem übergeordneten Element des animierten Elements betroffen, obwohl sie es sein sollten (Firefox-Bug 1254424). - Gecko geht auch anders mit der Vererbung von
font-size
um als Quantum CSS, was bedeutet, dass bei einigen Spracheinstellungen die vererbten Schriftgrößen kleiner ausfallen als erwartet (siehe Firefox-Bug 1391341). - Gecko verwendet denselben Mechanismus, der beim Parsen eines url-tokens verwendet wird, wenn er die
domain()
oderurl-prefix()
URL-Abgleichsfunktionen für eine@-moz-document
Regel parst. 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 schlägt das Setzen einer Systemschriftart als Wert eines
canvas
2D-Kontextesfont
(z.B.menu
) fehl, und die Schriftart wird nicht wie erwartet zurückgegeben (nichts wird zurückgegeben). Dies wurde in Quantum behoben. (Firefox-Bug 1374885). - In Gecko wird ein abgetrennter Teilbaum (z.B. ein
<div>
, der mitcreateElement()
erstellt wurde, aber 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 wird
calc()
überall unterstützt, wo es laut Spezifikation unterstützt werden sollte (Firefox-Bug 1350857). In Gecko ist dies nicht der Fall. - Gecko hat einen Bug, bei dem die
::before
und::after
Pseudo-Elemente immer noch generiert werden, selbst wenn dercontent
Eigenschaftswert aufnormal
odernone
gesetzt ist. Gemäß der Spezifikation sollten sie es nicht (Firefox-Bug 1387931). - Ein weiterer Gecko-Bug bedeutet, dass die
background-position
Eigenschaft nicht zwischen zwei Werten mit unterschiedlicher Anzahl 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 standardmäßige
for each...in
Schleife, ursprünglich Teil von ECMAScript für XML (E4X), wurde entfernt. Bitte verwenden Siefor...of
stattdessen. (Firefox-Bug 1083470). - Die
Object.prototype.watch()
undObject.prototype.unwatch()
Methoden sind veraltet, werfen nun eine Warnung bei Verwendung und werden bald entfernt (Firefox-Bug 934669). - Die nicht standardmäßigen
Iterator
undStopIteration
Objekte sowie das veraltete Iterationsprotokoll wurden entfernt (Firefox-Bug 1098412). - Async generator ist jetzt aktiviert (Firefox-Bug 1352312).
- 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, sodass DOM-Anfragen (wie fetch-Anfragen) abgebrochen werden können, wenn 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 setzbar (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 kann Code ausführen, als Antwort darauf, dass es durch Implementierung von Ereignishandlern auf Nachrichtenzielen ausgelöst wird — siehe dasmessageerror
Ereignis vonMessagePort
,DedicatedWorkerGlobalScope
,Worker
,BroadcastChannel
, undWindow
(Firefox-Bug 1359017). - Wenn
Headers
Werte iteriert werden, werden sie automatisch in lexikographischer Reihenfolge sortiert, und Werte aus 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 ist) wird jetzt auf
RTCDataChannel
durch die Verwendung des End-of-record (EOR) Flags auf SCTP-Nachrichten unterstützt. Siehe Understand message size limits für mehr Informationen (Firefox-Bug 979417).Hinweis: Da Firefox das SCTP ndata Protokoll, das die Fähigkeit bietet, SCTP-Nachrichten aus mehreren Quellen zu verflechten, noch nicht unterstützt, kann das Senden großer Datenobjekte erhebliche Verzögerungen bei allen anderen SCTP-Übertragungen verursachen. Siehe Firefox-Bug 1381145, um den Fortschritt bei der Implementierung und Bereitstellung von Ndata-Unterstützung in Firefox zu verfolgen.
-
Die
RTCDataChannel.send()
Methode kann jetzt eineTypeError
-Ausnahme auslösen, wenn die Größe der Nachricht, die Sie senden möchten, nicht mit dem empfangenden Benutzeragenten kompatibel ist (dies wird 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 Aufzeichnen auftreten, jetzt vom TypMediaRecorderErrorEvent
sind, anstatt generische Ereignisse zu sein. -
Die Dokumentation rund um
OfflineAudioContext
wurde aktualisiert, da die Eingänge seines Konstruktors jetzt in einem Objekt angegeben werden können, anstatt als Liste von Parametern (Firefox-Bug 1388591). -
Die Web Audio API unterstützt nun ordnungsgemäß die Ausgabe über mehrere Kanäle (Firefox-Bug 1378070).
Sicherheit
resource://
URLs leaken keine Informationen mehr (Firefox-Bug 863246)- Daten-URLs werden jetzt als eindeutige opake Ursprünge behandelt, anstatt die Herkunft des für die Navigation verantwortlichen Einstellungsobjekts zu übernehmen (Firefox-Bug 1324406).
Plugins
Keine Änderungen.
Sonstiges
- Der Firefox Headless-Modus umfasst jetzt ein
-screenshot
-Flag, das es ermöglicht, Website-Screenshots direkt über die Befehlszeile zu machen (Firefox-Bug 1378010).
Entfernungen von der Webplattform
HTML
<link rel="preload">
(siehe Preloading content with rel="preload") wurde in Firefox 57 aufgrund verschiedener Webkompatibilitätsprobleme deaktiviert (z.B. Firefox-Bug 1405761). Eine verbesserte Version, die auch für nicht-cacheable 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 jede Unterstützung für auf XPCOM-basierte Add-ons entfernt. Alle Erweiterungen müssen in die neuen Browsererweiterungen (auch bekannt als WebExtensions) umgewandelt 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