Firefox 36 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
>Entwickler-Tools
Höhepunkte:
- eval-Quellen erscheinen jetzt im Debugger
- Einfacherer Prozess zum Herstellen einer Verbindung zu Firefox für Android
- Boxmodell-Hervorhebung funktioniert auf entfernten Zielen
- "Invert the call tree"-Option im Profiler
- DOM-Promises in der Konsole inspizieren
- Zusätzliche "Einfügen"-Befehle im Inspektor
Alle Devtools-Bugs, die zwischen Firefox 35 und Firefox 36 behoben wurden.
CSS
- Die
will-change
-Eigenschaft wurde standardmäßig aktiviert (Firefox-Bug 961871). - Die
white-space
-Eigenschaft funktioniert jetzt auf<textarea>
HTML-Elementen (Firefox-Bug 82711). - Der
unicode-range
-Deskriptor wird jetzt von@font-face
unterstützt (Firefox-Bug 475891), ist aber nicht standardmäßig aktiviert. - Die Eigenschaften
text-decoration-color
,text-decoration-line
, undtext-decoration-style
sind nun ohne Präfix (Firefox-Bug 825004). Die versionen mit Präfix sind noch für einige Zeit verfügbar, um den Übergang zu erleichtern (Firefox-Bug 1097922). - Die
text-decoration
-Eigenschaft wird in eine Kurzform-Eigenschaft umgewandelt (Firefox-Bug 1039488). - Die Eigenschaften
object-fit
undobject-position
werden jetzt unterstützt (Firefox-Bug 624647). - Der
contents
-Wert derdisplay
-Eigenschaft wurde experimentell implementiert. Er ist standardmäßig deaktiviert (Firefox-Bug 907396). - Im Quirks Modus wurde die
:active
und:hover
Vibrations-Besonderheit geändert, um weniger oft angewendet zu werden: Sie wird jetzt nur auf Links angewendet, nur wenn keine Pseudo-Elemente oder andere Pseudo-Klassen im Element vorhanden sind und wenn es nicht Teil eines Pseudo-Klassen-Elements ist (Firefox-Bug 783213). - Die
isolation
-Eigenschaft wurde implementiert (Firefox-Bug 1077872). - CSS
<gradient>
wird nun auf die vorverarbeiteten Farben angewandt, was den Spezifikationen und anderen Browsern entspricht und unerwartete graue Farben in ihnen beseitigt (Firefox-Bug 591600). - Die Interpolationshinweis-Syntax wurde zu
<gradient>
hinzugefügt (Firefox-Bug 1074056). - Die
scroll-behavior
-Eigenschaft wurde implementiert (Firefox-Bug 1010538).
HTML
- Unterstützung für
<meta name="referrer">
wurde hinzugefügt (Firefox-Bug 704320). - In Firefox werden die im
accept
Attribut spezifizierten Filter in<input>
standardmäßig ausgewählt, es sei denn, es gibt einen unbekannten Wert, der einen unbekannten MIME-Typ oder einen falsch formatierten Wert imaccept
-Attribut darstellt. Zuvor wurden spezifizierte Filter nur für die Werteimage/*
,video/*
undaudio/*
standardmäßig ausgewählt (Firefox-Bug 826185).
JavaScript
-
Der ECMAScript 2015 Symbol-Datentyp wurde standardmäßig aktiviert (war seit Version 33 im Nightly-Kanal verfügbar) (Firefox-Bug 1066322):
-
Der alte Platzhalter-String
"@@iterator"
wurde durch das echte ES2015 wohlbekannte SymbolSymbol.iterator
für den iterable Schnittstelleneigenschafts-Schlüssel ersetzt (Firefox-Bug 918828). -
Die spezifikationsinterne abstrakte Operation
ToNumber(string)
unterstützt jetzt binäre (0b
) und oktale (0o
) Literale, was eine potenziell breaking change von ES5 ist (Firefox-Bug 1079120).Number("0b11")
gibt jetzt3
zurück, nicht mehrNaN
."0o11" == 9
ergibt jetzttrue
, nicht mehrfalse
.
-
Die
const
Deklaration ist jetzt block-scope und erfordert einen Initialisierer (Firefox-Bug 611388). Sie kann auch nicht mehr erneut deklariert werden (Firefox-Bug 1095439).{const a=1}; a;
löst jetzt einenReferenceError
aus und gibt aufgrund von Block-Scoping nicht mehr1
zurück.const a;
löst jetzt einenSyntaxError
aus ("fehlendes = in const Deklaration"): Ein Initialisierer ist erforderlich.const a = 1; a = 2;
löst jetzt auch einenSyntaxError
aus ("ungültige Zuweisung an const a").
-
Die ES2016 Methode
Array.prototype.includes
wurde implementiert, ist jedoch vorerst nur in Nightly-Versionen aktiviert (Firefox-Bug 1069063). -
Der
delete
Operator löst jetzt die "temporale Totzone" aus, wenn er mitlet
undconst
verwendet wird (Firefox-Bug 1074571). -
Die nicht-standardmäßigen
let
Blöcke undlet
Ausdrücke sind veraltet und werden jetzt eine Warnung in der Konsole ausgeben. Verwenden Sie sie nicht mehr, sie werden in Zukunft entfernt. -
Der WeakMap-Konstruktor handhabt jetzt ein optionales Iterable-Argument (Firefox-Bug 1092537).
Schnittstellen/APIs/DOM
-
Die
CanvasRenderingContext2D.resetTransform()
-Methode 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 schreitet voran!
- Die
WebGLQuery
-Schnittstelle ist verfügbar (Firefox-Bug 1048719). - Die
WebGL2RenderingContext.invalidateFrameBuffer()
-Methode wurde implementiert (Firefox-Bug 1076456).
- Die
-
Die
MediaDevices
-Schnittstelle, die die Promise-basierte Version vongetUserMedia()
enthält, wurde hinzugefügt. Sie ist überNavigator.mediaDevices
verfügbar (Firefox-Bug 1033885). -
Die EME-bezogene
Navigator.requestMediaKeySystemAccess()
-Methode und das zugehörigeMediaKeySystemAccess
werden jetzt unterstützt (Firefox-Bug 1095257). -
Das
keyschange
-Ereignis wird jetzt gesendet, wenn ein EME-bezogenes CDM in einer Sitzung Schlüssel ä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 virtuelle Realitätsgeräte wurde hinter der Präferenz
dom.vr.enabled
angesiedelt, standardmäßig deaktiviert (Firefox-Bug 1036604). -
Die Funktion, die mit
RTCPeerConnection.onsignalingstatechange
verbunden ist, erhält jetzt ein Ereignis als Parameter, gemäß der Spezifikation (Firefox-Bug 1075133). -
Die experimentelle Implementierung von Web Animationen macht Fortschritte: Die Methode
AnimationPlayer.play()
undAnimationPlayer.pause()
werden jetzt unterstützt (Firefox-Bug 1070745), ebenso wieAnimationPlayer.playState
(Firefox-Bug 1037321). -
Die nicht-standardmäßige
DOMRequest
-Schnittstelle hat jetzt eineDOMRequest.then()
-Methode (Firefox-Bug 839838). -
Die CSSOM View Scroll-Verhalten steuernden Methoden,
Element.scroll()
,Element.scrollTo()
,Element.scrollBy()
undElement.scrollIntoView()
, wurden implementiert oder erweitert (Firefox-Bug 1045754 und Firefox-Bug 1087559). -
Zuweisungen an
Element.innerHTML
auf einemSVGElement
erzeugen nun Elemente im SVG-Namespace (Firefox-Bug 886390). -
Die Methode
nsIWebBrowserPersist.saveURI()
erfordert jetzt 8 Argumente, in einer Reihenfolge, die mit vorherigen Versionen nicht kompatibel ist. -
Unterstützung für Media Source Extensions (MSE) ist standardmäßig in Nicht-Build-Versionen (nur Nightly und Developer Edition) aktiviert (Firefox-Bug 1000686). Sie bleibt in der Beta- und Release-Version deaktiviert.
MathML
Keine Änderung.
SVG
Keine Änderung.
Audio/Video
Keine Änderung.
Netzwerk
- Unterstützung für SPDY/3 wurde entfernt; Unterstützung für SPDY/3.1 ist weiterhin verfügbar (Firefox-Bug 1097944).
Sicherheit
- RC4 wird jetzt als unsicher betrachtet und alle UI-Indikatoren reagieren entsprechend; SSLv3 wurde in Firefox 34 standardmäßig deaktiviert, aber die Benutzeroberfläche wurde geändert, um dem Benutzer besser zu vermitteln, was passiert (Firefox-Bug 1093595).
- Auch wird RC4 im anfänglichen Handshake von TLS nicht mehr angeboten (Firefox-Bug 1088915).
- Die
form-action
-Direktive von CSP 1.1 wird jetzt unterstützt (Firefox-Bug 529697). - In den Einstellungen von Firefox ist das Do Not Track Auswahlfeld wieder ein Ein-/Ausschalter (Firefox-Bug 1071747).
Änderungen für Add-on- und Mozilla-Entwickler
>Add-on SDK
Höhepunkte
-
Das
sdk/test/httpd
-Modul wurde entfernt, verwenden Sie stattdessen das npm-Modul addon-httpd. -
Fügen Sie Badges zu
sdk/ui
-Buttons hinzu (Firefox-Bug 994280). -
Implementierte globale
require
-Funktion, um SDK-Module überall zugänglich zu machen (Firefox-Bug 1070927), Verwendung:jsvar { require } = Cu.import( "resource://gre/modules/commonjs/toolkit/require.js", {}, );
Details
GitHub Commits, die zwischen Firefox 35 und Firefox 36 gemacht wurden.
JavaScript-Code-Module
PromiseUtils.resolveOrTimeout
wurde implementiert (Firefox-Bug 1080466).PromiseUtils.defer
(ein Ersatz fürPromise.defer()
) wurde implementiert (Firefox-Bug 1093021).
Schnittstellen
nsIContentPolicy
Neue Konstanten wurden nsIContentPolicy
hinzugefügt, um Gecko-Interna und Add-on-Code zu ermöglichen, verschiedene Arten von Anforderungen besser zu differenzieren. Diese sind:
TYPE_FETCH
-
Zeigt eine Inhalt-Ladeanforderung an, die durch die
fetch()
-Methode initiiert wurde. TYPE_IMAGESET
-
Zeigt eine Anfrage zum Laden eines
<img>
(mit demsrcset
-Attribut oder<picture>
an.
XUL
Keine Änderung.
Sonstiges
- Die
-remote
Kommandozeilenoption von Firefox wurde entfernt (Firefox-Bug 1080319).