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- und point-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 das media-Attribut.
  • Die <audio> und <video>-Elemente unterstützen nun das played-Attribut, welches ein TimeRanges-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 (wie ) 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() im transform wurde, nachdem sie in Firefox 14 entfernt wurde, aufgrund der Kompatibilität mit bestehenden Seiten wiederhergestellt. Autoren wird jedoch geraten, stattdessen die Funktionen skewX() und skewY() 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() und MouseEvent.getModifierState() der DOM Events Level 3, die es ermöglichen, den Status von Modifikatortasten wie Ctrl oder Shift 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 Typ DOMHighResTimeStamp 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 nun ArrayBufferView als Mitglied des Parameters blobParts zusätzlich zu ArrayBuffer. (Bug 752402)
  • Das DeviceLightEvent, das im Arbeitsentwurf zu Umgebungslichtereignissen spezifiziert ist, wurde implementiert.
  • Die DeviceProximityEvent und UserProximityEvent Proximity Events wurden implementiert.
  • Die File lastModifiedDate-Eigenschaft wurde implementiert. (Firefox-Bug 673586)

JavaScript

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 dem toggle-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

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 von sendMouseEvent(), sendTouchEvent(), sendMouseEventToWindow(), sendMouseScrollEvent() und sendKeyEvent() unterstützt alle Modifikatortasten, die von KeyboardEvent.getModifierState() unterstützt werden. Verwenden Sie MODIFIER_*-Werte. Jetzt wurde der 5. Parameter von sendKeyEvent() von boolean in unsigned long geändert. Zur Rückwärtskompatibilität, wenn der Aufrufer true oder false ü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 Methode addPageWithDetails() wurde ebenfalls im Zuge der Arbeit, alle 'Places-APIs' asynchron zu gestalten, entfernt. Verwenden Sie stattdessen mozIAsyncHistory.updatePlaces(). Auch das count-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önnen nsINavHistoryService.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 eine flags-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