Firefox 20 für Entwickler
Firefox 20 wurde am 2. April 2013 veröffentlicht. Dieser Artikel bietet Informationen über die Änderungen in dieser Version, die Entwickler betreffen werden.
Änderungen für Webentwickler
HTML
- Die Unterstützung für das
download
-Attribut auf dem<a>
- und<area>
-Element wurde hinzugefügt (Firefox-Bug 676619). - Der Wert
auto
für das globale Attributdir
wurde implementiert (Firefox-Bug 548206). - Das globale Attribut
contextmenu
funktioniert jetzt in Firefox für Android (Firefox-Bug 736321).
JavaScript
- Unterstützung für die Methode
WeakMap.prototype.clear()
, die kürzlich zum Harmony (ECMAScript 2015) Entwurfsvorschlag hinzugefügt wurde, wurde hinzugefügt (Firefox-Bug 814562). - Unterstützung für die
Math.imul()
-Methode, eine C-ähnliche 32-Bit-Multiplikationsfunktion. Obwohl sie für Harmony (ECMAScript 2015) vorgeschlagen wurde, ist sie noch nicht akzeptiert und weiterhin nicht standardisiert (Firefox-Bug 808148). - Web-Apps, die ziehbaren Text mit Kinetic 3.x verwenden, funktionieren jetzt, auch wenn das Cairo-Canvas-Backend verwendet wird (Firefox-Bug 835064).
- Die
for each...in
-Anweisung wurde veraltet und sollte nicht mehr verwendet werden. Erwägen Sie die Verwendung der neuenfor...of
-Anweisung (Firefox-Bug 804834). - Unterstützung für
Map.prototype.keys()
,Map.prototype.values()
undMap.prototype.entries()
wurde hinzugefügt (Firefox-Bug 817368).
CSS
- CSS Flexbox ist jetzt standardmäßig nur in Vorabversionen verfügbar (Beta-Versionen ausgeschlossen). Es kann in Release- und Beta-Versionen aktiviert werden, indem die
layout.css.flexbox.enabled
about:config-Voreinstellung auftrue
gesetzt wird. - Die
mask-type
-Eigenschaft wurde hinzugefügt (Firefox-Bug 793617). - Experimentelle Unterstützung für die
:scope
-Pseudoklasse wurde hinzugefügt. Standardmäßig in Aurora und Nightly aktiviert, kann sie in Release- und Beta-Versionen aktiviert werden, indem dielayout.css.scope-pseudo.enabled
about:config-Voreinstellung auftrue
gesetzt wird (Firefox-Bug 648722).
DOM/APIs
HTMLMediaElement
unterstützt jetztplaybackRate
(sowohl lesend als auch schreibend) mit Tonhöhenkorrektur. Die Tonhöhenkorrektur kann über die EigenschaftmozPreservesPitch
gesteuert werden (Firefox-Bug 495040).- CSSOM: Unterstützung für die neuen
CSSGroupingRule
undCSSConditionRule
wurde hinzugefügt (Firefox-Bug 814907). - CSSOM: Auf
CSSRule
wurden die Konstanten CSSRule.MOZ_KEYFRAME_RULE und CSSRule.MOZ_KEYFRAMES_RULE auf CSSRule.KEYFRAME_RULE und CSSRule.KEYFRAMES_RULE geändert. Die vorgängige Version wird vorübergehend beibehalten, um Webautoren den Übergang ihres Codes zu erleichtern (Firefox-Bug 816431). - CSSOM: Es ist jetzt möglich, den Wert von
conditionText
fürCSSMediaRule
zu setzen (Firefox-Bug 815021). - Die Methoden
parseFromStream
undparseFromBuffer
desDOMParser
sind aus Webinhalten nicht mehr verfügbar (Firefox-Bug 816410). - Die Methode
serializeToStream
desXMLSerializer
ist aus Webinhalten nicht mehr verfügbar (Firefox-Bug 816410). - Die Schnittstellen
TextDecoder
undTextEncoder
sind jetzt in Workers verfügbar (Firefox-Bug 795542). - Unterstützung für die Methode
CSS.supports()
wurde hinzugefügt, hinter demlayout.css.supports-rule.enabled
-Pref (standardmäßig deaktiviert) (Firefox-Bug 779917). - Unterstützung für
UndoManager
wurde hinzugefügt (Firefox-Bug 617532). - Die CSSOM-Methode
Document.caretPositionFromPoint()
, die eineCaretPosition
zurückgibt, wurde implementiert. - Das Index-Argument der Methoden
HTMLTableRowElement.insertCell()
undHTMLTableElement.insertRow()
ist laut der HTML-Spezifikation jetzt optional. Navigator.getUserMedia
, immer noch mit dem PräfixNavigator.mozGetUserMedia
, ist jetzt standardmäßig aktiviert.- Das dritte optionale
transfer
-Argument vonWindow.postMessage
wird jetzt unterstützt. Es ermöglicht das Übertragen einer Sequenz von Transferobjekten zum Ziel (Firefox-Bug 822094). - Die nicht standardisierte Methode
Window.sizeToContent()
begrenzt jetzt die minimale Größe: Das Fenster kann nicht mehr auf zu kleine Größen gezwungen werden, die die Interaktion des Benutzers verhindern (Firefox-Bug 764240). - Mischmodi wie
overlay
,color-burn
,hue
usw. wurden zurCanvasRenderingContext2D.globalCompositeOperation
-Eigenschaft des Canvas hinzugefügt (Firefox-Bug 748433). - Die mit Präfix versehenen Versionen von
window.indexedDB
—window.mozIndexedDB
— wurden in Gecko wieder eingeführt, damit schlechtes cross-browser Präfixing (wievar indexedDB = window.indexedDB || window.webkitIndexedDB …
) in Firefox nicht fehlschlägt. Eine bessere Herangehensweise istwindow.indexedDB = window.indexedDB || window.webkitIndexedDB …
(siehe Firefox-Bug 770844.)
SVG
- Die Implementierung der Eigenschaften
contentScriptType
undcontentStyleType
wurde ausSVGSVGElement
entfernt, zusammen mit der Entfernung aus SVG2 (Firefox-Bug 819731).
MathML
- Um MathML-Autoren bei der Fehlersuche von "ungültigen Markup"-Fehlern in ihren Dokumenten zu unterstützen, werden jetzt MathML-Parsing-Fehler (wie das Vorhandensein von zu vielen oder zu wenigen Kindelementen) und Warnungen über veraltete Attribute oder falsche Attributwerte in der Fehlerkonsole gemeldet.
- Das Attribut
scriptminsize
akzeptiert jetzt einheitenlose Werte und Prozentwerte. Sie werden als Vielfache des Standardwertes (8pt
) interpretiert. - Einheitenlose Werte sind jetzt auch für die Attribute
mathsize
undfontsize
zulässig; sie multiplizieren den Standardwert.
Änderungen für Add-on- und Mozilla-Entwickler
- ECMAScript für XML (E4X) ist jetzt für alle Chrome- und Inhaltsskripte vollständig deaktiviert. Es wurde zuvor für Inhalte in Firefox 17 deaktiviert und für Firefox 21 vollständig entfernt. Verwenden Sie stattdessen DOMParser/DOMSerializer oder einen nicht-nativen JXON-Algorithmus.
- Die Schnittstelle
nsIDOMParserJS
existiert nicht mehr (Firefox-Bug 816410). SiehensIDOMParser
für Alternativen. - Content Preferences: Die
nsIContentPrefService
-Schnittstelle ist jetzt veraltet und die asynchronensIContentPrefService2
-Speicher-API wurde implementiert. - Die Schnittstellen
nsIProfile
undnsIProfileChangeStatus
wurden entfernt, zusammen mit anderem Code, der das vor-Firefox-Profillverwaltungssystem unterstützt. Wahrscheinlich haben Sie diese Schnittstellen nicht verwendet, aber falls doch, sollten Sie aufhören, dies zu tun. Dies verhindert, dass veraltete Teile des Profillverwaltungssystems den Shutdown-Vorgang blockieren. - Die Schnittstelle
nsIEventSource
existiert nicht mehr (Firefox-Bug 819639).