Firefox 53 Versionshinweise für Entwickler
Firefox 53 wurde am 19. April 2017 veröffentlicht. Dieser Artikel listet wichtige Änderungen auf, die nicht nur für Webentwickler nützlich sind, sondern auch für Entwickler von Firefox und Gecko sowie für Add-on-Entwickler.
Änderungen für Webentwickler
>Entwickler-Tools
- Vermeidung von Scroll-Latenzen bei Highlightern, die von APZ bereitgestellt werden (Firefox Bug 1312103).
- Hinzugefügt: Option zum Kopieren des vollständigen CSS-Pfads eines Elements (Firefox Bug 1323700).
- DevTools-Unterstützung für css-color-4 (Firefox Bug 1310681).
- Markup-Ansicht: Hinzufügen eines visuellen Hinweises zwischen Öffnungs- und Schließ-Tags eines eingeklappten Knotens (Firefox Bug 1323193).
CSS
Neue Funktionen
- Die Langform-Eigenschaften
mask-*(siehe CSS Masks) werden jetzt vollständig unterstützt und sind standardmäßig verfügbar (siehe Firefox Bug 1251161). - Die
caret-colorEigenschaft wurde hinzugefügt (Firefox Bug 1063162). - Implementiert: Die Kurzform-Eigenschaften
place-items/place-self/place-content(Firefox Bug 1319958). - Der
flow-rootWert wurde zurdisplayEigenschaft hinzugefügt (Firefox Bug 1322191). -moz-tab-sizeakzeptiert jetzt<length>Werte (Firefox Bug 943918) und ist jetzt animierbar (Firefox Bug 1308110).mask-mode:luminance funktioniert nicht bei Gradient-Masken (Firefox Bug 1346265).- [css-grid] FR-Einheit in
grid-template-rowsfüllt den Viewport nicht (Firefox Bug 1346699). - Flex-Items werden nicht gemäß "order" sortiert, wenn sie durch ein abspos-Geschwisterelement getrennt sind (Firefox Bug 1345873).
Andere Änderungen
- Masken-Langformen werden bei SVG-Elementen aktiviert (Firefox Bug 1319667).
- [css-grid] Behoben:
align-self/justify-self:stretch/normalfunktioniert nicht bei<table>-Grid-Items (Firefox Bug 1316051). - Behoben:
clip-path: circle()mit großer Referenzbox und prozentualem Radius wird nicht korrekt gerendert (Firefox Bug 1324713). - Beim Anwenden eines
text-transformWerts vonuppercaseauf griechischen Text wird der Akzent auf dem disjunktiven Eta (ή) nicht mehr entfernt (siehe Firefox Bug 1322989). - Die Verfügbarkeit des
contents-Werts vondisplaywurde durch dielayout.css.display-contents.enabledVoreinstellung gesteuert. In Firefox 53 wurde diese Voreinstellung 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.nameEigenschaften wurde implementiert. Dies umfasst abgeleitete Namen bei anonymen Funktionen (var foo = function() {}) (Firefox Bug 883377). - ECMAScript 2015-Semantik für das Schließen von Iteratoren wurde implementiert. Dies betrifft zum Beispiel die
for...ofSchleife (Firefox Bug 1147371). - Der Template Literal Revision Vorschlag, der Einschränkungen bei Escape-Sequenzen in getaggten Template-Literalen aufhebt, wurde implementiert (Firefox Bug 1317375).
- Die statische
lengthEigenschaft vonTypedArrayObjekten wurde von 3 auf 0 gemäß ES2016 geändert (Firefox Bug 1317306). SharedArrayBufferkann nun inDataViewObjekten verwendet werden (Firefox Bug 1246597).- In früheren Versionen der Spezifikation mussten
SharedArrayBufferObjekte während des strukturieren Klonens explizit transferiert werden. In der neuen Spezifikation sind sie keine transferierbaren Objekte mehr und dürfen daher nicht mehr in der Transferliste stehen. Das neue Verhalten führte früher nur zu einer Konsolenwarnung, löst jetzt aber einen Fehler aus (Firefox Bug 1302037). - Die Länge von
ArrayBufferist nun aufNumber.MAX_SAFE_INTEGER(>= 2 ** 53) begrenzt (Firefox Bug 1255128). Errorund andere native Fehlertyp-Prototypen wieRangeErroretc. 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,transitionrunundtransitioncancelwurden implementiert (siehe Firefox Bug 1264125 und Firefox Bug 1287983). - Der
CompositionEventKonstruktor wurde implementiert (siehe Firefox Bug 1002256). - Die Aliase
MouseEvent.xundMouseEvent.yvonMouseEvent.clientX/MouseEvent.clientYwurden implementiert (siehe Firefox Bug 424390). - Das
auxclickEreignis und der entsprechende Ereignishandler wurden implementiert (siehe Firefox Bug 1304044). - Das
transitioncancelEreignis wird jetzt ausgelöst, nachdem ein Übergang abgebrochen wurde.
DOM
- Die Eigenschaften
pathnameundsearchvon Links (wie z. B. bei den Schnittstellen von<a>und<link>Elementen) gaben zuvor die falschen Teile der URL zurück. Beispielsweise würdepathnamebei einer URL vonhttp://z.com/x?a=true&b=false"/x?a=true&b=false"undsearch""zurückgeben, anstatt"/x"und"?a=true&b=false"jeweils. Dies wurde nun behoben (Firefox Bug 1310483). - Der
URLSearchParams()Konstruktor akzeptiert jetzt einen String oder eine Sequenz von Strings als Init-Objekt (Firefox Bug 1330678). - Die Methode
Selection.setBaseAndExtent()der Selection API ist jetzt implementiert (siehe Firefox Bug 1321623). - Die "fakepath" Ergänzung zu
fileTyp<input>valueswurde in Gecko implementiert, um Parität mit anderen Browsern zu schaffen (siehe Firefox Bug 1274596). Node.getRootNode()wurde implementiert und ersetzt die veraltete EigenschaftNode.rootNode(Firefox Bug 1269155).- Eigene Eigenschaften von
PluginundPluginArrayObjekten sind nicht mehr aufzählbar (Firefox Bug 1270366). - Benannte Eigenschaften von
MimeTypeArrayObjekten sind nicht mehr aufzählbar (Firefox Bug 1270364). - Die Permissions API hat jetzt einen neuen Berechtigungsnamen —
persistent-storage— der bei der Verwendung vonPermissions.query()verwendet wird (siehe Firefox Bug 1270038). Dies erlaubt es einem Ursprung, eine persistente Box (d.h. persistent storage) für seinen Speicher zu verwenden, gemäß der Storage API. - Die
Performance.timeOriginEigenschaft wurde implementiert (Firefox Bug 1313420).
Workers und Service Workers
- Die Network Information API ist jetzt in Workern verfügbar (siehe Firefox Bug 1323172).
- Server-sent events können jetzt in Workern verwendet werden (siehe Firefox Bug 1267903).
ExtendableEvent.waitUntil()kann jetzt asynchron aufgerufen werden (siehe Firefox Bug 1263304).
WebGL
- Die
WEBGL_compressed_texture_astcWebGL-Erweiterung wurde implementiert (Firefox Bug 1250077). - Die
WEBGL_debug_renderer_infoWebGL-Erweiterung ist jetzt standardmäßig aktiviert (Firefox Bug 1336645).
Audio, Video und Medien
Allgemein
- Beginnend mit Firefox 53 für Android wird das Decoding von Medien für verbesserte Leistung auf Multi-Core-Systemen out-of-process durchgeführt (Firefox Bug 1333323).
Media-Elemente
- Die Methode
HTMLMediaElement.play(), die verwendet wird, um die Wiedergabe von Medien in einem Media-Element zu starten, gibt jetzt einPromisezurück, das erfüllt wird, wenn die Wiedergabe beginnt, und abgelehnt wird, wenn ein Fehler auftritt (Firefox Bug 1244768).
Web Audio API
- Die Schnittstelle
AudioScheduledSourceNodewurde hinzugefügt und die SchnittstellenAudioBufferSourceNode,ConstantSourceNodeundOscillatorNodebasieren jetzt darauf (Firefox Bug 1324568). - Alle verschiedenen Audio-Knotentypen haben nun Konstruktoren hinzugefügt bekommen (Firefox Bug 1322883).
WebRTC
- Die Methoden
createOffer()undcreateAnswer()vonRTCPeerConnectiongeben jetzt einPromisezurück, das ein Objekt zurückgibt, das demRTCSessionDescriptionInitDictionary entspricht, anstatt direkt einRTCSessionDescriptionzu liefern. Bestehender Code wird weiterhin funktionieren, aber neuer Code kann einfacher geschrieben werden. - Ebenso akzeptieren die Methoden
setLocalDescription()undsetRemoteDescription()vonRTCPeerConnectionjetzt als Eingabe ein Objekt, das dem DictionaryRTCSessionDescriptionInitentspricht. Bestehender Code funktioniert weiterhin, kann jedoch vereinfacht werden. RTCPeerConnection.addIceCandidate()akzeptiert jetzt als Eingabeobjekt eine Initialisierungsobjekt. Dies ist mit bestehendem Code kompatibel, ermöglicht jedoch neuen Code in Kombination mit den oben genannten Änderungen, etwas einfacher geschrieben zu werden (Firefox Bug 1263312).- DTMF-Unterstützung ist jetzt standardmäßig mit
RTCDTMFSenderaktiviert. Siehe Verwenden von DTMF mit WebRTC für weitere Informationen darüber, wie dies funktioniert.
HTTP/Netzwerk
-
Gecko hat jetzt eine Voreinstellung in
about:config, die es Benutzern ermöglicht, ihre standardmäßigeReferrer-Policyeinzustellen —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 Standardwert)
- 0 —
-
Unterstützung für Next Protocol Negotiation (NPN) wurde zugunsten von Application-Layer Protocol Negotiation (ALPN) entfernt — siehe Firefox Bug 1248198.
-
Der
Large-AllocationHTTP-Header ist jetzt standardmäßig verfügbar und nicht mehr hinter einer Voreinstellung verborgen (Firefox Bug 1331083).
SVG
- Teilweise implementiert:
SVGGeometryElementSchnittstelle (Firefox Bug 1239100).
Entfernungen aus der Webplattform
>HTML/XML
- Die
dom.details_element.enabledVoreinstellung — die das Aktivieren/Deaktivieren der Unterstützung von<details>und<summary>Elementen in Firefox kontrollierte — wurde nun ausabout:configentfernt. Diese Elemente (erstmals standardmäßig in Firefox 49 aktiviert) können nicht mehr deaktiviert werden. Siehe Firefox Bug 1271549. - Das
mozappAttribut des<iframe>Elements/HTMLIFrameElementSchnittstelle wurde entfernt — dies wurde verwendet, um eine Firefox OS App in einem mozillapräfixierten Browser-API<iframe>einzubetten (Firefox Bug 1310845). - Die Methode
HTMLIFrameElement.setInputMethodActive()und dieInputMethodSchnittstelle (verwendet, um IMEs in Firefox OS Apps zu setzen und zu verwalten) wurden entfernt (Firefox Bug 1313169).
CSS
- Die
-mozPräfix-Variante der:dir()Pseudoklasse wurde entfernt (Firefox Bug 1270406). - Die
-mozPräfix-Version vontext-align-lastwurde entfernt (Firefox Bug 1276808). - Die
-mozPräfix-Variante der Methodecalc()wurde entfernt (Firefox Bug 1331296). - Das proprietäre
-moz-samplesizeMediafragment (hinzugefügt, um die Lieferung von heruntergesampelten Bildern an speicherschwache Firefox OS Geräte 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 erhalten, siehe Firefox Bug 1313112).
APIs
- Die Wi-Fi Informationen API, Speaker Manager API, Tethering API, und Settings API sind aus der Plattform entfernt worden (siehe Firefox Bug 1313788, Firefox Bug 1317853, Firefox Bug 1313789, und Firefox Bug 1313155 jeweils).
Andere
- Der
legacycallerwurde aus denHTMLEmbedElementundHTMLObjectElementSchnittstellen entfernt (Firefox Bug 909656).
Änderungen für Add-on- und Mozilla-Entwickler
>WebExtensions
Neue APIs:
Erweiterte APIs:
storage.syncpage_action,browser_action,password,tabKontexttypen incontextMenuswebRequest.onBeforeRequestunterstützt jetztrequestBodytabs.insertCSSunterstützt jetztcssOrigin, wodurch Sie Benutzerstile einfügen können.
JavaScript-Code-Module
- Die asynchronen AddonManager-APIs unterstützen jetzt
Promisessowie Rückrufmethoden (Firefox Bug 987512).