Firefox 57 (Quantum) für Entwickler
Dieser Artikel bietet Informationen zu den Ä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 trägt den Namen Quantum, nach dem Firefox Quantum Ingenieurprojekt, das darauf abzielt, Firefox von Grund auf neu zu entwickeln und dabei erhebliche Leistungs-, Stabilitäts- und visuelle Verbesserungen mitzubringen. Dies ist die erste Version von Firefox, die einige dieser Verbesserungen enthält, daher wollten wir diese Gelegenheit würdigen.
Hinweis: Um mehr über die Quantum-Features in dieser Version zu erfahren, lesen Sie 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 standardmäßig in Firefox 57 für den Desktop aktiviert, mit mobilen Versionen von Firefox, die später folgen. Entwickler sollten nichts signifikant Anderes bemerken, abgesehen von einer Vielzahl 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 den Referenzseiten und in den Versionshinweisen berichten, falls angemessen (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 Werte
minimal-ui
undstandalone
derdisplay-mode
Media-Query werden jetzt unterstützt (Firefox Bug 1369815). Siehe auch das Web-App-Manifestdisplay
-Feld. - Die Eigenschaften
grid-row-gap
undgrid-column-gap
werden nicht mehr durch dasgrid
-Kurzschreibweise zurückgesetzt (Firefox Bug 1387410). - Die Präferenz
layout.css.clip-path-shapes.enabled
wurde entfernt (Firefox Bug 1399767). Diese Präferenz ermöglichte das Deaktivieren der<basic-shape>
Unterstützung inclip-path
. Diese Unterstützung wurde in Firefox 54 ausgeliefert und kann nicht mehr deaktiviert werden.
Quantum CSS Hinweise
Folgende Bugs wurden in Quantum behoben:
- Radial-Gradient-Werte wie
radial-gradient(circle gold,red)
funktionieren im alten Gecko-Stylesystem, 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, malt Gecko auf einigen Plattformen (z. B. Windows) nicht neu (Firefox Bug 1383239).
- In Gecko können
<details>
Elemente standardmäßig nicht mit demopen
Attribut geöffnet werden, wenn sie eine aktiveanimation
darauf haben (Firefox Bug 1382124). - In Gecko funktionieren
transitions
nicht, wenn von einemtext-shadow
mit einer spezifizierten Farbe zu einemtext-shadow
ohne spezifizierte 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 demselben Element gesetzte Transition auslösen, jedoch nur einmal (siehe Firefox Bug 1192592 und diese Testfälle für mehr Informationen). Im Allgemeinen sollten deklarative Animationen keine Transitionen auslösen. - Animationen, die em-Einheiten verwenden, werden nicht durch Änderungen der
font-size
auf dem übergeordneten Element des animierten Elements in Gecko beeinflusst, obwohl sie es sollten (Firefox Bug 1254424). - Gecko behandelt die
font-size
Vererbung anders als Quantum CSS, was bedeutet, dass für einige Spracheinstellungen vererbte Schriftgrößen kleiner sind als erwartet (siehe Firefox Bug 1391341). - Gecko verwendet denselben Mechanismus beim Parsen eines url-Tokens zum Parsen der
domain()
oderurl-prefix()
URL-Matching-Funktionen für eine@-moz-document
Regel. 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, wenn Sie eine Systemschrift als Wert eines Canvas-2D-Kontexts
font
(z. B.menu
) setzen, schlägt das Abrufen des Schriftwerts fehl, um die erwartete Schrift zurückzugeben (es wird nichts zurückgegeben). Dies wurde in Quantum behoben. (Firefox Bug 1374885). - In Gecko, wenn Sie einen abgetrennten Teilbaum erstellen (z. B. ein
<div>
, erstellt mitcreateElement()
, das noch nicht in den DOM eingefügt ist), wird das Wurzelelement des Teilbaums als Block-Element gesetzt. In Quantum CSS wird dies gemäß 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 geparst; Quantum CSS behebt dies (Firefox Bug 1379467). - In Quantum CSS wird
calc()
überall unterstützt, wo laut Spezifikation erwartet (Firefox Bug 1350857). In Gecko nicht. - Gecko hat einen Bug, bei dem die
::before
und::after
Pseudoelemente immer noch generiert werden, selbst wenn dercontent
Eigenschaftswert aufnormal
odernone
gesetzt ist. Gemäß Spezifikation sollten sie das nicht (Firefox Bug 1387931). - Ein weiterer Gecko-Bug bedeutet, dass die
background-position
Eigenschaft nicht zwischen zwei Werten mit unterschiedlichen Anzahlen an<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, ursprünglich Teil von EcmaScript für XML (E4X), wurde entfernt. Bitte verwenden Sie stattdessenfor...of
. (Firefox Bug 1083470). - Die
Object.prototype.watch()
undObject.prototype.unwatch()
Methoden sind veraltet, werfen jetzt eine Warnung, wenn sie verwendet werden, und werden bald entfernt (Firefox Bug 934669). - Die nicht-standardisierten
Iterator
undStopIteration
Objekte sowie das Legacy-Iterierungsprotokoll wurden entfernt (Firefox Bug 1098412). - Asynchrone Generatoren sind 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, was das Abbrechen von DOM-Anfragen (wie fetch-Anfragen) ermöglicht, 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 nun setzbar (Firefox Bug 1384030). - Die Methode
HTMLDocument.getSelection()
wurde zurDocument
Schnittstelle verschoben, sodass sie XML-Dokumenten zur Verfügung steht (Firefox Bug 718711). - Das
messageerror
Ereignis ist jetzt implementiert und es kann Code ausgeführt werden, als Reaktion auf das Auslösen der Ereignisbehandler auf Nachrichtenzielobjekten — 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 Verständnis der Größenbeschränkungen für Nachrichten für mehr Informationen (Firefox Bug 979417).Hinweis: Da Firefox das SCTP ndata Protokoll, das die Fähigkeit bietet, SCTP Nachrichten von mehreren Quellen zu verschachteln, noch nicht unterstützt, kann das Senden großer Datenobjekte erhebliche Verzögerungen auf allen anderen SCTP-Verkehr verursachen. Siehe Firefox Bug 1381145 um den Fortschritt bei der Implementierung und Bereitstellung der ndata 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 Benutzeragenten kompatibel ist (dies ist als Teil von Firefox Bug 979417 implementiert). -
Die MediaStream Aufnahme-API wurde so aktualisiert, dass
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 nun die Eingaben des Konstruktors in einem Objekt anstatt als 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 Herkunft behandelt, anstatt die Herkunft des Objekts zu erben, das für die Navigation verantwortlich ist (Firefox Bug 1324406).
Plugins
Keine Änderungen.
Sonstiges
- Der Kopflos-Modus von Firefox enthält jetzt ein
-screenshot
Flag, das es ermöglicht, Webseiten-Screenshots direkt aus der Kommandozeile aufzunehmen (Firefox Bug 1378010).
Entfernungen aus der Webplattform
HTML
<link rel="preload">
(siehe Preloading content with rel="preload") wurde in Firefox 57 deaktiviert wegen verschiedener Webkompatibilitätsprobleme (z. B. Firefox Bug 1405761). Eine verbesserte Version, die für nicht-cachebare Ressourcen funktioniert, wird voraussichtlich in Firefox 58 veröffentlicht.
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 wird 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, 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 Theme-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 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