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, sondern auch für Firefox- und Gecko-Entwickler sowie Erweiterungsentwickler nützlich sind.
Änderungen für Webentwickler
>Entwicklerwerkzeuge
- Vermeidung von Scrollverzögerungen bei Hervorhebern durch APZ (Firefox Fehler 1312103).
- Hinzufügen der Option, den vollständigen CSS-Pfad eines Elements zu kopieren (Firefox Fehler 1323700).
- DevTools-Unterstützung für css-color-4 (Firefox Fehler 1310681).
- Markup-Ansicht: Visueller Hinweis zwischen öffnenden und schließenden Tags eines zusammengeklappten Knotens hinzugefügt (Firefox Fehler 1323193).
CSS
Neue Funktionen
- Die
mask-*Langform-Eigenschaften (siehe CSS Masks) werden vollständig unterstützt und sind standardmäßig verfügbar (siehe Firefox Fehler 1251161). - Die
caret-colorEigenschaft wurde hinzugefügt (Firefox Fehler 1063162). - Implementierung der
place-items/place-self/place-contentKurzschreibweisen (Firefox Fehler 1319958). - Der
flow-rootWert wurde zurdisplayEigenschaft hinzugefügt (Firefox Fehler 1322191). -moz-tab-sizeakzeptiert jetzt<length>Werte (Firefox Fehler 943918) und ist jetzt animierbar (Firefox Fehler 1308110).mask-mode:luminance funktioniert nicht bei Gradientenmasken (Firefox Fehler 1346265).- [css-grid] FR-Einheit in
grid-template-rowsfüllt den Viewport nicht (Firefox Fehler 1346699). - Flex-Elemente werden nicht nach "order" sortiert, wenn sie durch ein abspos-Geschwister getrennt sind (Firefox Fehler 1345873).
Andere Änderungen
- Aktivierung von Masken-Langformen auf SVG-Elementen (Firefox Fehler 1319667).
- [css-grid] Behoben:
align-self/justify-self:stretch/normalfunktioniert nicht auf<table>Gitter-Elementen (Firefox Fehler 1316051). - Behoben:
clip-path: circle()mit großem Referenzrahmen und Prozentsatz-Radius wird nicht korrekt dargestellt (Firefox Fehler 1324713). - Bei Anwendung eines
text-transformWertes vonuppercaseauf griechischen Text wird der Akzent auf dem disjunktiven Eta (ή) nicht mehr entfernt (siehe Firefox Fehler 1322989). - Die Verfügbarkeit des
contentsWertes vondisplaywurde durch dielayout.css.display-contents.enabled-Einstellung gesteuert. In Firefox 53 wurde diese Einstellung vollständig entfernt, sodass der Wert immer verfügbar ist und nicht mehr deaktiviert werden kann (Firefox Fehler 1295788).
JavaScript
- Die ECMAScript 2015-Semantik für die
Function.nameEigenschaften wurden implementiert. Dazu gehören abgeleitete Namen für anonyme Funktionen (var foo = function() {}) (Firefox Fehler 883377). - Die ECMAScript 2015-Semantik zum Schließen von Iteratoren wurde implementiert. Dies betrifft z. B. die
for...ofSchleife (Firefox Fehler 1147371). - Der Template Literal Revision Vorschlag, der Einschränkungen für Escape-Sequenzen in markierten Template Literalen aufhebt, wurde implementiert (Firefox Fehler 1317375).
- Die statische
lengthEigenschaft vonTypedArrayObjekten wurde gemäß ES2016 von 3 auf 0 geändert (Firefox Fehler 1317306). SharedArrayBufferkann nun inDataViewObjekten verwendet werden (Firefox Fehler 1246597).- In früheren Versionen der Spezifikation mussten
SharedArrayBufferObjekte beim strukturierten Klonen explizit übertragen werden. In der neuen Spezifikation sind sie keine übertragbaren Objekte mehr und dürfen daher nicht auf der Übertragungsliste stehen. Das neue Verhalten, das bisher nur eine Konsolenwarnung ausgab, wird jetzt einen Fehler werfen (Firefox Fehler 1302037). - Die
ArrayBufferLänge ist jetzt aufNumber.MAX_SAFE_INTEGER(>= 2 ** 53) begrenzt (Firefox Fehler 1255128). Errorund andere native Error-Objektprototypen wieRangeErrorsind jetzt gewöhnliche Objekte anstelle von richtigen Error-Objekten. (Insbesondere istObject.prototype.toString.call(Error.prototype)jetzt"[object Object]"anstatt"[object Error]".) (Firefox Fehler 1213341).
Events
- CSS-Übergänge: Die
transitionstart,transitionrunundtransitioncancelEreignisse wurden implementiert (siehe Firefox Fehler 1264125 und Firefox Fehler 1287983). - Der
CompositionEventKonstruktor wurde implementiert (siehe Firefox Fehler 1002256). - Die
MouseEvent.xundMouseEvent.yAliase vonMouseEvent.clientX/MouseEvent.clientYwurden implementiert (siehe Firefox Fehler 424390). - Das
auxclickEreignis und der entsprechende Ereignishandler wurden implementiert (siehe Firefox Fehler 1304044). - Das
transitioncancelEreignis wird jetzt ausgelöst, nachdem ein Übergang abgebrochen wurde.
DOM
- Die
pathnameundsearchEigenschaften von Links (wie z.B. für<a>und<link>Elemente) gaben zuvor die falschen Teile der URL zurück. Beispielsweise würde für die URLhttp://z.com/x?a=true&b=falsepathname"/x?a=true&b=false"zurückgeben undsearchwürde""anstatt"/x"und"?a=true&b=false"liefern. Dies wurde nun behoben (Firefox Fehler 1310483). - Der
URLSearchParams()Konstruktor akzeptiert jetzt eine Zeichenfolge oder eine Folge von Zeichenfolgen als Init-Objekt (Firefox Fehler 1330678). - Die
Selection.setBaseAndExtent()Methode der Selection API ist jetzt implementiert (siehe Firefox Fehler 1321623). - Die "fakepath" Erweiterung zu
fileTyp<input>valueswurde in Gecko implementiert und erreicht somit Gleichwertigkeit mit anderen Browsern (siehe Firefox Fehler 1274596). Node.getRootNode()wurde implementiert und ersetzt die veralteteNode.rootNodeEigenschaft (Firefox Fehler 1269155).- Eigene Eigenschaften von
PluginundPluginArrayObjekten sind nicht mehr aufzählbar (Firefox Fehler 1270366). - Benannte Eigenschaften von
MimeTypeArrayObjekten sind nicht mehr aufzählbar (Firefox Fehler 1270364). - Die Permissions API hat jetzt einen neuen Berechtigungsnamen verfügbar —
persistent-storage— wie beim Erstellen einerPermissions.query()(siehe Firefox Fehler 1270038). Dadurch kann ein Ursprung ein dauerhaftes Box-Modell (d.h. persistenter Speicher) für seinen Speicher verwenden, gemäß der Storage API. - Die
Performance.timeOriginEigenschaft wurde implementiert (Firefox Fehler 1313420).
Worker und Service Workers
- Die Network Information API ist jetzt in Workern verfügbar (siehe Firefox Fehler 1323172).
- Server-Sent Events können jetzt in Workern verwendet werden (siehe Firefox Fehler 1267903).
ExtendableEvent.waitUntil()kann nun asynchron aufgerufen werden (siehe Firefox Fehler 1263304).
WebGL
- Die
WEBGL_compressed_texture_astcWebGL-Erweiterung wurde implementiert (Firefox Fehler 1250077). - Die
WEBGL_debug_renderer_infoWebGL-Erweiterung ist jetzt standardmäßig aktiviert (Firefox Fehler 1336645).
Audio, Video und Medien
Allgemein
- Ab Firefox 53 für Android wird die Decodierung von Medien zur besseren Leistung auf Mehrkernsystemen out-of-process durchgeführt (Firefox Fehler 1333323).
Medienelemente
- Die Methode
HTMLMediaElement.play(), die verwendet wird, um die Wiedergabe von Medien in einem Medienelement zu starten, gibt jetzt einPromisezurück, das erfüllt wird, wenn die Wiedergabe beginnt und abgelehnt wird, wenn ein Fehler auftritt (Firefox Fehler 1244768).
Web Audio API
- Das
AudioScheduledSourceNodeInterface wurde hinzugefügt und die InterfacesAudioBufferSourceNode,ConstantSourceNodeundOscillatorNodebasieren jetzt darauf (Firefox Fehler 1324568). - Alle verschiedenen Audio-Knotentypen haben Konstruktoren hinzugefügt bekommen (Firefox Fehler 1322883).
WebRTC
- Die
RTCPeerConnectionMethodencreateOffer()undcreateAnswer()geben jetzt einPromisezurück, das ein Objekt konform mit demRTCSessionDescriptionInitWörterbuch statt direkt einRTCSessionDescriptionzurückgibt. Vorhandener Code wird weiterhin funktionieren, aber neuer Code kann einfacher geschrieben werden. - Ebenso akzeptieren die
RTCPeerConnectionMethodensetLocalDescription()undsetRemoteDescription()jetzt als Eingabe ein Objekt, das mit demRTCSessionDescriptionInitWörterbuch übereinstimmt. Vorhandener Code funktioniert weiterhin, kann aber vereinfacht werden. RTCPeerConnection.addIceCandidate()akzeptiert jetzt als Eingabe ein Initialisierungsobjekt. Dies ist mit vorhandenen Code kompatibel, ermöglicht jedoch, dass neuer Code in Kombination mit den oben aufgeführten Änderungen etwas einfacher geschrieben wird (Firefox Fehler 1263312).- DTMF Unterstützung ist jetzt standardmäßig mit
RTCDTMFSenderaktiviert. Weitere Informationen dazu, wie dies funktioniert, finden Sie unter Verwendung von DTMF mit WebRTC.
HTTP/Netzwerk
-
Gecko hat jetzt eine Einstellung in
about:config, um Benutzern zu ermöglichen, ihre Standard-Referrer-Policyfestzulegen —network.http.referer.userControlPolicy(Firefox Fehler 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 der Application-Layer Protocol Negotiation (ALPN) entfernt — siehe Firefox Fehler 1248198.
-
Der HTTP-Header
Large-Allocationist jetzt standardmäßig verfügbar und nicht mehr hinter einer Einstellung versteckt (Firefox Fehler 1331083).
SVG
- Teilweise implementiert die
SVGGeometryElementSchnittstelle (Firefox Fehler 1239100).
Entfernt aus der Webplattform
>HTML/XML
- Die
dom.details_element.enabledEinstellung — die Unterstützung für<details>und<summary>Elemente in Firefox aktivierte/deaktivierte — wurde jetzt ausabout:configentfernt. Diese Elemente (zuerst standardmäßig in Firefox 49 aktiviert) können nicht mehr deaktiviert werden. Siehe Firefox Fehler 1271549. - Das
mozappAttribut des<iframe>Elements /HTMLIFrameElementSchnittstelle wurde entfernt — dies wurde verwendet, um eine Firefox OS-App in ein Mozilla-präfix<iframe>des Browser-APIs einzubetten (Firefox Fehler 1310845). - Die
HTMLIFrameElement.setInputMethodActive()Methode und dasInputMethodInterface (verwendet, um IMEs auf Firefox OS-Apps einzustellen und zu verwalten) wurden entfernt (Firefox Fehler 1313169).
CSS
- Der
-moz-präfixierte Variante der:dir()Pseudoklasse wurde entfernt (Firefox Fehler 1270406). - Die
-moz-präfixierte Version vontext-align-lastwurde entfernt (Firefox Fehler 1276808). - Der
-moz-präfixierte Variante dercalc()Methode wurde entfernt (Firefox Fehler 1331296). - Das proprietäre
-moz-samplesizeMedienfragment (hinzugefügt, um die Lieferung von heruntergesampelten Bildern an Firefox OS-Geräte mit wenig Speicher zu unterstützen; siehe Firefox Fehler 854795) wurde entfernt (Firefox Fehler 1311246).
JavaScript
- Die nicht standardisierte
ArrayBuffer.slice()Methode wurde entfernt (aber die standardisierte VersionArrayBuffer.prototype.slice()bleibt erhalten, siehe Firefox Fehler 1313112).
APIs
- Die Wi-Fi-Informations-API, Speaker Manager API, Tethering API und Settings API wurden aus der Plattform entfernt (siehe Firefox Fehler 1313788, Firefox Fehler 1317853, Firefox Fehler 1313789 und Firefox Fehler 1313155 entsprechend).
Sonstiges
- Das
legacycallerwurde von den SchnittstellenHTMLEmbedElementundHTMLObjectElemententfernt (Firefox Fehler 909656).
Änderungen für Add-on- und Mozilla-Entwickler
>WebExtensions
Neue APIs:
Erweiterte APIs:
storage.syncpage_action,browser_action,password,tabKontexttypen incontextMenuswebRequest.onBeforeRequestunterstützt nunrequestBodytabs.insertCSSunterstützt nuncssOrigin, was es Ihnen ermöglicht, Benutzer-Stylesheets einzufügen.
JavaScript-Code-Module
- Die asynchronen AddonManager-APIs unterstützen nun
Promisessowie Callback-Funktionen (Firefox Fehler 987512).