Versionshinweise für Entwickler zu Firefox 36
Firefox 36 wurde am 24. Februar 2015 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
>Entwicklertools
Highlights:
- eval-Quellen erscheinen jetzt im Debugger
- Einfacherer Prozess zum Verbinden mit Firefox für Android
- Boxmodell-Highlighter funktioniert auf entfernten Zielen
- "Call Tree umkehren" Option im Profiler
- DOM-Promises in der Konsole inspizieren
- Zusätzliche "Einfügen" Befehle im Inspector
Alle Devtools-Bugs behoben zwischen Firefox 35 und Firefox 36.
CSS
- Die
will-changeEigenschaft wurde standardmäßig aktiviert (Firefox-Bug 961871). - Die
white-spaceEigenschaft funktioniert jetzt bei<textarea>HTML-Elementen (Firefox-Bug 82711). - Der
unicode-rangeDeskriptor wird jetzt von@font-faceunterstützt (Firefox-Bug 475891), ist aber standardmäßig nicht aktiviert. - Die Eigenschaften
text-decoration-color,text-decoration-lineundtext-decoration-stylesind jetzt ohne Präfix (Firefox-Bug 825004). Die Versionen mit Präfix sind noch eine gewisse Zeit verfügbar, um den Übergang zu erleichtern (Firefox-Bug 1097922). - Die
text-decorationEigenschaft wurde in eine Shorthand-Eigenschaft umgewandelt (Firefox-Bug 1039488). - Die Eigenschaften
object-fitundobject-positionwerden jetzt unterstützt (Firefox-Bug 624647). - Der Wert
contentsderdisplayEigenschaft wurde experimentell implementiert. Er ist standardmäßig deaktiviert (Firefox-Bug 907396). - Im Quirks-Modus wurde das
:activeund:hoverZappeln-Quirk geändert, so dass es seltener angewendet wird: es wird jetzt nur auf Links angewendet, nur wenn das Element keine Pseudo-Elemente oder andere Pseudoklassen hat und wenn es nicht Teil eines Pseudo-Elementes ist (Firefox-Bug 783213). - Die
isolationEigenschaft wurde implementiert (Firefox-Bug 1077872). - CSS
<gradient>wird nun auf die prämultiplizierten Farben angewendet, was der Spezifikation und anderen Browsern entspricht und unerwartete Grautöne beseitigt (Firefox-Bug 591600). - Das Interpolationshinweissyntax wurde zu
<gradient>hinzugefügt (Firefox-Bug 1074056). - Die
scroll-behaviorEigenschaft wurde implementiert (Firefox-Bug 1010538).
HTML
- Unterstützung für
<meta name="referrer">wurde hinzugefügt (Firefox-Bug 704320). - In Firefox werden
<input>Filter, die imacceptAttribut angegeben sind, immer standardmäßig ausgewählt, es sei denn, es gibt einen unbekannten Wert, also einen unbekannten MIME-Typ oder einen schlecht formatierten Wert imacceptAttribut. Zuvor waren angegebene Filter nur fürimage/*,video/*undaudio/*Werte standardmäßig ausgewählt (Firefox-Bug 826185).
JavaScript
-
Der ECMAScript 2015 Symbol-Datentyp wurde standardmäßig aktiviert (war im Nightly-Kanal seit Version 33 verfügbar) (Firefox-Bug 1066322):
-
Der alte Platzhalter-String
"@@iterator"wurde durch das echte ES2015 wohlbekannte SymbolSymbol.iteratorfür den iterable Schnittstellen-Property-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 brechende Änderung von ES5 ist (Firefox-Bug 1079120).Number("0b11")liefert jetzt3stattNaN."0o11" == 9liefert jetzttruestattfalse.
-
Die
constDeklaration ist jetzt blockbasiert und erfordert einen Initialisierungswert (Firefox-Bug 611388). Außerdem kann sie nicht mehr neu deklariert werden (Firefox-Bug 1095439).{const a=1}; a;wirft jetzt einenReferenceErrorund liefert nicht mehr1aufgrund der Blockbindung.const a;wirft jetzt einenSyntaxError("missing = in const declaration"): Ein Initialisierungswert ist erforderlich.const a = 1; a = 2;wirft jetzt auch einenSyntaxError("invalid assignment to const a").
-
Die ES2016 Methode
Array.prototype.includeswurde implementiert, ist aber derzeit nur in Nightly-Builds aktiviert (Firefox-Bug 1069063). -
Der
deleteOperator löst jetzt die "temporal dead zone" aus, wenn er mitletundconstverwendet wird (Firefox-Bug 1074571). -
Die nicht standardmäßigen
letBlöcke undletAusdrücke sind abgelehnt und werden nun eine Warnung in der Konsole ausgeben. Verwenden Sie sie nicht mehr, da sie in Zukunft entfernt werden. -
Der WeakMap Konstruktor verarbeitet jetzt ein optionales iterierbares Argument (Firefox-Bug 1092537).
Schnittstellen/APIs/DOM
-
Die
CanvasRenderingContext2D.resetTransform()Methode der Canvas-API wurde implementiert (Firefox-Bug 1099148). -
ECDSA wird jetzt von der Web Crypto API unterstützt (Firefox-Bug 1034854).
-
Unsere experimentelle Implementierung von WebGL 2.0 macht Fortschritte!
- Die
WebGLQuerySchnittstelle ist verfügbar (Firefox-Bug 1048719). - Die
WebGL2RenderingContext.invalidateFrameBuffer()Methode wurde implementiert (Firefox-Bug 1076456).
- Die
-
Die
MediaDevicesSchnittstelle, die diePromise-basierte Version vongetUserMedia()enthält, wurde hinzugefügt. Sie ist überNavigator.mediaDevicesverfügbar (Firefox-Bug 1033885). -
Die EME-bezogene Methode
Navigator.requestMediaKeySystemAccess()und das zugehörigeMediaKeySystemAccesswird jetzt unterstützt (Firefox-Bug 1095257). -
Das
keyschangeEreignis wird jetzt gesendet, wenn ein EME-bezogener 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 virtuelle Realitätsgeräte wurde hinzugefügt, ist aber standardmäßig dahinter
dom.vr.enabledabgeschaltet (Firefox-Bug 1036604). -
Die Funktion, die mit
RTCPeerConnection.onsignalingstatechangeverbunden ist, erhält nun ein Ereignis als Parameter, gemäß 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-Scrollverhalten-steuernden Methoden,
Element.scroll(),Element.scrollTo(),Element.scrollBy(), undElement.scrollIntoView(), wurden implementiert oder erweitert (Firefox-Bug 1045754 und Firefox-Bug 1087559). -
Die Zuweisung zu
Element.innerHTMLbei einemSVGElementerstellt jetzt 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-Veröffentlichungen (nur Nightly und Developer Edition) aktiviert (Firefox-Bug 1000686). Es bleibt in Beta- und Release-Versionen deaktiviert.
MathML
Keine Änderungen.
SVG
Keine Änderungen.
Audio/Video
Keine Änderungen.
Netzwerke
- 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 angesehen und alle Benutzeroberflächen-Indikatoren reagieren entsprechend; SSLv3 wurde bereits in Firefox 34 standardmäßig deaktiviert, aber die Benutzeroberfläche wurde geändert, um dem Benutzer besser zu verdeutlichen, was geschieht (Firefox-Bug 1093595).
- Darüber hinaus wird RC4 bei der ersten Handshake von TLS nicht mehr angeboten (Firefox-Bug 1088915).
- Die
form-actionDirektive von CSP 1.1 wird jetzt unterstützt (Firefox-Bug 529697). - In den Einstellungen von Firefox ist das Nicht-Tracking Auswahl-Widget wieder ein Ein/Aus-Schalter (Firefox-Bug 1071747).
Änderungen für Add-on- und Mozilla-Entwickler
>Add-on SDK
Highlights
-
Das
sdk/test/httpdModul wurde entfernt, stattdessen das addon-httpd npm Modul verwenden. -
Hinzufügen von Symbolen zu
sdk/uiButtons (Firefox-Bug 994280). -
Implementierte globale
requireFunktion, um SDK-Module überall zuzugreifen (Firefox-Bug 1070927), Verwendung von:jsvar { require } = Cu.import( "resource://gre/modules/commonjs/toolkit/require.js", {}, );
Details
JavaScript-Code-Module
PromiseUtils.resolveOrTimeoutist implementiert (Firefox-Bug 1080466).PromiseUtils.defer(ein Ersatz fürPromise.defer()) ist implementiert (Firefox-Bug 1093021).
Schnittstellen
nsIContentPolicy
Neue Konstanten wurden zu nsIContentPolicy hinzugefügt, damit die Gecko-Interna und Add-on-Code verschiedene Anfragetypen besser unterscheiden können. Diese sind:
TYPE_FETCH-
Zeigt eine Inhaltsladeanforderung an, die durch die
fetch()Methode initiiert wird. TYPE_IMAGESET-
Zeigt eine Anforderung zum Laden eines
<img>(mit demsrcsetAttribut oder<picture>Element.
XUL
Keine Änderungen.
Sonstiges
- Die
-remoteBefehlszeilenoption von Firefox wurde entfernt (Firefox-Bug 1080319).