Firefox 57 (Quantum) für Entwickler
Dieser Artikel bietet Informationen über die Änderungen in Firefox 57 (auch bekannt als Firefox Quantum), die Auswirkungen auf Entwickler haben werden. Firefox 57 wurde am 14. November 2017 veröffentlicht.
Firefox 57 === Firefox Quantum
Firefox 57 wurde der Name Quantum gegeben, nach dem Firefox Quantum-Ingenieurprojekt, das darauf abzielt, Firefox von Grund auf neu zu bauen und dabei bedeutende Leistungs-, Stabilitäts- und visuelle Verbesserungen mit sich bringt. Dies ist die erste Version von Firefox, die einige dieser Verbesserungen enthält, daher wollten wir diesen Anlass besonders hervorheben.
Hinweis: Weitere Informationen zu den Quantum-Features in dieser Version finden Sie in Firefox Quantum Developer Edition: the fastest Firefox ever with Photon UI and better tooling 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 den mobilen Firefox-Versionen, die später folgen werden. Entwickler sollten außer einer Vielzahl von Leistungsverbesserungen nichts signifikant anderes bemerken. 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, soweit dies angemessen ist (siehe Quantum CSS Hinweise).
Änderungen für Web-Entwickler
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
-Media-Query werden jetzt unterstützt (Firefox-Bug 1369815). Siehe auch dasdisplay
-Feld im Web-App-Manifest. - Die Eigenschaften
grid-row-gap
undgrid-column-gap
werden durch dengrid
-Kurzcode nicht mehr zurückgesetzt (Firefox-Bug 1387410). - Die Einstellung
layout.css.clip-path-shapes.enabled
wurde entfernt (Firefox-Bug 1399767). Diese Einstellung 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 Hinweise
Folgende Fehler wurden in Quantum behoben:
- Radiale Gradientenwerte wie
radial-gradient(circle gold,red)
funktionieren im alten Gecko-Style-System, obwohl sie es nicht sollten, da das Komma zwischencircle
undgold
fehlt (Firefox-Bug 1383323). - Wenn Sie ein Offscreen-Element animieren, das Onscreen werden soll, aber eine Verzögerung angeben, führt Gecko auf einigen Plattformen kein Repainting durch, z.B. Windows (Firefox-Bug 1383239).
- In Gecko können
<details>
-Elemente nicht standardmäßig mit demopen
-Attribut geöffnet werden, wenn eine aktiveanimation
darauf liegt (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 Auffüllanimation (z.B. mit
animation-fill-mode: forwards
eingestellt) eine Transition auf dem gleichen Element 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 verwenden, werden nicht durch Änderungen der
font-size
auf dem übergeordneten Element der Animation in Gecko beeinflusst, obwohl sie es sollten (Firefox-Bug 1254424). - Gecko behandelt
font-size
-Vererbung anders als Quantum CSS, was bedeutet, dass für einige Spracheinstellungen geerbte Schriftgrößen kleiner als erwartet ausfallen (siehe Firefox-Bug 1391341). - Gecko verwendet den gleichen Mechanismus beim Parsen eines URL-Tokens wie beim Parsen der
domain()
oderurl-prefix()
URL-Übereinstimmungsfunktionen für eine@-moz-document
-Regel. Quantum CSS verwendet nicht den gleichen Mechanismus 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-Context's
font
setzen (z.B.menu
), schlägt das Abrufen des Schriftartwerts 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 Unterbaum erstellen (z.B. ein
<div>
, erstellt mitcreateElement()
, das noch nicht in das DOM eingefügt wurde), wird das Wurzelelement des Unterbaums als Blockelement gesetzt. In Quantum CSS wird es gemäß der Spezifikation als Inline-Element gesetzt (Firefox-Bug 1374994). - In Gecko werden
calc()
-Ausdrücke abgelehnt — was den Wert ungültig macht — wenn sie als Radiuskomponente einerradial-gradient()
-Funktion verwendet werden (Firefox-Bug 1376019). - In Gecko wird
calc(1*2*3)
nicht erfolgreich geparsed; Quantum CSS behebt dies (Firefox-Bug 1379467). - In Quantum CSS wird
calc()
überall unterstützt, wo die Spezifikation erklärt, dass es unterstützt werden sollte (Firefox-Bug 1350857). In Gecko ist das nicht der Fall. - Gecko hat einen Fehler, wonach die
::before
und::after
Pseudo-Elemente auch dann generiert werden, wenn der Wert dercontent
-Eigenschaft aufnormal
odernone
gesetzt ist. Laut Spezifikation sollten sie es nicht (Firefox-Bug 1387931). - Ein weiterer Gecko-Fehler bedeutet, dass die
background-position
-Eigenschaft nicht zwischen zwei Werten mit unterschiedlicher Anzahl von<position>
-Werten übergehen kann, z.B.background-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 for XML (E4X), wurde entfernt. Bitte verwenden Sie stattdessenfor...of
. (Firefox-Bug 1083470). - Die Methoden
Object.prototype.watch()
undObject.prototype.unwatch()
sind veraltet, geben nun eine Warnung aus, wenn sie verwendet werden, 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).
- Die Syntax für 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-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 festlegbar (Firefox-Bug 1384030). - Die
HTMLDocument.getSelection()
-Methode wurde zurDocument
-Schnittstelle verschoben, sodass sie für XML-Dokumente verfügbar ist (Firefox-Bug 718711). - Das
messageerror
-Ereignis ist jetzt implementiert, und es kann Code ausgeführt werden, als Reaktion darauf, dass es durch Ereignishandler auf Nachrichtenzielen implementiert wird — siehe dasmessageerror
-Ereignis vonMessagePort
,DedicatedWorkerGlobalScope
,Worker
,BroadcastChannel
undWindow
(Firefox-Bug 1359017). - Wenn
Headers
-Werte iteriert werden, werden sie automatisch in lexikografischer Reihenfolge 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 ist) wird jetzt auf
RTCDataChannel
durch Verwendung des End-of-Record (EOR)-Flags auf SCTP-Nachrichten unterstützt. Siehe Verstehen von Nachrichtenlimitgrößen für mehr Informationen (Firefox-Bug 979417).Hinweis: Da Firefox das SCTP-Stream-Schedulers und User-Message-Interleaving-Protokoll, das die Möglichkeit bietet, SCTP-Nachrichten aus mehreren Quellen zu unterbrechen, noch nicht unterstützt, kann das Senden großer Datenobjekte erhebliche Verzögerungen bei allen anderen SCTP-Verkehr verursachen. Siehe Firefox-Bug 1381145, um den Fortschritt bei der Implementierung und Bereitstellung von Stream-Schedulers-Unterstützung in Firefox zu verfolgen.
-
Die Methode
RTCDataChannel.send()
kann jetzt eineTypeError
-Ausnahme werfen, wenn die Größe der Nachricht, die Sie zu senden versuchen, nicht mit dem empfangenden User Agent kompatibel ist (dies ist als Teil von Firefox-Bug 979417 implementiert). -
Die MediaStream Recording API wurde aktualisiert, sodass
error
-Ereignisse, die gesendet werden, um Probleme zu melden, die während der Aufnahme auftreten, jetzt vom TypMediaRecorderErrorEvent
sind, anstatt generische Ereignisse zu sein. -
Die Dokumentation zur
OfflineAudioContext
wurde aktualisiert, da seine Konstruktor-Eingaben jetzt in einem Objekt anstelle einer Parameterliste angegeben werden können (Firefox-Bug 1388591). -
Die Web-Audio-API unterstützt jetzt ordnungsgemäß Mehrkanal-Ausgabe (Firefox-Bug 1378070).
Sicherheit
resource://
URLs leaken keine Informationen mehr (Firefox-Bug 863246)- Daten-URLs werden jetzt als eindeutige undurchsichtige Ursprünge behandelt, anstatt den Ursprung des Einstellungsobjekts zu erben, das für die Navigation verantwortlich ist (Firefox-Bug 1324406).
Plugins
Keine Änderungen.
Sonstiges
- Der Headless-Modus von Firefox beinhaltet jetzt ein
-screenshot
-Flag, das es ermöglicht, Website-Screenshots direkt von der Befehlszeile aus aufzunehmen (Firefox-Bug 1378010).
Entfernungen aus der Web-Plattform
HTML
<link rel="preload">
(siehe Vorladen von Inhalten mit rel="preload") wurde in Firefox 57 aufgrund verschiedener Web-Kompatibilitätsprobleme deaktiviert (z.B. Firefox-Bug 1405761). Eine verbesserte Version, die 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, oder sie funktionieren nicht mehr.
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 fürtheme.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