Firefox 15 für Entwickler
Firefox 15 wurde am 28. August 2012 veröffentlicht. Dieser Artikel listet die wichtigsten Änderungen auf, die nicht nur für Webentwickler, sondern auch für Firefox- und Gecko-Entwickler sowie Erweiterungsentwickler nützlich sind.
Änderungen für Webentwickler
HTML
- Das
size
-Attribut des<font>
-Elements wird nun gemäß der HTML5-Spezifikation behandelt. Das bedeutet, dass alle ganzzahligen Werte größer als 10 oder kleiner als -10 nun als gleichwertig mit 10 bzw. -10 betrachtet werden. - Unterstützung für die
font-weight
- undpoint-size
-Attribute im<font>
-Element wurde entfernt; diese waren nicht standardisiert und Gecko war die einzige Engine, die sie unterstützte. - Der Opus-Codec wird nun für Audio in Ogg-Containern für die HTML-
<audio>
und<video>
-Elemente unterstützt. - Das
<source>
-Element unterstützt nun dasmedia
-Attribut. - Die
<audio>
und<video>
-Elemente unterstützen nun dasplayed
-Attribut, welches einTimeRanges
-Objekt bereitstellt, das die Zeitbereiche der Medien auflistet, die bisher wiedergegeben wurden.
CSS
- Die
font-feature-settings
-Eigenschaft wurde auf die neueste Syntax aktualisiert:font-feature-settings: "lnum" 1;
- Die CSS-
text-transform
-Eigenschaft wurde erweitert, um Unicode-Ligatur-Zeichen (wiefi
) korrekt zu handhaben. - Die CSS-
word-break
-Eigenschaft wurde implementiert. - Die
border-image
-Eigenschaft wurde aktualisiert, um der neuesten Spezifikation zu entsprechen, und die Präfixe wurden entfernt. (Bug 713643) - Die Funktion
skew()
imtransform
wurde, nachdem sie in Firefox 14 entfernt wurde, aufgrund der Kompatibilität mit bestehenden Seiten wiederhergestellt. Autoren wird jedoch geraten, stattdessen die FunktionenskewX()
undskewY()
zu verwenden. - Der Wert
plaintext
der CSS-unicode-bidi
-Eigenschaft gilt nun auch für Inline-Elemente. (Firefox-Bug 746987)
DOM
- Die Methoden
KeyboardEvent.getModifierState()
undMouseEvent.getModifierState()
der DOM Events Level 3, die es ermöglichen, den Status von Modifikatortasten wieCtrl
oderShift
abzufragen, wurden implementiert (Bugs 630811 und 731878). Das Verhalten entspricht jedoch dem neuesten D3E-Entwurf. Daher sind einige Modifikatortasten-Namen anders als in IE (Firefox-Bug 769190). - Bei Mausereignissen wurde die Unterstützung zur Abfrage des Status der Maustasten mit dem
MouseEvent.buttons
-Attribut implementiert. - Bei Tastaturereignissen wurde die Unterstützung zur Abfrage der Tastenposition (standardmäßig, links oder rechts der Modifikatortaste, im Numpad) mit dem KeyboardEvent.location-Attribut implementiert (Firefox-Bug 166240).
- Das Ergebnis von KeyboardEvent.keycode wurde aus besseren Regeln berechnet, die fast gleich auf Windows/Linux/Mac sind. Und nun sind sie auf einigen Tastaturlayouts verfügbar, die nicht ASCII-fähig sind, wie Arabisch, Kyrillisch, Thailändisch usw. Siehe das Dokument für virtuelle Tasten-Codes.
- Die Methode
range.detach()
wurde in ein No-op umgewandelt und wird wahrscheinlich in Zukunft entfernt. - Die Methode
HTMLVideoElement.mozHasAudio()
wurde implementiert. Sie zeigt an, ob ein Audiotrack mit einem bestimmten Videoelement verknüpft ist. (Bug 480376) - Die
Performance
-API hat eine neue Methode,now()
, die Hochauflösungstimer vom TypDOMHighResTimeStamp
unterstützt. (Bug 539095). - Die WebSMS API wurde aktualisiert und unterstützt nun ein
read
-Attribut, das angibt, ob eine SMS-Nachricht gelesen oder ungelesen ist. - Die FileHandle API wurde implementiert.
- Der Konstruktor
Blob
akzeptiert nunArrayBufferView
als Mitglied des ParametersblobParts
zusätzlich zuArrayBuffer
. (Bug 752402) - Das
DeviceLightEvent
, das im Arbeitsentwurf zu Umgebungslichtereignissen spezifiziert ist, wurde implementiert. - Die
DeviceProximityEvent
undUserProximityEvent
Proximity Events wurden implementiert. - Die
File
lastModifiedDate
-Eigenschaft wurde implementiert. (Firefox-Bug 673586)
JavaScript
- Unterstützung für das
DataView
-Interface der Typed Arrays-Spezifikation wurde hinzugefügt. Dies ermöglicht einen Low-Level-Zugriff auf die imArrayBuffer
enthaltenen Daten. - Unterstützung für neue ECMAScript 2015 Built-ins:
Number.isNaN()
,Number.toInteger()
,Number.isInteger()
,Number.isFinite()
wurden hinzugefügt. (Bug 749818, Bug 761495, Bug 761480). - Unterstützung für ECMAScript 2015 Standardparameter wurde hinzugefügt. (Bug 757676).
- Unterstützung für ECMAScript 2015 Rest-Parameter wurde hinzugefügt. (Bug 574132).
WebGL
- Unterstützung für die
WEBGL_compressed_texture_s3tc
-Erweiterung wurde hinzugefügt. Komprimierte Texturen reduzieren den Speicherbedarf auf der GPU, was höhere Auflösungen oder mehr Texturen mit gleicher Auflösung ermöglicht.
MathML
- Mathematische Operatoren können nun herunterladbare Schriften verwenden, die mit
@font-face
spezifiziert sind. Dies macht das MathML-fonts Add-on auch mit dehnbaren Operatoren kompatibel. - Das
selection
-Attribut des<maction>
wird nun nur noch mit demtoggle
-Aktionstyp berücksichtigt. - Veraltete namedspace-Bindung wurde entfernt (Firefox-Bug 673759).
- Der unterstützte Syntax für Length und
<mpadded>
-Werte wurde näher an die im MathML3-Spezifikations beschriebenen angepasst. - Neue MathML spiegelbare Operatoren für Arabische Mathematik wurden zum Operator-Wörterbuch hinzugefügt (Firefox-Bug 757125).
SVG
- Unterstützung für das
<view>
-Element wurde hinzugefügt (Firefox-Bug 512525).
Netzwerk
- Unterstützung für das SPDY v3-Protokoll wurde hinzugefügt. Es ist standardmäßig deaktiviert und kann aktiviert werden, indem die Einstellung
network.http.spdy.enabled.v3
auf true gesetzt wird. (Bug 737470)
Änderungen für Erweiterungs- und Mozilla-Entwickler
Schnittstellenänderungen
nsIDOMWindowUtils
-
aModifiers
vonsendMouseEvent()
,sendTouchEvent()
,sendMouseEventToWindow()
,sendMouseScrollEvent()
undsendKeyEvent()
unterstützt alle Modifikatortasten, die vonKeyboardEvent.getModifierState()
unterstützt werden. Verwenden SieMODIFIER_*
-Werte. Jetzt wurde der 5. Parameter vonsendKeyEvent()
vonboolean
inunsigned long
geändert. Zur Rückwärtskompatibilität, wenn der Aufrufertrue
oderfalse
übergibt, ändert sich das Verhalten nicht. Diese Änderung ermöglicht es Aufrufern, die Position der Taste anzugeben. nsIBrowserHistory
-
Die Methode
hidePage()
wurde nie implementiert und in dieser Version vollständig entfernt. Die MethodeaddPageWithDetails()
wurde ebenfalls im Zuge der Arbeit, alle 'Places-APIs' asynchron zu gestalten, entfernt. Verwenden Sie stattdessenmozIAsyncHistory.updatePlaces()
. Auch dascount
-Attribut wurde entfernt; es hatte seit einiger Zeit keinen tatsächlichen Zähler mehr zurückgegeben (es zeigte stattdessen an, ob Einträge vorhanden waren oder nicht). Sie könnennsINavHistoryService.hasHistoryEntries
verwenden. nsIDOMUtils
-
Die Methode
nsIDOMUtils.parseStyleSheet()
wurde hinzugefügt und ermöglicht das (Neu-)Parsen von Cascading Style Sheets. nsIINIParserWriter
-
Die Methode
nsIINIParserWriter.writeFile()
akzeptiert nun eineflags
-Eigenschaft. Derzeit bietet sie nur eine Option: Sie können ihr jetzt mitteilen, die Datei im UTF-16-Format anstelle von UTF-8 zu schreiben, um eine bessere Kompatibilität mit Windows und bestimmten Installationsprogrammen zu gewährleisten.
Neue Schnittstellen
nsISpeculativeConnect
-
Bietet eine Möglichkeit, der Netzwerkebene einen Hinweis zu geben, dass wahrscheinlich eine Verbindung zu einer bestimmten URI in der nahen Zukunft hergestellt werden soll. Dies ermöglicht es der Netzwerkebene, den manchmal mit hoher Latenz behafteten Prozess des Öffnens einer neuen Netzwerkverbindung im Voraus zu beginnen.
Entfernte Schnittstellen
Die folgenden Schnittstellen wurden entfernt:
nsIGlobalHistory