Firefox-36-Versionshinweise für Entwickler
Firefox 36 wurde am 24. Februar 2015 veröffentlicht. Dieser Artikel listet wichtige Änderungen auf, die nicht nur für Webentwickler, sondern auch für Firefox- und Gecko-Entwickler sowie Add-on-Entwickler nützlich sind.
Änderungen für Webentwickler
>Entwicklerwerkzeuge
Highlights:
- eval-Quellen erscheinen jetzt im Debugger
- Vereinfachter Prozess zur Verbindung mit Firefox für Android
- Der Box-Model-Highlighter funktioniert auf Remote-Zielen.
- Option „Invert the call tree“ im Profiler
- DOM-Promises in der Konsole untersuchen
- Zusätzliche „Paste“-Befehle im Inspector
Alle zwischen Firefox 35 und Firefox 36 behobenen Devtools-Bugs.
CSS
- Die Eigenschaft
will-changewurde standardmäßig aktiviert (Firefox-Bug 961871). - Die Eigenschaft
white-spacefunktioniert jetzt auf<textarea>-HTML-Elementen (Firefox-Bug 82711). - Der Deskriptor
unicode-rangewird jetzt von@font-faceunterstützt (Firefox-Bug 475891), ist jedoch nicht standardmäßig aktiviert. - Die Eigenschaften
text-decoration-color,text-decoration-lineundtext-decoration-stylesind ohne Präfix verfügbar (Firefox-Bug 825004). Die Versionen mit Präfix bleiben zur Erleichterung des Übergangs noch einige Zeit verfügbar (Firefox-Bug 1097922). - Die Eigenschaft
text-decorationwurde in eine Kurzformeigenschaft umgewandelt (Firefox-Bug 1039488). - Die Eigenschaften
object-fitundobject-positionwerden jetzt unterstützt (Firefox-Bug 624647). - Der Wert
contentsder Eigenschaftdisplaywurde experimentell implementiert. Er ist standardmäßig per Preference deaktiviert (Firefox-Bug 907396). - Im Quirks-Modus wurde der
:active- und:hover-Quiver-Quirk so geändert, dass er seltener angewendet wird: Er wird jetzt nur für Links verwendet, nur wenn das Element keine Pseudoelemente oder andere Pseudoklassen enthält und wenn es nicht Teil eines Pseudoklassenelements ist (Firefox-Bug 783213). - Die Eigenschaft
isolationwurde implementiert (Firefox-Bug 1077872). - CSS-
<gradient>wird jetzt auf die vormultiplizierten Farben angewendet, entsprechend der Spezifikation und anderer Browser, wodurch darin auftretende unerwartete graue Farben vermieden werden (Firefox-Bug 591600). - Die Syntax für Interpolationshinweise wurde zu
<gradient>hinzugefügt (Firefox-Bug 1074056). - Die Eigenschaft
scroll-behaviorwurde implementiert (Firefox-Bug 1010538).
HTML
- Unterstützung für
<meta name="referrer">wurde hinzugefügt (Firefox-Bug 704320). - In Firefox werden die im Attribut
acceptangegebenen<input>-Filter immer standardmäßig ausgewählt, sofern das Attributacceptkeinen unbekannten Wert enthält, also keinen unbekannten MIME-Typ oder falsch formatierten Wert. Zuvor wurden angegebene Filter nur für die Werteimage/*,video/*undaudio/*standardmäßig ausgewählt (Firefox-Bug 826185).
JavaScript
-
Der Datentyp Symbol aus ECMAScript 2015 wurde standardmäßig aktiviert (seit Version 33 im Nightly-Kanal verfügbar) (Firefox-Bug 1066322):
-
Der alte Platzhalter-String
"@@iterator"wurde für den Schlüssel der Eigenschaft der iterierbaren Schnittstelle durch das tatsächliche wohlbekannte ES2015-SymbolSymbol.iteratorersetzt (Firefox-Bug 918828). -
Die spezifikationsinterne abstrakte Operation
ToNumber(string)unterstützt jetzt binäre (0b) und oktale (0o) Literale. Dies ist eine potenziell inkompatible Änderung gegenüber ES5 (Firefox-Bug 1079120).Number("0b11")gibt jetzt3stattNaNzurück."0o11" == 9gibt jetzttruestattfalsezurück.
-
Die Deklaration
constist jetzt auf Blockebene gültig und erfordert einen Initialisierer (Firefox-Bug 611388). Sie kann außerdem nicht mehr erneut deklariert werden (Firefox-Bug 1095439).{const a=1}; a;löst jetzt aufgrund der Blockbereichsgültigkeit einenReferenceErroraus und gibt nicht mehr1zurück.const a;löst jetzt einenSyntaxErroraus („missing = in const declaration“): Ein Initialisierer ist erforderlich.const a = 1; a = 2;löst jetzt ebenfalls einenSyntaxErroraus („invalid assignment to const a“).
-
Die ES2016-Methode
Array.prototype.includeswurde implementiert, ist derzeit jedoch nur in Nightly-Builds aktiviert (Firefox-Bug 1069063). -
Der Operator
deletelöst jetzt die „temporal dead zone“ aus, wenn er mitletundconstverwendet wird (Firefox-Bug 1074571). -
Die nicht standardmäßigen
let-Blöcke undlet-Ausdrücke sind veraltet und protokollieren jetzt eine Warnung in der Konsole. Verwenden Sie sie nicht mehr, da sie künftig entfernt werden. -
Der Konstruktor WeakMap verarbeitet jetzt ein optionales iterierbares Argument (Firefox-Bug 1092537).
Schnittstellen/APIs/DOM
-
Die Methode
CanvasRenderingContext2D.resetTransform()der Canvas API wurde implementiert (Firefox-Bug 1099148). -
ECDSA wird jetzt in der Web Crypto API unterstützt (Firefox-Bug 1034854).
-
Unsere experimentelle Implementierung von WebGL 2.0 macht Fortschritte!
- Die Schnittstelle
WebGLQueryist verfügbar (Firefox-Bug 1048719). - Die Methode
WebGL2RenderingContext.invalidateFrameBuffer()wurde implementiert (Firefox-Bug 1076456).
- Die Schnittstelle
-
Die Schnittstelle
MediaDevices, die die Promise-basierte Version vongetUserMedia()enthält, wurde hinzugefügt. Sie ist überNavigator.mediaDevicesverfügbar (Firefox-Bug 1033885). -
Die EME-bezogene Methode
Navigator.requestMediaKeySystemAccess()sowie das zugehörigeMediaKeySystemAccesswerden jetzt unterstützt (Firefox-Bug 1095257). -
Das Ereignis
keyschangewird jetzt gesendet, wenn ein EME-bezogenes CDM Schlüssel in einer Sitzung ändert (Firefox-Bug 1081755). -
Die Standardwerte der Optionen für
MutationObserver.observe()wurden aktualisiert, um der neuesten Spezifikation zu entsprechen (Firefox-Bug 973638). -
Experimentelle Unterstützung für Virtual-Reality-Geräte wurde hinter der standardmäßig deaktivierten Preference
dom.vr.enabledhinzugefügt (Firefox-Bug 1036604). -
Die mit
RTCPeerConnection.onsignalingstatechangeverknüpfte Funktion erhält jetzt gemäß Spezifikation ein Ereignis als Parameter (Firefox-Bug 1075133). -
Die experimentelle Implementierung von Web Animations macht Fortschritte: Die Methoden
AnimationPlayer.play()undAnimationPlayer.pause()werden jetzt unterstützt (Firefox-Bug 1070745), ebenso wieAnimationPlayer.playState(Firefox-Bug 1037321). -
Die nicht standardmäßige Schnittstelle
DOMRequestverfügt jetzt über eine MethodeDOMRequest.then()(Firefox-Bug 839838). -
Die Methoden zur Steuerung des Scroll-Verhaltens aus CSSOM View,
Element.scroll(),Element.scrollTo(),Element.scrollBy()undElement.scrollIntoView(), wurden implementiert oder erweitert (Firefox-Bug 1045754 und Firefox-Bug 1087559). -
Eine Zuweisung an
Element.innerHTMLeinesSVGElementerstellt jetzt Elemente im SVG-Namensraum (Firefox-Bug 886390). -
Die Methode
nsIWebBrowserPersist.saveURI()erfordert jetzt 8 Argumente in einer Reihenfolge, die mit früheren Versionen nicht kompatibel ist. -
Die Unterstützung für Media Source Extensions (MSE) ist in nicht veröffentlichten Builds standardmäßig aktiviert (nur Nightly und Developer Edition) (Firefox-Bug 1000686). In Beta- und Release-Versionen bleibt sie per Preference deaktiviert.
MathML
Keine Änderung.
SVG
Keine Änderung.
Audio/Video
Keine Änderung.
Netzwerk
- Die Unterstützung für SPDY/3 wurde entfernt; die Unterstützung für SPDY/3.1 ist weiterhin verfügbar (Firefox-Bug 1097944).
Sicherheit
- RC4 gilt jetzt als unsicher, und alle UI-Indikatoren reagieren entsprechend; SSLv3 wurde in Firefox 34 standardmäßig deaktiviert, aber die UI wurde geändert, damit Benutzer besser verstehen, was geschieht (Firefox-Bug 1093595).
- Außerdem wird RC4 beim anfänglichen TLS-Handshake nicht mehr angeboten (Firefox-Bug 1088915).
- Die Direktive
form-actionvon CSP 1.1 wird jetzt unterstützt (Firefox-Bug 529697). - In den Firefox-Einstellungen ist das Auswahl-Widget Do Not Track wieder ein Ein-/Aus-Schalter (Firefox-Bug 1071747).
Änderungen für Add-on- und Mozilla-Entwickler
>Add-on SDK
Highlights
-
Das Modul
sdk/test/httpdwurde entfernt; verwenden Sie stattdessen das npm-Modul addon-httpd. -
Badges zu
sdk/ui-Schaltflächen hinzufügen (Firefox-Bug 994280). -
Eine globale Funktion
requirewurde implementiert, um überall auf SDK-Module zuzugreifen (Firefox-Bug 1070927), mittels:jsvar { require } = Cu.import( "resource://gre/modules/commonjs/toolkit/require.js", {}, );
Details
JavaScript-Code-Module
PromiseUtils.resolveOrTimeoutwurde implementiert (Firefox-Bug 1080466).PromiseUtils.defer(ein Ersatz fürPromise.defer()) wurde implementiert (Firefox-Bug 1093021).
Schnittstellen
nsIContentPolicy
Zu nsIContentPolicy wurden neue Konstanten hinzugefügt, damit Gecko-Interna und Add-on-Code verschiedene Arten von Anfragen besser unterscheiden können. Dies sind:
TYPE_FETCH-
Kennzeichnet eine durch die Methode
fetch()initiierte Anfrage zum Laden von Inhalt. TYPE_IMAGESET-
Kennzeichnet eine Anfrage zum Laden eines
<img>(mit dem Attributsrcsetoder dem Element<picture>).
XUL
Keine Änderung.
Sonstiges
- Die Firefox-Kommandozeilenoption
-remotewurde entfernt (Firefox-Bug 1080319).