Firefox 57 (Quantum) für Entwickler
Dieser Artikel bietet Informationen zu den Änderungen in Firefox 57 (alias Firefox Quantum), die Entwickler betreffen werden. Firefox 57 wurde am 14. November 2017 veröffentlicht.
Firefox 57 === Firefox Quantum
Firefox 57 hat den Freigabenamen Quantum erhalten, nach dem Firefox Quantum Engineering-Projekt, das darauf abzielt, Firefox von Grund auf neu zu gestalten und dabei bedeutende Leistungs-, Stabilitäts- und visuelle Verbesserungen mitzubringen. Dies ist die erste Version von Firefox, die einige dieser Verbesserungen ausliefert, daher wollten wir den Anlass gebührend markieren.
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' neue parallele CSS-Engine – auch bekannt als Quantum CSS oder Stylo – ist standardmäßig in Firefox 57 für Desktop aktiviert, mit Mobilversionen von Firefox, die später folgen werden. Entwickler sollten nichts wesentlich Anderes bemerken, abgesehen von einer ganzen Reihe von Leistungsverbesserungen. Es gibt jedoch eine Reihe kleiner funktionaler Unterschiede in Stylo, die implementiert wurden, um nicht-standardmäßiges Geckoverhalten zu korrigieren, das eliminiert werden sollte. Wir werden über solche Unterschiede auf Referenzseiten und in den Versionshinweisen berichten, soweit angemessen (siehe Quantum CSS Hinweise).
Ä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-uiundstandaloneWerte derdisplay-modeMedia Query werden jetzt unterstützt (Firefox Bug 1369815). Siehe auch das Web-App-ManifestdisplayFeld. - Die
grid-row-gapundgrid-column-gapEigenschaften werden nicht mehr durch diegridKurzform zurückgesetzt (Firefox Bug 1387410). - Die
layout.css.clip-path-shapes.enabledPrä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 Gradientwerte wie
radial-gradient(circle gold,red)werden im alten Gecko-Stilsystem funktionieren, obwohl sie es aufgrund des fehlenden Kommas zwischencircleundgoldnicht sollten (Firefox Bug 1383323). - Wenn Sie ein Offscreen-Element onscreen animieren, aber eine Verzögerung angeben, erfolgt in Gecko auf einigen Plattformen kein Neuzeichnen, z.B. Windows (Firefox Bug 1383239).
- In Gecko können
<details>Elemente nicht standardmäßig mit demopenAttribut geöffnet werden, wenn sie eineanimationdarauf aktiv haben (Firefox Bug 1382124). - In Gecko funktionieren
transitionsnicht, wenn von einemtext-shadowmit einer angegebenen Farbe zu einemtext-shadowohne angegebene Farbe übergegangen wird (Firefox Bug 726550). - In Gecko kann das Abbrechen einer Füllanimation (z.B. mit
animation-fill-mode: forwardsgesetzt) einen Übergang triggern, der auf demselben Element gesetzt ist, 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, die
emEinheiten verwenden, werden nicht durch Änderungen derfont-sizeauf dem übergeordneten Element beeinflusst, obwohl sie es sollten (Firefox Bug 1254424). - Gecko behandelt auch die
font-sizeVererbung anders als Quantum CSS, was bedeutet, dass für einige Spracheinstellungen vererbte Schriftgrößen kleiner als erwartet ausfallen (siehe Firefox Bug 1391341). - Gecko verwendet denselben Mechanismus beim Parsen eines URL-Tokens, wenn
domain()oderurl-prefix()URL-Matching-Funktionen für eine@-moz-documentRegel 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, wenn Sie eine Systemschriftart als Wert eines Canvas-2D-Kontexts
fontsetzen (z.B.menu), 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 losgelösten Baum (z.B. eine
<div>erstellt mitcreateElement(), der noch nicht in das DOM eingefügt ist) erzeugen, wird das Wurzelelement des Baumes als Block-Level-Element gesetzt. In Quantum CSS ist es als Inline gesetzt, wie es der Spezifikation entspricht (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,
calc()wird überall dort 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, bei dem die
::beforeund::afterPseudoelemente weiterhin erzeugt werden, selbst wenn dercontentEigenschaftswert aufnormalodernonegesetzt ist. Laut Spezifikation sollten sie das nicht (Firefox Bug 1387931). - Ein weiterer Gecko-Fehler bedeutet, dass die
background-positionEigenschaft nicht zwischen zwei Werten übergehen kann, die unterschiedliche Anzahlen an<position>Werten enthalten, 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...inSchleife, ursprünglich Teil von ECMAScript for XML (E4X), wurde entfernt. Bitte verwenden Sie stattdessenfor...of(Firefox Bug 1083470). - Die
Object.prototype.watch()undObject.prototype.unwatch()Methoden sind veraltet, erzeugen nun eine Warnung bei der Verwendung und werden bald entfernt (Firefox Bug 934669). - Die nicht standardmäßigen
IteratorundStopIterationObjekte sowie das legacy iteration protocol wurden entfernt (Firefox Bug 1098412). - Asynchrone Generatoren sind jetzt aktiviert (Firefox Bug 1352312).
- Die
for await (... of ...)-Syntax ist jetzt aktiviert (Firefox Bug 1352312).
APIs
Neue APIs
- Die
PerformanceObserverAPI ist jetzt standardmäßig aktiviert (Firefox Bug 1386021). - Die
AbortControllerundAbortSignalSchnittstellen (bekannt als die Abort API) wurden hinzugefügt, um DOM-Anfragen (wie Fetch-Anfragen) abzubrechen, falls gewünscht (Firefox Bug 1378342). - Die Storage API ist implementiert und standardmäßig aktiviert (Firefox Bug 1399038).
DOM
- Die
Selection.typeEigenschaft der Selection API ist jetzt implementiert (Firefox Bug 1359157). Document.createEvent('FocusEvent')wird jetzt unterstützt (Firefox Bug 1388069).- Die
filesEigenschaft derHTMLInputElementSchnittstelle ist jetzt setzbar (Firefox Bug 1384030). - Die
HTMLDocument.getSelection()Methode wurde zurDocumentSchnittstelle verschoben, sodass sie für XML-Dokumente verfügbar ist (Firefox Bug 718711). - Das
messageerrorEreignis ist jetzt implementiert, und es kann Code ausgeführt werden, als Reaktion auf dessen Auslösung durch Ereignishandler, die auf Nachrichten-Ziele implementiert sind – siehe dasmessageerrorEreignis vonMessagePort,DedicatedWorkerGlobalScope,Worker,BroadcastChannelundWindow(Firefox Bug 1359017). - Wenn
HeadersWerte über iteriert werden, werden sie automatisch in lexikografischer Reihenfolge sortiert, und Werte von doppelten Headernamen 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) wird nun auf
RTCDataChannelunterstützt, durch Verwendung des End-of-Record (EOR) Flags auf SCTP Nachrichten. Weitere Informationen finden Sie unter Verstehen von Nachrichten Größenlimits (Firefox Bug 979417).Hinweis: Da Firefox noch nicht das SCTP Stream Schedulers und User Message Interleaving Protokoll unterstützt, das die Fähigkeit bietet, SCTP-Nachrichten aus mehreren Quellen zu vermischen, kann das Senden von großen Datenobjekten erhebliche Verzögerungen bei allen anderen SCTP-Verkehr verursachen. Verfolgen Sie den Fortschritt bei der Implementierung und Bereitstellung der Stream-Scheduler-Unterstützung in Firefox unter Firefox Bug 1381145.
-
Die
RTCDataChannel.send()Methode kann jetzt eineTypeErrorAusnahme werfen, wenn die Größe der Nachricht, die Sie senden möchten, nicht mit dem empfangenden Benutzeragent kompatibel ist (diese ist im Rahmen von Firefox Bug 979417 implementiert). -
Die MediaStream Recording API wurde aktualisiert, sodass
errorEreignisse, die Probleme beim Aufnehmen melden, jetzt vom TypMediaRecorderErrorEventsind, anstatt generische Ereignisse zu sein. -
Die Dokumentation zu
OfflineAudioContextwurde aktualisiert, da die Eingaben des Konstruktors jetzt in einem Objekt anstatt als Liste von Parametern 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 nun als eindeutige undurchsichtige Ursprünge behandelt, anstatt den Ursprung des Objekts der Einstellungen zu erben, das für die Navigation verantwortlich ist (Firefox Bug 1324406).
Plugins
Keine Änderungen.
Sonstiges
- Der headless Modus von Firefox beinhaltet nun eine
-screenshotOption, die es Ihnen ermöglicht, Website-Screenshots direkt von der Kommandozeile aus zu erstellen (Firefox Bug 1378010).
Alles aus der Web-Plattform entfernte
>HTML
<link rel="preload">(siehe Preloading content with rel="preload") wurde in Firefox 57 deaktiviert, aufgrund von verschiedenen Webkompatibilitätsproblemen (z.B. Firefox Bug 1405761). Eine verbesserte Version, die für nicht-cachebare Ressourcen funktioniert, wird in Firefox 58 erwartet.
APIs
- Mozillas proprietäre Social API wurde vollständig entfernt (Firefox Bug 1388902).
SVG
Keine Änderungen.
Änderungen für Addon- 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 werden sie nicht funktionieren.
WebExtensions
Die folgenden APIs wurden hinzugefügt oder erweitert:
-
- Unterstützung für Trenner durch
bookmarks.BookmarkTreeNodeType
- Unterstützung für Trenner durch
-
theme_iconsEigenschaft für Icon-Themen in hell/dunkel
-
onCreatedonRemovedonUpdatedcolorCodeundiconUrlincontextualIdentities.ContextualIdentity
-
incognitoOption indownloads.download()estimatedEndTimeEigenschaft indownloads.DownloadItem
-
FindProxyForURL()kann jetzt ein Objekt zurückgeben
-
runtime.openOptionsPage()Unterstützung auf Android
-
loadReplaceOption intabs.update()discardedEigenschaft intabs.Tab,tabs.onUpdated, undtabs.query()tabs.create()kann "view-source:" URLs öffnenopenerTabIdEigenschaft intabs.Tab,tabs.create(),tabs.query(), undtabs.update()
-
colors.toolbarcolors.toolbar_fieldcolors.toolbar_field_textcolors.toolbar_text
-
windowIdOption fürtheme.update()
-
filterResponseData()proxyInfoEigenschaft inwebRequestEreignissen
-
allowScriptsToCloseOption inwindows.create()