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 hat den Veröffentlichungsnamen Quantum erhalten, nach dem Firefox Quantum Ingenieurprojekt, das darauf abzielt, Firefox von Grund auf neu zu bauen, was große Leistungs-, Stabilitäts- und visuelle Verbesserungen mit sich bringt. Dies ist die erste Version von Firefox, die einige dieser Verbesserungen enthielt, daher wollten wir diesen Anlass markieren.
Hinweis: Um mehr über die Quantum-Funktionen in dieser Veröffentlichung zu erfahren, lesen Sie Firefox Quantum Developer Edition: der schnellste Firefox aller Zeiten mit Photon UI und besseren Werkzeugen von Dan Callahan.
Firefox's neue parallele CSS-Engine — auch bekannt als Quantum CSS oder Stylo — ist standardmäßig in Firefox 57 für Desktop aktiviert, mit mobilen Versionen von Firefox, die später folgen werden. Entwickler sollten nichts signifikant anderes bemerken, abgesehen von einer ganzen Reihe von Leistungsverbesserungen. Es gibt jedoch eine Reihe von kleineren funktionalen Unterschieden in Stylo, die implementiert wurden, um das nicht standardmäßige 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 Webentwickler
>Entwicklerwerkzeuge
Keine Änderungen.
HTML
- Die date und time
<input>Typen sind nun in allen Builds aktiviert (Firefox Bug 1399036).
CSS
- Die Werte
minimal-uiundstandalonederdisplay-modeMedia Query werden jetzt unterstützt (Firefox Bug 1369815). Siehe auch das Web-App-ManifestdisplayFeld. - Die Eigenschaften
grid-row-gapundgrid-column-gapwerden nicht mehr durch diegridShorthand zurückgesetzt (Firefox Bug 1387410). - Die Einstellung
layout.css.clip-path-shapes.enabledwurde 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 Bugs wurden in Quantum behoben:
- Radiale Gradient-Werte wie
radial-gradient(circle gold,red)funktionieren im alten Gecko-Stilsystem, obwohl sie es nicht sollten, weil das Komma zwischencircleundgoldfehlt (Firefox Bug 1383323). - Wenn Sie ein Offscreen-Element beim Onscreen-Rendering animieren, aber eine Verzögerung angeben, wird in Gecko auf manchen Plattformen kein Repaint durchgeführt, z.B. auf Windows (Firefox Bug 1383239).
- In Gecko können
<details>Elemente nicht standardmäßig mit demopenAttribut geöffnet werden, wenn eineanimationaktiv darauf ist (Firefox Bug 1382124). - In Gecko funktionieren
Transitionsnicht beim Übergang von einemtext-shadowmit einer spezifizierten Farbe zu einemtext-shadowohne spezifizierte Farbe (Firefox Bug 726550). - In Gecko kann das Abbrechen einer Animation mit Füllmodus (z.B. mit
animation-fill-mode: forwardsgesetzt) einen Übergang auf dem gleichen Element auslösen, jedoch 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, werden in Gecko nicht von Änderungen der
font-sizeauf dem Eltern-Element des animierten Elements beeinflusst, sollte es aber (Firefox Bug 1254424). - Gecko behandelt zudem die
font-sizeVererbung anders als Quantum CSS, was bedeutet, dass für einige Spracheinstellungen geerbte Schriftgrößen kleiner als erwartet enden (siehe Firefox Bug 1391341). - Gecko verwendet denselben Mechanismus beim Parsen eines url-token, wenn die
domain()oderurl-prefix()URL-Matching-Funktionen für eine@-moz-documentRegel geparst wird. 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 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>, das mitcreateElement()erstellt wurde und noch nicht in das DOM eingefügt ist), wird das Wurzelelement des Teilbaums als Block-Element gesetzt. In Quantum CSS wird dies als Inline-Element gemäß Spezifikation gesetzt (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 unterstützt, wo die Spezifikation erklärt, dass es unterstützt werden sollte (Firefox Bug 1350857). In Gecko wird es nicht unterstützt. - Gecko hat einen Bug, bei dem die
::beforeund::afterPseudo-Elemente weiterhin generiert werden, selbst wenn dercontentEigenschaftswert aufnormalodernonegesetzt ist. Laut Spezifikation sollten sie es nicht (Firefox Bug 1387931). - Ein weiterer Gecko-Bug bedeutet, dass die
background-positionEigenschaft nicht zwischen zwei Werten mit unterschiedlichen Zahlen von<position>Werten übergegangen werden 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...inSchleife, ursprünglich Teil von ECMAScript for XML (E4X), wurde entfernt. Bitte verwenden Siefor...ofstattdessen. (Firefox Bug 1083470). - Die
Object.prototype.watch()undObject.prototype.unwatch()Methoden sind veraltet, werden jetzt eine Warnung auslösen, wenn sie verwendet werden, und werden bald entfernt werden (Firefox Bug 934669). - Die nicht-standardisierten
IteratorundStopIterationObjekte sowie das veraltete Iterationsprotokoll wurden entfernt (Firefox Bug 1098412). - Async Generator ist jetzt aktiviert (Firefox Bug 1352312).
- Die Syntax for await (... of ...) 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, 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.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 Methode
HTMLDocument.getSelection()wurde zurDocumentSchnittstelle verschoben, sodass sie für XML-Dokumente verfügbar ist (Firefox Bug 718711). - Das
messageerrorEreignis ist jetzt implementiert und kann Code ausführen, wenn es über Ereignishandler auf Nachrichtenzielen ausgelöst wird — siehe dasmessageerrorEreignis vonMessagePort,DedicatedWorkerGlobalScope,Worker,BroadcastChannelundWindow(Firefox Bug 1359017). - Wenn
HeadersWerte 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 von beliebiger Größe (bis zu 1GiB, obwohl 256kiB interoperabler ist) wird jetzt auf
RTCDataChanneldurch Verwendung des End-of-Record (EOR) Flags auf SCTP-Nachrichten unterstützt. Weitere Informationen finden Sie unter Verständnis der Nachrichtengrößenlimits (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 verflechten, noch nicht unterstützt, kann das Senden großer Datenobjekte erhebliche Verzögerungen im gesamten 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
RTCDataChannel.send()Methode kann jetzt eineTypeErrorAusnahme auswerfen, wenn die Nachrichtengröße, die Sie senden möchten, nicht mit dem empfangenden User Agent kompatibel ist (dies wird im Rahmen von Firefox Bug 979417 implementiert). -
Die MediaStream Recording API wurde aktualisiert, sodass jetzt
errorEreignisse, die gesendet werden, um Probleme zu melden, die beim Aufnehmen auftreten, vom TypMediaRecorderErrorEventanstatt von generischen Ereignissen sind. -
Die Dokumentation zu
OfflineAudioContextwurde aktualisiert, da die Eingaben des Konstruktors jetzt in einem Objekt anstelle einer Liste von Parametern angegeben werden können (Firefox Bug 1388591). -
Die Web Audio API unterstützt jetzt richtig Mehrkanal-Ausgabe (Firefox Bug 1378070).
Sicherheit
resource://URLs lecken keine Informationen mehr (Firefox Bug 863246)- Daten-URLs werden jetzt als einzigartige, opake Ursprünge behandelt, anstatt den Ursprung des für die Navigation verantwortlichen Einstellungsobjekts zu erben (Firefox Bug 1324406).
Plugins
Keine Änderungen.
Sonstiges
- Der Headless-Modus von Firefox enthält jetzt ein
-screenshotFlag, mit dem Sie Websites direkt von der Kommandozeile aus aufnehmen können (Firefox Bug 1378010).
Entfernungen von der Web-Plattform
>HTML
<link rel="preload">(siehe Inhalte mit rel="preload" vorladen) wurde in Firefox 57 aufgrund verschiedener Web-Kompatibilitätsprobleme deaktiviert (z.B. Firefox Bug 1405761). Eine verbesserte Version, die mit nicht Cache-fähigen Ressourcen funktioniert, soll in Firefox 58 veröffentlicht werden.
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 Browser-Erweiterungen (auch bekannt als WebExtensions) konvertiert 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_iconsEigenschaft für helle/dunkle Thema-Icons
-
onCreatedonRemovedonUpdatedcolorCodeundiconUrlincontextualIdentities.ContextualIdentity
-
incognitoOption indownloads.download()estimatedEndTimeEigenschaft indownloads.DownloadItem
-
FindProxyForURL()kann nun 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 zutheme.update()
-
filterResponseData()proxyInfoEigenschaft inwebRequestEreignissen
-
allowScriptsToCloseOption inwindows.create()