Firefox 15 für Entwickler

Firefox 15 wurde am 28. August 2012 veröffentlicht. Dieser Artikel listet die wesentlichen Änderungen auf, die nicht nur für Webentwickler, sondern auch für Entwickler, die mit Firefox und Gecko arbeiten, sowie für Add-on-Entwickler 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 angesehen werden.
  • Unterstützung für die font-weight und point-size Attribute auf dem <font> Element wurde entfernt; diese waren nicht standardisiert und Gecko war die einzige Engine, die sie unterstützte.
  • Der Opus Codec wird jetzt für Audio in Ogg-Containern für die HTML <audio> und <video> Elemente unterstützt.
  • Das <source> Element unterstützt jetzt das media Attribut.
  • Die <audio> und <video> Elemente unterstützen jetzt das played Attribut, welches ein TimeRanges Objekt bereitstellt, das die Zeitbereiche der bereits abgespielten Inhalte auflistet.

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-Ligaturzeichen (wie ) korrekt zu behandeln.
  • 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 skew() transform Funktion, die in Firefox 14 entfernt wurde, wurde aufgrund von Kompatibilitätsanforderungen für existierende Websites wiederhergestellt. Autoren wird jedoch empfohlen, die Funktionen skewX() und skewY() zu verwenden.
  • Der Wert plaintext der CSS unicode-bidi Eigenschaft gilt jetzt auch für Inline-Elemente. (Firefox bug 746987).

DOM

  • Die DOM-Events Level 3 Methoden KeyboardEvent.getModifierState() und MouseEvent.getModifierState(), die es ermöglichen, den Zustand von Modifikatortasten wie Ctrl oder Shift abzufragen, wurden implementiert (Bugs 630811 und 731878). Das Verhalten entspricht jedoch dem neuesten D3E-Entwurf. Daher weichen einige Modifikatortastennamen von IE ab (Firefox bug 769190).
  • Bei Mausereignissen wurde die Unterstützung zur Abfrage des Zustands der Maustasten mit dem MouseEvent.buttons Attribut implementiert.
  • Bei Tastaturereignissen wurde die Unterstützung zur Abfrage der Tastenposition (Standard, links oder rechts von der Modifikatortaste, im Numpad) mit dem KeyboardEvent.location Attribut implementiert (Firefox bug 166240).
  • Das Ergebnis von KeyboardEvent.keycode wird nun aus besseren Regeln berechnet, die fast identisch auf Windows/Linux/Mac sind. Und jetzt sind sie auf einigen Tastaturlayouts, die keine ASCII-tauglichen Layouts auf Linux und Mac sind, wie Arabisch, Kyrillisch, Thai usw., verfügbar. Siehe das Dokument für virtuelle Tastencodes.
  • Die range.detach() Methode wurde in eine No-Op umgewandelt und wird wahrscheinlich in Zukunft entfernt.
  • Die Methode HTMLVideoElement.mozHasAudio() wurde implementiert. Sie zeigt an, ob es einen Audiotrack gibt, der mit einem bestimmten Videoelement verknüpft ist. (bug 480376)
  • Die Performance API hat eine neue Methode, now(), die hochauflösende Timer des Typs DOMHighResTimeStamp unterstützt. (bug 539095).
  • Die WebSMS API wurde aktualisiert und unterstützt jetzt ein read Attribut, das angibt, ob eine SMS-Nachricht gelesen oder ungelesen ist.
  • Die FileHandle API wurde implementiert.
  • Der Blob Konstruktor akzeptiert jetzt ArrayBufferView als ein Mitglied des blobParts Parameters zusätzlich zu ArrayBuffer. (bug 752402)
  • Der DeviceLightEvent wird gemäß dem Ambient Light Events Working Draft unterstützt.
  • Die DeviceProximityEvent und UserProximityEvent Proximity Events wurden implementiert.
  • Die File Eigenschaft lastModifiedDate wurde implementiert. (Firefox bug 673586)

JavaScript

WebGL

  • Unterstützung für die WEBGL_compressed_texture_s3tc Erweiterung wurde hinzugefügt. Komprimierte Texturen verringern die Menge an Speicher, die benötigt wird, um eine Textur auf der GPU zu speichern, und ermöglichen höhere Auflösungen oder mehr Texturen der gleichen Auflösung.

MathML

SVG

Netzwerk

  • Unterstützung für das SPDY v3 Protokoll wurde hinzugefügt. Es ist standardmäßig deaktiviert und kann durch Setzen der Einstellung network.http.spdy.enabled.v3 auf true aktiviert werden. (bug 737470)

Änderungen für Add-on- und Mozilla-Entwickler

Schnittstellenänderungen

nsIDOMWindowUtils

aModifiers von sendMouseEvent(), sendTouchEvent(), sendMouseEventToWindow(), sendMouseScrollEvent() und sendKeyEvent() unterstützen alle Modifikatortasten, die von KeyboardEvent.getModifierState() unterstützt werden. Verwenden Sie MODIFIER_* Werte. Und jetzt wurde der 5. Parameter von sendKeyEvent() von boolean zu unsigned long geändert. Zur Rückwärtskompatibilität ändert sich das Verhalten nicht, wenn der Aufrufer true oder false übergibt. Diese Änderung ermöglicht es den Aufrufern, die Position der Taste anzugeben.

nsIBrowserHistory

Die Methode hidePage() wurde nie implementiert und in dieser Version komplett entfernt. Die Methode addPageWithDetails() wurde ebenfalls entfernt, im Rahmen laufender Arbeiten, um alle 'Places APIs' asynchron zu gestalten; verwenden Sie stattdessen mozIAsyncHistory.updatePlaces(). Außerdem wurde das count Attribut entfernt; es gab schon seit einiger Zeit keine tatsächliche Anzahl mehr zurück (es zeigte lediglich an, ob Einträge existierten 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 nsIINIParserWriter.writeFile() Methode akzeptiert jetzt eine flags Eigenschaft. Derzeit bietet diese nur eine Option: Sie können nun angeben, dass die Datei im UTF-16 Format anstelle von UTF-8 geschrieben werden soll, für eine bessere Kompatibilität mit Windows und bestimmten Installationsprogrammen.

Neue Schnittstellen

nsISpeculativeConnect

Bietet eine Möglichkeit, dem Netzwerk-Layer zu signalisieren, dass Sie wahrscheinlich in naher Zukunft eine Verbindung zu einer bestimmten URI öffnen möchten. Dies ermöglicht es dem Netzwerk-Layer, den manchmal hochgradig latenten Prozess des Öffnens einer neuen Netzwerkverbindung vorab zu beginnen.

Entfernte Schnittstellen

Die folgenden Schnittstellen wurden entfernt.

  • nsIGlobalHistory

Siehe auch