Firefox 20: Versionshinweise für Entwickler
Firefox 20 wurde am 2. April 2013 veröffentlicht. Dieser Artikel informiert über die Änderungen in dieser Version, die für Entwickler relevant sind.
Änderungen für Webentwickler
>HTML
- Unterstützung für das Attribut
downloadbei den Elementen<a>und<area>wurde hinzugefügt (Firefox-Bug 676619). - Der Wert
autofür das globale Attributdirwurde implementiert (Firefox-Bug 548206). - Das globale Attribut
contextmenufunktioniert jetzt auch in Firefox für Android (Firefox-Bug 736321).
JavaScript
- Unterstützung für die Methode
WeakMap.prototype.clear(), die kürzlich dem Harmony-Entwurf (ECMAScript 2015) hinzugefügt wurde, wurde ergänzt (Firefox-Bug 814562). - Unterstützung für die Methode
Math.imul(), eine 32-Bit-Multiplikationsfunktion nach C-Vorbild, wurde hinzugefügt. Obwohl sie für Harmony (ECMAScript 2015) vorgeschlagen wurde, ist sie noch nicht angenommen worden und weiterhin nicht standardisiert (Firefox-Bug 808148). - Webanwendungen, die ziehbaren Text mit Kinetic 3.x verwenden, funktionieren jetzt auch mit dem Cairo-Canvas-Backend (Firefox-Bug 835064).
- Die Anweisung
for each...inist veraltet und sollte nicht mehr verwendet werden. Verwenden Sie stattdessen die neue Anweisungfor...of(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 (mit Ausnahme der Beta-Versionen). In Release- und Beta-Versionen kann es aktiviert werden, indem die about:config-Einstellung
layout.css.flexbox.enabledauftruegesetzt wird. - Die Eigenschaft
mask-typewurde hinzugefügt (Firefox-Bug 793617). - Experimentelle Unterstützung für die Pseudoklasse
:scopewurde hinzugefügt. Sie ist in Aurora und Nightly standardmäßig aktiviert und kann in Release- und Beta-Versionen aktiviert werden, indem die about:config-Einstellunglayout.css.scope-pseudo.enabledauftruegesetzt wird (Firefox-Bug 648722).
DOM/APIs
HTMLMediaElementunterstützt jetztplaybackRate(sowohl lesend als auch schreibend) mit Tonhöhenkorrektur. Die Tonhöhenkorrektur kann über die EigenschaftmozPreservesPitchgesteuert werden (Firefox-Bug 495040).- CSSOM: Unterstützung für die neuen Interfaces
CSSGroupingRuleundCSSConditionRulewurde hinzugefügt (Firefox-Bug 814907). - CSSOM: Bei
CSSRulewurden die Präfixe der Konstanten CSSRule.MOZ_KEYFRAME_RULE und CSSRule.MOZ_KEYFRAMES_RULE entfernt; sie heißen jetzt CSSRule.KEYFRAME_RULE und CSSRule.KEYFRAMES_RULE. Die Versionen mit Präfix bleiben vorübergehend erhalten, um Webentwicklern die Umstellung ihres Codes zu erleichtern (Firefox-Bug 816431). - CSSOM: Der Wert von
conditionTextkann jetzt fürCSSMediaRulefestgelegt werden (Firefox-Bug 815021). - Die Methoden
parseFromStreamundparseFromBuffervonDOMParsersind für Webinhalte nicht mehr verfügbar (Firefox-Bug 816410). - Die Methode
serializeToStreamvonXMLSerializerist für Webinhalte nicht mehr verfügbar (Firefox-Bug 816410). - Die Interfaces
TextDecoderundTextEncodersind jetzt in Workern verfügbar (Firefox-Bug 795542). - Unterstützung für die Methode
CSS.supports()wurde hinzugefügt. Sie ist über die Einstellunglayout.css.supports-rule.enabledverfügbar, die standardmäßig deaktiviert ist (Firefox-Bug 779917). - Unterstützung für UndoManager wurde hinzugefügt (Firefox-Bug 617532).
- Die CSSOM-Methode
Document.caretPositionFromPoint(), die eineCaretPositionzurückgibt, wurde implementiert. - Das Indexargument der Methoden
HTMLTableRowElement.insertCell()undHTMLTableElement.insertRow()ist gemäß der HTML-Spezifikation jetzt optional. Navigator.getUserMedia, weiterhin mit dem Präfix alsNavigator.mozGetUserMediaverfügbar, ist jetzt standardmäßig aktiviert.- Das dritte, optionale Argument
transfervonWindow.postMessagewird jetzt unterstützt. Damit können Sie eine Folge übertragbarer Objekte an das Ziel übertragen (Firefox-Bug 822094). - Die nicht standardisierte Methode
Window.sizeToContent()begrenzt jetzt die Mindestgröße: Ein Fenster kann nicht mehr so stark verkleinert werden, dass Benutzer nicht mehr damit interagieren können (Firefox-Bug 764240). - Überblendmodi wie
overlay,color-burnundhuewurden der Canvas-EigenschaftCanvasRenderingContext2D.globalCompositeOperationhinzugefügt (Firefox-Bug 748433). - Die Version von
window.indexedDBmit Präfix –window.mozIndexedDB– wurde in Gecko wieder eingeführt, damit fehlerhafter browserübergreifender Code zur Präfixbehandlung (etwavar indexedDB = window.indexedDB || window.webkitIndexedDB …) in Firefox nicht mehr fehlschlägt. Ein besserer Ansatz istwindow.indexedDB = window.indexedDB || window.webkitIndexedDB …(siehe Firefox-Bug 770844).
SVG
- Die Implementierung der Eigenschaften
contentScriptTypeundcontentStyleTypewurde ausSVGSVGElemententfernt, nachdem sie auch aus SVG2 entfernt worden waren (Firefox-Bug 819731).
MathML
- Um MathML-Autoren bei der Fehlersuche nach Fehlern durch ungültiges Markup in ihren Dokumenten zu unterstützen, werden MathML-Parsing-Fehler (etwa zu viele oder zu wenige Kindelemente) sowie Warnungen vor veralteten Attributen oder ungültigen Attributwerten jetzt in der Fehlerkonsole angezeigt.
- Das Attribut
scriptminsizeakzeptiert jetzt einheitenlose Werte und Prozentwerte. Sie werden als Vielfache des Standardwerts (8pt) interpretiert. - Einheitenlose Werte sind jetzt auch für die Attribute
mathsizeundfontsizezulässig; sie werden mit dem Standardwert multipliziert.
Änderungen für Add-on- und Mozilla-Entwickler
- ECMAScript for XML (E4X) ist jetzt für alle Chrome- und Inhaltsskripte vollständig deaktiviert. Für Inhaltsskripte wurde es bereits in Firefox 17 deaktiviert; in Firefox 21 wurde es vollständig entfernt. Verwenden Sie stattdessen DOMParser/DOMSerializer oder einen nicht nativen JXON-Algorithmus.
- Das Interface
nsIDOMParserJSexistiert nicht mehr (Firefox-Bug 816410). Alternativen finden Sie unternsIDOMParser. - Inhaltseinstellungen: Das Interface
nsIContentPrefServiceist jetzt veraltet, und die asynchrone Speicher-APInsIContentPrefService2wurde implementiert. - Die Interfaces
nsIProfileundnsIProfileChangeStatuswurden entfernt, ebenso wie weiterer Code zur Unterstützung des Profilverwaltungssystems aus der Zeit vor Firefox. Wahrscheinlich haben Sie diese Interfaces nicht verwendet. Falls doch, sollten Sie sie nicht mehr verwenden. Dadurch wird verhindert, dass nicht mehr genutzte Teile des Profilverwaltungssystems das Herunterfahren blockieren. - Das Interface
nsIEventSourceexistiert nicht mehr (Firefox-Bug 819639).