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 Firefox- und Gecko-Entwickler sowie für Add-on-Entwickler nützlich sind.
Änderungen für Webentwickler
Entwicklertools
- Vermeidung von Scrollverzögerungen bei Markierungen durch APZ (Firefox-Bug 1312103).
- Option zum Kopieren des vollständigen CSS-Pfads eines Elements hinzugefügt (Firefox-Bug 1323700).
- DevTools-Unterstützung für css-color-4 (Firefox-Bug 1310681).
- Markup-Ansicht: Ein visueller Hinweis zwischen öffnenden und schließenden Tags eines eingeklappten Knotens wurde hinzugefügt (Firefox-Bug 1323193).
CSS
Neue Funktionen
- Die
mask-*
Langform-Eigenschaften (siehe CSS Masks) werden nun unterstützt und sind standardmäßig verfügbar (siehe Firefox-Bug 1251161). - Die
caret-color
Eigenschaft wurde hinzugefügt (Firefox-Bug 1063162). - Implementierung der Kurzformen
place-items
/place-self
/place-content
(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 jetzt animierbar (Firefox-Bug 1308110).mask-mode
:luminance funktioniert nicht bei Gradientenmasken (Firefox-Bug 1346265).- [css-grid] FR-Einheit in
grid-template-rows
füllt den Viewport nicht (Firefox-Bug 1346699). - Flex-Elemente werden nicht nach "order" sortiert, wenn sie durch ein abspos-Geschwister getrennt sind (Firefox-Bug 1345873).
Weitere Änderungen
- Aktivierung der Masken-Langformen auf SVG-Elementen (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ßer Referenzbox und prozentualem Radius rendert nicht korrekt (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
contents
Wertes vondisplay
wurde durch dielayout.css.display-contents.enabled
Präferenz gesteuert. In Firefox 53 wurde diese Präferenz vollständig 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 ein (var foo = function() {}
) (Firefox-Bug 883377). - ECMAScript 2015-Semantik für das Schließen von Iteratoren wurde implementiert. Dies betrifft z.B. die
for...of
Schleife (Firefox-Bug 1147371). - Der Template Literal Revision Vorschlag, der Einschränkungen beim Escape-Sequenzen bei getaggten Template-Literalen aufhebt, wurde implementiert (Firefox-Bug 1317375).
- Die statische
length
Eigenschaft vonTypedArray
Objekten wurde von 3 auf 0 gemäß ES2016 geändert (Firefox-Bug 1317306). SharedArrayBuffer
kann jetzt inDataView
Objekten verwendet werden (Firefox-Bug 1246597).- In früheren Versionen der Spezifikation mussten
SharedArrayBuffer
Objekte während strukturellem Klonen ausdrücklich übertragen werden. In der neuen Spezifikation sind sie keine übertragbaren Objekte mehr und dürfen somit nicht mehr auf der Transferliste erscheinen. Das neue Verhalten gab bisher nur eine Konsolenwarnung aus, wird jetzt jedoch einen Fehler auslösen (Firefox-Bug 1302037). - Die Länge von
ArrayBuffer
ist nun aufNumber.MAX_SAFE_INTEGER
(>= 2 ** 53) begrenzt (Firefox-Bug 1255128). Error
und andere native Error-Objektprototypen wieRangeError
usw. sind nun gewöhnliche Objekte anstelle von echten Error-Objekten. (Insbesondere istObject.prototype.toString.call(Error.prototype)
jetzt"[object Object]"
anstelle von"[object Error]"
.) (Firefox-Bug 1213341).
Ereignisse
- CSS-Übergänge: Die Ereignisse
transitionstart
,transitionrun
undtransitioncancel
wurden implementiert (siehe Firefox-Bug 1264125 und Firefox-Bug 1287983). - Der
CompositionEvent
Konstruktor wurde implementiert (siehe Firefox-Bug 1002256). - Die Aliase
MouseEvent.x
undMouseEvent.y
vonMouseEvent.clientX
/MouseEvent.clientY
wurden implementiert (siehe Firefox-Bug 424390). - Das
auxclick
Ereignis und der entsprechende Ereignishandler wurden implementiert (siehe Firefox-Bug 1304044). - Das
transitioncancel
Ereignis wird jetzt ausgelöst, nachdem ein Übergang abgebrochen wird.
DOM
- Die
pathname
undsearch
Eigenschaften von Links (wie für<a>
und<link>
Elemente) gaben zuvor die falschen Teile der URL zurück. Beispielsweise gab für eine URL wiehttp://z.com/x?a=true&b=false
pathname
"/x?a=true&b=false"
zurück undsearch
"", anstatt "/x
" und "?a=true&b=false"
korrekt auszugeben. Dies wurde nun behoben (Firefox-Bug 1310483). - Der
URLSearchParams()
Konstruktor akzeptiert jetzt eine Zeichenkette oder eine Sequenz von Zeichenketten als Initiierungsobjekt (Firefox-Bug 1330678). - Die Methode
Selection.setBaseAndExtent()
der Selection API ist jetzt implementiert (siehe Firefox-Bug 1321623). - Die "fakepath"-Hinzufügung zum
file
-Typ<input>
Werte
wurde in Gecko implementiert, um gleichwertig mit anderen Browsern zu sein (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 verfügbar —
persistent-storage
— wie verwendet beiPermissions.query()
(siehe Firefox-Bug 1270038). Dies ermöglicht es einem Ursprung, einen persistenten Speicherbereich (d.h. persistenten Speicher) für seinen Speicher zu nutzen, gemäß der Storage API. - Die
Performance.timeOrigin
Eigenschaft wurde implementiert (Firefox-Bug 1313420).
Arbeiter und Service-Arbeiter
- Die Netzwerk-Informations-API ist jetzt in Arbeitern verfügbar (siehe Firefox-Bug 1323172).
- Server-gesendete Ereignisse können jetzt in Arbeitern genutzt werden (siehe Firefox-Bug 1267903).
ExtendableEvent.waitUntil()
kann jetzt 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 jetzt standardmäßig aktiviert (Firefox-Bug 1336645).
Audio, Video und Medien
Allgemein
- Beginnend mit Firefox 53 für Android wird die Dekodierung von Medien zum besseren Nutzen von Mehrkernsystemen außerhalb des Prozesses gehandhabt (Firefox-Bug 1333323).
Medienelemente
- Die Methode
HTMLMediaElement.play()
, die zur Wiedergabe von Medien in einem Medienelement verwendet wird, gibt jetzt einPromise
zurück, das erfüllt wird, wenn die Wiedergabe beginnt, und abgelehnt wird, wenn ein Fehler auftritt (Firefox-Bug 1244768).
Web Audio API
- Das Interface
AudioScheduledSourceNode
wurde hinzugefügt und die InterfacesAudioBufferSourceNode
,ConstantSourceNode
undOscillatorNode
basieren nun darauf (Firefox-Bug 1324568). - Alle verschiedenen Audio-Knotentypen haben nun Konstruktoren erhalten (Firefox-Bug 1322883).
WebRTC
- Die Methoden
createOffer()
undcreateAnswer()
vonRTCPeerConnection
geben jetzt einPromise
zurück, das ein Objekt konform mit demRTCSessionDescriptionInit
Wörterbuch zurückgibt, anstatt direkt einRTCSessionDescription
zurückzugeben. Bestehender Code wird weiterhin funktionieren, aber neuer Code kann einfacher geschrieben werden. - In ähnlicher Weise akzeptieren die Methoden
setLocalDescription()
undsetRemoteDescription()
vonRTCPeerConnection
jetzt als Eingabe ein Objekt konform mit dem WörterbuchRTCSessionDescriptionInit
. Bestehender Code funktioniert weiterhin, kann aber vereinfacht werden. RTCPeerConnection.addIceCandidate()
akzeptiert nun als Eingabe ein Initialisierungsobjekt. Dies ist kompatibel mit bestehendem Code, ermöglicht aber neuen Code, der zusammen mit den oben genannten Änderungen geschrieben wird, etwas einfacher zu sein (Firefox-Bug 1263312).- DTMF-Unterstützung ist jetzt standardmäßig mit
RTCDTMFSender
aktiviert. Weitere Informationen zum Funktionsumfang finden Sie unter Verwendung von DTMF mit WebRTC.
HTTP/Netzwerk
-
Für Gecko ist jetzt eine Voreinstellung in
about:config
verfügbar, die es Benutzern ermöglicht, ihre Standard-Referrer-Policy
-Richtlinie 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
(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 Voreinstellung versteckt (Firefox-Bug 1331083).
SVG
- Teilweise implementierte
SVGGeometryElement
Schnittstelle (Firefox-Bug 1239100).
Entfernungen von der Webplattform
HTML/XML
- Die Präferenz
dom.details_element.enabled
— die das Aktivieren/Deaktivieren der Unterstützung von<details>
und<summary>
Elementen in Firefox kontrollierte — wurde jetzt ausabout:config
entfernt. Diese Elemente (erstmals standardmäßig aktiviert in Firefox 49) können nicht mehr deaktiviert werden. Siehe Firefox-Bug 1271549. - Das
mozapp
Attribut des<iframe>
Elements/HTMLIFrameElement
Schnittstellen wurde entfernt — dieses diente dazu, eine Firefox OS App in ein Mozilla-präfixiertes<iframe>
des Browser-API einzubetten (Firefox-Bug 1310845). - Die Methode
HTMLIFrameElement.setInputMethodActive()
und dieInputMethod
Schnittstelle (zur Verwaltung von IMEs auf Firefox OS Apps) wurden entfernt (Firefox-Bug 1313169).
CSS
- Entfernt
-moz
Präfixvariante der:dir()
Pseudoklasse (Firefox-Bug 1270406). - Die
-moz
Präfixvariante vontext-align-last
wurde entfernt (Firefox-Bug 1276808). - Entfernt
-moz
Präfixvariante dercalc()
Methode (Firefox-Bug 1331296). - Der proprietäre
-moz-samplesize
Medien-Fragment (hinzugefügt zur Unterstützung der Bereitstellung heruntergesampleter Bilder an speicherschwache Firefox OS-Geräte; 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 erhalten, siehe Firefox-Bug 1313112).
APIs
- Die Wi-Fi-Informations-API, die Lautsprecher-Manager-API, die Tethering-API und die Einstellungen-API wurden aus der Plattform entfernt (siehe Firefox-Bug 1313788, Firefox-Bug 1317853, Firefox-Bug 1313789 und Firefox-Bug 1313155).
Sonstiges
- Der
legacycaller
wurde aus 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 jetztcssOrigin
, wodurch Sie Benutzerstilblätter einfügen können.
JavaScript-Code-Module
- Die asynchronen AddonManager-APIs unterstützen jetzt
Promises
sowie Rückrufe (Firefox-Bug 987512.
Ältere Versionen
- 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
- Firefox 25 for developers
- Firefox 24 for developers
- Firefox 23 for developers
- Firefox 22 for developers