Firefox 44 Versionshinweise für Entwickler
Um die neuesten Entwicklerfunktionen von Firefox zu testen, installieren Sie die Firefox Developer Edition. Firefox 44 wurde am 26. Januar 2016 veröffentlicht. Dieser Artikel listet die wichtigsten Änderungen auf, die nicht nur für Webentwickler nützlich sind, sondern auch für Firefox- und Gecko-Entwickler sowie Add-on-Entwickler.
Änderungen für Webentwickler
>Entwicklerwerkzeuge
Höhepunkte:
- Memory-Tool
- Verbesserungen im Animationsinspekteur
- Neue Waterfall-Markierungen: DomContentLoaded, Load, Worker-Nachrichten
Alle DevTools-Bugs, die zwischen Firefox 43 und Firefox 44 behoben wurden.
HTML
<link rel="prefetch">beachtet nun dascrossorigin-Attribut (Firefox-Bug 1214819).
CSS
-
position: fixed;erstellt nun immer einen neuen Stapelkontext (Firefox-Bug 1179288). -
Die Unterstützung von
unicode-rangewurde standardmäßig aktiviert (Firefox-Bug 1119062). -
Unsere experimentelle Implementierung von CSS-Schreibmodi wurde aktualisiert, um die neueste Spezifikation zu reflektieren:
- Der Wert
sidewaysdertext-orientation-Eigenschaft wurde implementiert undsideways-rightwird als Alias dazu angesehen (Firefox-Bug 1193488). - Die Werte
sideways-rlundsideways-lrderwriting-mode-Eigenschaft (Firefox-Bug 1193488 und Firefox-Bug 1193519).
- Der Wert
-
Die nicht standardmäßigen Eigenschaften
-moz-math-displayund-moz-window-shadowsind nicht mehr aus Webinhalt verfügbar (Firefox-Bug 1207002, Firefox-Bug 1211040 und Firefox-Bug 1212607). -
Die
font-style-Eigenschaft unterscheidet jetzt zwischenobliqueunditalic, wenn beide Varianten verfügbar sind (Firefox-Bug 543715). -
Obwohl nicht unterstützt, wurden die Eigenschaften
marks,orphans,page,sizeundwidowsgeparst und@supportshat sie fälschlicherweise als unterstützt gemeldet; dies wurde behoben und die Eigenschaften werden nun nicht mehr geparst oder als unterstützt markiert (Firefox-Bug 1215702). -
Der interne Wert
-moz-mac-unified-toolbarwurde aus den möglichen Werten für dieappearance-Eigenschaft entfernt (Firefox-Bug 1206468). -
Mehrere
-webkit-präfixierte Eigenschaften und Werte wurden aus Kompatibilitätsgründen hinzugefügt, hinter der Präferenzlayout.css.prefixes.webkit, die standardmäßig auffalsesteht (Firefox-Bug 837211):-webkit-animation-webkit-animation-delay-webkit-animation-direction-webkit-animation-duration-webkit-animation-fill-mode-webkit-animation-iteration-count-webkit-animation-name-webkit-animation-play-state-webkit-animation-timing-function-webkit-text-size-adjust-webkit-transform-webkit-transform-origin-webkit-transform-style-webkit-transition-webkit-transition-delay-webkit-transition-duration-webkit-transition-property-webkit-transition-timing-function-webkit-border-radius-webkit-border-top-left-radius-webkit-border-top-right-radius-webkit-border-bottom-left-radius-webkit-border-bottom-right-radius-webkit-appearance-webkit-background-clip-webkit-background-origin-webkit-background-size-webkit-border-image-webkit-box-shadow-webkit-box-sizing-webkit-user-select-webkit-linear-gradient()Firefox-Bug 1210575-webkit-radial-gradient()Firefox-Bug 1210575-webkit-repeating-linear-gradient()Firefox-Bug 1210575-webkit-repeating-radial-gradient()Firefox-Bug 1210575
JavaScript
Neue APIs
Symbol.toPrimitive,Symbol.prototype[Symbol.toPrimitive](), undDate.prototype[Symbol.toPrimitive]()wurden implementiert (Firefox-Bug 1054756).
Änderungen
- Die Bindungen
letundconstauf der globalen Ebene wurden an die ES2015-Semantik angepasst. Siehe Firefox-Bug 589199 und den Blogbeitrag "Breaking changes in let and const in Firefox Nightly 44". Außerdem istletjetzt im Standard-Web-JavaScript (sowohl strict als auch non-strict) verfügbar und erfordert keinen Versions-Opt-in mehr (Firefox-Bug 932517). - Wenn Konstruktoren von typisierten Arrays' (wie
Int8Array) undArrayBufferals Funktion ohne dennew-Operator aufgerufen werden, wird jetzt gemäß der ES2015-Spezifikation einTypeErrorausgelöst (Firefox-Bug 980945, Firefox-Bug 1214936). - Der
RegExp-Sticky-Flag folgt nun dem ES2015-Standard für verankerte sticky Regulärausdrücke (Firefox-Bug 773687). - Die JavaScript-Shell (REPL von SpiderMonkey) verwendet jetzt standardmäßig die Web-kompatible JS-Version (und nicht mehr JS1.7+) (Firefox-Bug 1192329).
Entfernungen
- Die Unterstützung für die nicht standardmäßigen
let-Blöcke wurde eingestellt (Firefox-Bug 1167029). - Die nicht standardmäßige und veraltete Eigenschaft
Object.prototype.__noSuchMethod__wurde entfernt (Firefox-Bug 683218).
Schnittstellen/APIs/DOM
DOM & HTML DOM
- Zur Kompatibilität mit bestimmten bestehenden Websites wurde die Eigenschaft
Document.charsetals Alias vonDocument.characterSetimplementiert (Firefox-Bug 647621). - Die Unterstützung der Methode
window.sidebar.addSearchEngine(), die es Websites ermöglichte, die Installation eines Sherlock-Plugins zu initiieren, wurde eingestellt und es wird jetzt nur eine Warnung in der Webkonsole protokolliert (Firefox-Bug 862148). - Um unerwünschte Pop-ups zu bekämpfen, werden in
beforeunload-Ereignissen von Seiten, mit denen nicht interagiert wurde, keine Aufforderungen mehr angezeigt (Firefox-Bug 636905). - Die veraltete Methode
MessageEvent.initMessageEvent()wurde aus Gründen der Rückwärtskompatibilität erneut implementiert (Firefox-Bug 949376). - Die veraltete Eigenschaft
DocumentType.internalSubsetwurde entfernt (Firefox-Bug 801545). - Zur Kompatibilität mit bestehenden Websites wurden die Eigenschaft
Window.orientationund das Ereignisorientationchangeimplementiert (Firefox-Bug 920734). - Ein
<iframe>mit explizitem Vollbild-Antrag sollte nicht implizit Vollbild beenden (Firefox-Bug 1187801). - Die Ereignisse
mouseover,mouseout,mouseenter,mouseleave,pointermove,pointerover,pointerout,pointerenterundpointerleavewerden jetzt für deaktivierte Formularelemente ausgelöst (Firefox-Bug 218093). - Die Methode
Element.webkitMatchesSelector()wurde hinzugefügt (Firefox-Bug 1216193), um die Interoperabilität zu verbessern. - Um der Spezifikation zu entsprechen, konvertiert die Methode
Document.createAttribute()jetzt die Eingabe in Kleinbuchstaben (Firefox-Bug 1176313). - Die nicht standardmäßige Eigenschaft
dialogfürWindow.open()ist nicht mehr für Webinhalte verfügbar. Sie ist weiterhin für Erweiterungen und anderen Code mit Chrome-Berechtigungen verfügbar (Firefox-Bug 1095236).
Canvas
- Eine neue experimentelle
OffscreenCanvas-API, die es ermöglicht, dass Rendering-Kontexte (wie WebGL) in Web-Workern ausgeführt werden, wurde implementiert. Um diese experimentelle API zu verwenden, setzen Siegfx.offscreencanvas.enabledauftruein about:config (Firefox-Bug 709490). Diese API beinhaltet:- Die
OffscreenCanvas-Schnittstelle, HTMLCanvasElement.transferControlToOffscreen(), undWebGLRenderingContext.commit().- Mehrere WebGL-Schnittstellen sind jetzt auch im Worker-Kontext verfügbar, wenn diese API aktiviert ist.
- Die
WebGL
- Uniform Buffer Objects wurden implementiert (Firefox-Bug 1048747).
IndexedDB
- Die Methoden
IDBIndex.getAll()undIDBIndex.getAllKeys()sowie deren Gegenstücke beiIDBObjectStoresind nun standardmäßig verfügbar (Firefox-Bug 1196841).
Service Workers
- Die Schnittstellen
ServiceWorkerMessageEventundExtendableMessageEventwurden implementiert (Firefox-Bug 1143717 und Firefox-Bug 1207068). Headers-Objekte unterstützen jetzt einen Paar-Iterator, d.h. die MethodenHeaders.entries(),Headers.keys(), undHeaders.values()sind jetzt verfügbar;Symbol.iteratorgibt nun auch den Standard-Iterator für sie zurück (Firefox-Bug 1108181).- Die
XMLHttpRequest-API wurde bei Service Workers deaktiviert (Firefox-Bug 931243). - Die Schnittstelle
FetchEventerweitert jetztExtendableEventund gibt ihr Zugriff auf die MethodeExtendableEvent.waitUntil()(Firefox-Bug 1214772). - In jüngster Zeit wurde die Spezifikation geändert,
FetchEvent.clientwurde entfernt (Firefox-Bug 1218135). - Um die neueste Spezifikation zu erfüllen, wurde
ServiceWorkerContainer.onreloadpageentfernt (Firefox-Bug 1218139). - Die Ereignishandler
ServiceWorkerGlobalScope.onbeforeevictedundServiceWorkerGlobalScope.onevictedwurden entfernt, da sie nicht der Spezifikation entsprachen. Sie werden in Zukunft wieder eingeführt, aber ihr Entfernen ermöglicht es, dass die Erkennung von Features erwartungsgemäß funktioniert (Firefox-Bug 1218142). - Im Konstruktor
FetchEvent(), wenn dasisReload-Mitglied nicht im Options-Wörterbuch vorhanden ist, wird es nun standardmäßig auffalsegesetzt (Firefox-Bug 1216401). - Die Eigenschaft
Client.frameTypewird jetzt an der richtigen Schnittstelle implementiert; sie war zuvor aufWindowClient(Firefox-Bug 1218146). - Wenn AppCache verwendet wird, um Offline-Support für eine Seite bereitzustellen, wird jetzt eine Warnmeldung in der Konsole angezeigt, die Entwickler darauf hinweist, stattdessen Service Workers zu verwenden (Firefox-Bug 1204581).
- Service Workers sind standardmäßig in Gecko aktiviert.
WebRTC
-
WebRTC-Schnittstellen wurden entprefixed (Firefox-Bug 1155923). Insbesondere:
mozRTCPeerConnectionist jetztRTCPeerConnection.mozRTCIceCandidateist jetztRTCIceCandidate.mozRTCSessionDescriptionist jetztRTCSessionDescription.
-
Die Eigenschaft
RTCDataChannel.bufferedAmountLowThresholdsowie dasbufferedamountlow-Ereignis und dessen Ereignishandler wurden implementiert (Firefox-Bug 1178091). -
Das Attribut
RTCPeerConnection.canTrickleIceCandidateswurde hinzugefügt, die nicht standardisierte MethodeRTCPeerConnection.updateIce()entfernt (Firefox-Bug 1209744). -
Die Schnittstelle
MediaStreamunterstützt jetzt die MethodenMediaStream.addTrack()undMediaStream.removeTrack()(Firefox-Bug 1103188). -
Der Konstruktor
MediaStream()wurde implementiert (Firefox-Bug 1070216). -
Die Unterstützung für die nicht standardmäßige Constraint-Optionenliste für
RTCOfferOptionswurde entfernt.
Neue APIs
- Eine experimentelle Implementierung der Canvas-API in Workern ist eingeführt worden:
OffscreenCanvasundHTMLCanvasElement.transferControlToOffscreen()sind hinter der Einstellunggfx.offscreencanvas.enabledverfügbar, derzeit standardmäßig deaktiviert (Firefox-Bug 709490). - Die Text-to-Speech-API, Teil der Web Speech API, hat jetzt ein OSX-Backend. Dies ist jedoch standardmäßig deaktiviert (Firefox-Bug 1003452).
Verschiedenes
URLSearchParams-Objekte unterstützen jetzt einen Paar-Iterator, d.h. die MethodenURLSearchParams.entries(),URLSearchParams.keys()undURLSearchParams.values()sind jetzt verfügbar;Symbol.iteratorgibt nun auch den Standard-Iterator für sie zurück (Firefox-Bug 1085284).FormData-Objekte unterstützen jetzt einen Paar-Iterator, d.h. die MethodenFormData.entries(),FormData.keysundFormData.values()sind jetzt verfügbar;Symbol.iteratorgibt nun auch den Standard-Iterator für sie zurück (Firefox-Bug 1127703).- Wenn
XMLHttpRequest.send()mit einem HTML-Dokument verwendet wird, verwendet es jetzttext/htmlstattapplication/xml(Firefox-Bug 918771). - Die Sprachausgabe (Text-to-Speech) wurde in Firefox Desktop für Mac und Linux implementiert, versteckt hinter der Einstellung
media.webspeech.synth.enabledinabout:config(Firefox-Bug 1003452, Firefox-Bug 1003464.) Siehe Web Speech API für weitere Informationen. - Elemente innerhalb eines
<frame>oder eines<object>können nicht mehr in den Vollbildmodus versetzt werden (Firefox-Bug 1212299). - Die Überprüfung von WOFF-Schriften ist etwas strenger geworden, was dazu führt, dass mehr fehlerhafte Schriften abgelehnt werden. Diese Überprüfung wird in Firefox 46 etwas weniger streng gemacht (Firefox-Bug 1193050 und Firefox-Bug 1244693).
MathML
Keine Änderung.
SVG
Keine Änderung.
Audio/Video
Keine Änderung.
HTTP
- Die Unterstützung für den Brotli-Algorithmus wurde hinzugefügt, und sowohl die
Accept-Encodingals auch dieContent-Encoding-Header unterstützen jetzt denbr-Wert (Firefox-Bug 366559 und Firefox-Bug 1211916). - Die inkorrekte Unterstützung von HTTP/2-Headern, die Zeilenumbrüche (
'/n') enthalten, wurde entfernt, da die Spezifikation dies im Gegensatz zu HTTP/1 nicht erlaubt (Firefox-Bug 1197847).
Vernetzung
Keine Änderung.
Sicherheit
- RC4 ist jetzt auch standardmäßig in den Beta- und Release-Versionen des Browsers deaktiviert (Firefox-Bug 1201025) und die Whitelist ist standardmäßig leer (Firefox-Bug 1215796).
Änderungen für Add-on- und Mozilla-Entwickler
>Schnittstellen
Keine Änderung.
XUL
Keine Änderung.
JavaScript-Code-Module
LIKE-Unterstützung wurde zu Sqlite.jsm hinzugefügt (Firefox-Bug 1188760).- Das Modul Snackbars.jsm wurde zu Firefox für Android hinzugefügt (Firefox-Bug 1215026).
XPCOM
- Die Schnittstelle
nsIDOMWindowist jetzt leer. Ihr Inhalt wurde entweder nicht mehr verwendet, ist woanders hin umgezogen oder wurde nur von C++ verwendet. Die in C++-Code verfügbaren Elemente befinden sich jetzt in der nsPIDOMWindow-Schnittstelle (Firefox-Bug 1216401).
Sonstiges
- Aufgrund von Änderungen in Firefox 44 (Bug 1202902) funktionieren Add-ons, die mit cfx gepackt sind, nicht mehr. Um Ihr Add-on wieder kompatibel zu machen, verwenden Sie bitte jpm. Siehe den cfx zu jpm Migrationsleitfaden.