Firefox 53 für Entwickler
Firefox 53 wurde am 19. April 2017 veröffentlicht. Dieser Artikel listet wichtige Änderungen auf, die nicht nur für Webentwickler, sondern auch für Entwickler von Firefox und Gecko sowie für Add-on-Entwickler nützlich sind.
Änderungen für Webentwickler
Entwicklertools
- Vermeidung von Scroll-Verzögerungen bei Markierungen durch APZ (Firefox Bug 1312103).
- Option hinzugefügt, den vollständigen CSS-Pfad eines Elements zu kopieren (Firefox Bug 1323700).
- DevTools-Unterstützung für css-color-4 (Firefox Bug 1310681).
- Markupansicht: Visueller Hinweis zwischen Öffnungs- und Schlusstag eines zusammengeschobenen Knotens hinzugefügt (Firefox Bug 1323193).
CSS
Neue Funktionen
- Die
mask-*
Langform-Eigenschaften (siehe CSS Masks) werden nun vollständig unterstützt und sind standardmäßig verfügbar (siehe Firefox Bug 1251161). - Die Eigenschaft
caret-color
wurde hinzugefügt (Firefox Bug 1063162). - Die
place-items
/place-self
/place-content
Kürzen wurden implementiert (Firefox Bug 1319958). - Der
flow-root
Wert wurde zurdisplay
Eigenschaft hinzugefügt (Firefox Bug 1322191). -moz-tab-size
akzeptiert nun\<length>
Werte (Firefox Bug 943918) und ist nun animierbar (Firefox Bug 1308110).mask-mode
:luminance funktioniert nicht bei Gradient-Masken (Firefox Bug 1346265).- [css-grid] FR-Einheit in
grid-template-rows
füllt den Viewport nicht (Firefox Bug 1346699). - Flex-Elemente werden nicht gemäß "order" sortiert, wenn sie durch ein abspos-Geschwister getrennt sind (Firefox Bug 1345873).
Weitere Änderungen
- Masken-Langformen auf SVG-Elementen aktivieren (Firefox Bug 1319667).
- [css-grid] Behoben:
align-self
/justify-self:stretch
/normal
funktioniert nicht bei<table>
Gitterelementen (Firefox Bug 1316051). - Behoben:
clip-path: circle()
mit großem Referenzrahmen und prozentualem Radius wird nicht korrekt gerendert (Firefox Bug 1324713). - Beim Anwenden eines
text-transform
Wertes vonuppercase
auf griechischen Text wird der Akzent auf dem disjunktiven Eta (ή) nicht mehr entfernt (siehe Firefox Bug 1322989). - Die Verfügbarkeit des Wertes
contents
vondisplay
wurde über die Einstellunglayout.css.display-contents.enabled
gesteuert. In Firefox 53 wurde diese Einstellung komplett entfernt, sodass der Wert immer verfügbar ist und nicht mehr deaktiviert werden kann (Firefox Bug 1295788).
JavaScript
- ECMAScript 2015 Semantik für die
Function.name
Eigenschaften wurden implementiert. Dies schließt abgeleitete Namen bei anonymen Funktionen (var foo = function() {}
) ein (Firefox Bug 883377). - ECMAScript 2015 Semantik zum Schließen von Iteratoren wurde implementiert. Dies betrifft z.B. die
for...of
Schleife (Firefox Bug 1147371). - Der Template Literal Revision Vorschlag, der Beschränkungen von Escape-Sequenzen in getaggten Template Literals aufhebt, wurde implementiert (Firefox Bug 1317375).
- Die statische
length
Eigenschaft vonTypedArray
Objekten wurde gemäß ES2016 von 3 auf 0 geändert (Firefox Bug 1317306). SharedArrayBuffer
kann nun inDataView
Objekten verwendet werden (Firefox Bug 1246597).- In früheren Versionen der Spezifikation mussten
SharedArrayBuffer
Objekte explizit während des strukturierten Klonens übertragen werden. In der neuen Spezifikation sind sie keine übertragbaren Objekte mehr und dürfen daher nicht in der Übertragungsliste enthalten sein. Das neue Verhalten führte nur zu einer Konsolenwarnung, wirft nun jedoch einen Fehler (Firefox Bug 1302037). - Die Länge des
ArrayBuffer
ist nun aufNumber.MAX_SAFE_INTEGER
(>= 2 ** 53) beschränkt (Firefox Bug 1255128). Error
und andere native Fehlerobjektprototypen wieRangeError
usw. sind nun gewöhnliche Objekte anstatt richtige Fehlerobjekte. (Insbesondere istObject.prototype.toString.call(Error.prototype)
jetzt"[object Object]"
anstatt"[object Error]"
.) (Firefox Bug 1213341).
Events
- CSS-Übergänge: Die Events
transitionstart
,transitionrun
undtransitioncancel
wurden implementiert (siehe Firefox Bug 1264125 und Firefox Bug 1287983). - Der
CompositionEvent
Konstruktor wurde implementiert (siehe Firefox Bug 1002256). - Die Aliasse
MouseEvent.x
undMouseEvent.y
fürMouseEvent.clientX
/MouseEvent.clientY
wurden implementiert (siehe Firefox Bug 424390). - Das
auxclick
Event und der entsprechende Event-Handler wurden implementiert (siehe Firefox Bug 1304044). - Das
transitioncancel
Event wird nun nach einem Übergang ausgelöst, der abgebrochen wurde.
DOM
- Die Eigenschaften
pathname
undsearch
von Links (wie für<a>
und<link>
Element-Schnittstellen) gaben zuvor die falschen Teile der URL zurück. Beispielsweise würde für eine URL vonhttp://z.com/x?a=true&b=false
pathname
"/x?a=true&b=false"
undsearch
""
zurückgeben anstatt"/x"
bzw."?a=true&b=false"
. Dies wurde nun behoben (Firefox Bug 1310483). - Der
URLSearchParams()
Konstruktor akzeptiert nun einen String oder eine Sequenz von Strings als Init-Objekt (Firefox Bug 1330678). - Die Methode
Selection.setBaseAndExtent()
der Selection API ist nun implementiert (siehe Firefox Bug 1321623). - Die "fakepath" Ergänzung zum
file
Typ<input>
values
wurde in Gecko implementiert, was zur Gleichstellung mit anderen Browsern führt (siehe Firefox Bug 1274596). Node.getRootNode()
wurde implementiert und ersetzt die veralteteNode.rootNode
Eigenschaft (Firefox Bug 1269155).- Eigene Eigenschaften von
Plugin
undPluginArray
Objekten sind nicht mehr aufzählbar (Firefox Bug 1270366). - Benannte Eigenschaften von
MimeTypeArray
Objekten sind nicht mehr aufzählbar (Firefox Bug 1270364). - Die Permissions API hat jetzt einen neuen Berechtigungsnamen —
persistent-storage
— verfügbar, der bei einerPermissions.query()
Abfrage verwendet wird (siehe Firefox Bug 1270038). Dies ermöglicht es einem Ursprungsort, einen permanenten Bereich (d.h. dauerhaften Speicher) für seinen Speicher zu verwenden, gemäß der Storage API. - Die
Performance.timeOrigin
Eigenschaft wurde implementiert (Firefox Bug 1313420).
Worker und Serviceworker
- Die Netzwerkinformations-API ist jetzt in Workern verfügbar (siehe Firefox Bug 1323172).
- Server-Sent Events können nun in Workern verwendet werden (siehe Firefox Bug 1267903).
ExtendableEvent.waitUntil()
kann nun asynchron aufgerufen werden (siehe Firefox Bug 1263304).
WebGL
- Die
WEBGL_compressed_texture_astc
WebGL Erweiterung wurde implementiert (Firefox Bug 1250077). - Die
WEBGL_debug_renderer_info
WebGL Erweiterung ist nun standardmäßig aktiviert (Firefox Bug 1336645).
Audio, Video und Medien
Allgemein
- Ab Firefox 53 für Android wird das Dekodieren von Medien out-of-process für verbesserte Leistung auf Multi-Core Systemen behandelt (Firefox Bug 1333323).
Medienelemente
- Die Methode
HTMLMediaElement.play()
, die zur Wiedergabe von Medien in einem Medienelement verwendet wird, gibt nun einenPromise
zurück, der erfüllt wird, wenn die Wiedergabe beginnt, und abgelehnt wird, wenn ein Fehler auftritt (Firefox Bug 1244768).
Web Audio API
- Die Schnittstelle
AudioScheduledSourceNode
wurde hinzugefügt und die SchnittstellenAudioBufferSourceNode
,ConstantSourceNode
undOscillatorNode
basieren nun darauf (Firefox Bug 1324568). - Alle verschiedenen Audio-Knotentypen haben Konstruktoren hinzugefügt bekommen (Firefox Bug 1322883).
WebRTC
- Die Methoden
RTCPeerConnection.createOffer()
undcreateAnswer()
geben nun einenPromise
zurück, der ein Objekt liefert, das sich an dasRTCSessionDescriptionInit
Dictionary hält, anstatt direkt einRTCSessionDescription
zurückzugeben. Bestehender Code wird weiterhin funktionieren, aber neuer Code kann einfacher geschrieben werden. - Ähnlich akzeptieren die Methoden
RTCPeerConnection.setLocalDescription()
undsetRemoteDescription()
nun als Eingabe ein Objekt, das sich an dasRTCSessionDescriptionInit
Dictionary hält. Bestehender Code funktioniert weiterhin, kann aber vereinfacht werden. RTCPeerConnection.addIceCandidate()
akzeptiert nun als Eingabe ein Initialisierungsobjekt. Dies ist kompatibel mit bestehendem Code, erlaubt jedoch neuen Code, der leicht vereinfacht geschrieben werden kann, wenn er zusammen mit den oben genannten Änderungen verwendet wird (Firefox Bug 1263312).- DTMF Unterstützung ist jetzt standardmäßig aktiviert und verwendet
RTCDTMFSender
. Weitere Informationen zur Funktionsweise finden Sie unter Using DTMF with WebRTC.
HTTP/Networking
-
Gecko hat jetzt eine Einstellung in
about:config
, die Benutzern ermöglicht, ihre StandardReferrer-Policy
festzulegen —network.http.referer.userControlPolicy
(Firefox Bug 1304623). Mögliche Werte sind:- 0 —
no-referrer
- 1 —
same-origin
- 2 —
strict-origin-when-cross-origin
- 3 —
no-referrer-when-downgrade
(der Standard)
- 0 —
-
Unterstützung für Next Protocol Negotiation (NPN) wurde zugunsten von Application-Layer Protocol Negotiation (ALPN) entfernt — siehe Firefox Bug 1248198.
-
Der
Large-Allocation
HTTP-Header ist jetzt standardmäßig verfügbar und nicht mehr hinter einer Einstellung versteckt (Firefox Bug 1331083).
SVG
- Die Schnittstelle
SVGGeometryElement
wurde teilweise implementiert (Firefox Bug 1239100).
Entfernungen aus der Webplattform
HTML/XML
- Die Einstellung
dom.details_element.enabled
— die die Aktivierung/Deaktivierung des<details>
und<summary>
Element-Supports in Firefox steuerte — wurde jetzt ausabout:config
entfernt. Diese Elemente (zuerst standardmäßig in Firefox 49 aktiviert) können nicht mehr deaktiviert werden. Siehe Firefox Bug 1271549. - Das
mozapp
Attribut des<iframe>
Elements /HTMLIFrameElement
Schnittstelle wurde entfernt — dies wurde verwendet, um eine Firefox OS App in ein mozilla-präfixiertes Browser-API<iframe>
einzubetten (Firefox Bug 1310845). - Die
HTMLIFrameElement.setInputMethodActive()
Methode und dieInputMethod
Schnittstelle (verwendet, um IMEs in Firefox OS Apps zu setzen und zu verwalten) wurden entfernt (Firefox Bug 1313169).
CSS
- Entfernte
-moz
Präfix-Variante der:dir()
Pseudoklasse (Firefox Bug 1270406). - Die
-moz
Präfix-Version vontext-align-last
wurde entfernt (Firefox Bug 1276808). - Entfernte
-moz
Präfix-Variante dercalc()
Methode (Firefox Bug 1331296). - Der proprietäre
-moz-samplesize
Medienfragment (hinzugefügt, um die Lieferung von herunterkonvertierten Bildern an Geräte mit niedrigem Speicher in Firefox OS zu unterstützen; siehe Firefox Bug 854795) wurde entfernt (Firefox Bug 1311246).
JavaScript
- Die nicht-standardisierte
ArrayBuffer.slice()
Methode wurde entfernt (aber die standardisierte VersionArrayBuffer.prototype.slice()
bleibt, siehe Firefox Bug 1313112).
APIs
- Die Wi-Fi Information API, Speaker Manager API, Tethering API und Settings API wurden von der Plattform entfernt (siehe Firefox Bug 1313788, Firefox Bug 1317853, Firefox Bug 1313789 und Firefox Bug 1313155 jeweils).
Andere
- Der
legacycaller
wurde von denHTMLEmbedElement
undHTMLObjectElement
Schnittstellen entfernt (Firefox Bug 909656).
Änderungen für Add-on- und Mozilla-Entwickler
WebExtensions
Neue APIs:
Erweiterte APIs:
storage.sync
page_action
,browser_action
,password
,tab
Kontexttypen incontextMenus
webRequest.onBeforeRequest
unterstützt nunrequestBody
tabs.insertCSS
unterstützt nuncssOrigin
, was es ermöglicht, Benutzer-Stylesheets einzufügen.
JavaScript-Code-Module
- Die asynchronen AddonManager APIs unterstützen nun
Promises
sowie Callback-Funktionen (Firefox Bug 987512).
Ältere Versionen
- 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
- Firefox 25 für Entwickler
- Firefox 24 für Entwickler
- Firefox 23 für Entwickler
- Firefox 22 für Entwickler