Firefox 4 für Entwickler

Firefox 4, das am 22. März 2011 veröffentlicht wurde, verbessert die Leistung, bietet erweiterte Unterstützung für HTML5 und andere sich entwickelnde Webtechnologien, und verbessert die Sicherheit. Dieser Artikel liefert Informationen über diese Veröffentlichung und welche Funktionen sowohl für Webentwickler, als auch für Add-on-Entwickler und Gecko-Plattform-Entwickler verfügbar sind.

Funktionen für Webentwickler

Gecko verwendet jetzt den HTML5-Parser, der Fehler behebt, die Interoperabilität verbessert und die Leistung steigert. Es ist außerdem möglich, SVG und MathML direkt in HTML-Markup einzubetten.

HTML

Webformulare

Ein Überblick über Verbesserungen bei Webformularen. Zu diesen Änderungen gehören neue Eingabetypen im <input>-Element, Datenvalidierung und mehr.

HTML5-Abschnittelemente

Gecko unterstützt jetzt die neuen HTML5-Elemente, die sich auf Dokumentabschnitte beziehen: <article>, <section>, <nav>, <aside>, <hgroup>, <header> und <footer>.

HTML5-Attribut "hidden"

Dieses Attribut, das allen Elementen gemeinsam ist, wird verwendet, um Inhalte auf einer Webseite zu verbergen, die momentan nicht relevant für den Benutzer sind.

Weitere HTML5-Elemente

Gecko unterstützt nun auch folgende neue HTML5-Elemente: <mark>, <figure> und <figcaption>.

WebSockets

Eine Anleitung zur Nutzung der neuen WebSockets-API für Echtzeitkommunikation zwischen einer Webanwendung und einem Server. Beachten Sie, dass die in Firefox 4 implementierten WebSockets nicht mit dem finalen Standard kompatibel sind und generell nicht verwendet werden sollten.

Verbesserungen bei Canvas

Die folgenden Änderungen wurden an der CanvasRenderingContext2D-Schnittstelle vorgenommen, um unsere Implementierung des <canvas> besser an die Spezifikation anzupassen:

  • Die Angabe eines negativen Radius beim Aufruf von arc() führt jetzt korrekt zu einer INDEX_SIZE_ERR-Ausnahme.
  • Die Angabe von nicht-finiten Werten bei den Methoden createLinearGradient() und createRadialGradient() löst jetzt eine NOT_SUPPORTED_ERR-Ausnahme aus, anstelle von SYNTAX_ERR.
  • Das Setzen von miterLimit auf einen negativen Wert löst keine Ausnahme mehr aus, sondern ignoriert korrekt nicht-positive Werte.
  • Das Setzen von lineWidth auf negative Werte löst keine Ausnahme mehr aus; stattdessen wird korrekt nicht-positive Werte ignoriert.
  • Die Methode putImageData() unterstützt jetzt die optionalen Parameter dirtyX, dirtyY, dirtyWidth und dirtyHeight.

Sonstige HTML-Änderungen

  • <textarea>-Elemente sind jetzt standardmäßig skalierbar; Sie können die resize-CSS-Eigenschaft verwenden, um dies zu deaktivieren.
  • canvas.getContext und canvas.toDataURL werfen keine Ausnahme mehr, wenn sie mit nicht erkannten Argumenten aufgerufen werden.
  • Das <canvas>-Element unterstützt nun die Mozilla-spezifische Methode mozGetAsFile(), mit der Sie eine speicherbasierte Datei mit dem Bildinhalt des Canvas erhalten können. Details finden Sie bei HTMLCanvasElement.
  • Canvas2DContext.lineCap und Canvas2DContext.lineJoin werfen keine Ausnahme mehr, wenn sie auf einen nicht erkannten Wert gesetzt werden.
  • Canvas2DContext.globalCompositeOperation löst keine Ausnahme mehr aus, wenn ein nicht erkannter Wert gesetzt wird, und unterstützt den nicht standardisierten Wert darker nicht mehr.
  • Die Unterstützung für das veraltete <spacer>-Element, das in allen anderen Browsern fehlte, wurde entfernt.
  • Das <isindex>-Element, das durch den Aufruf von Document.createElement() erstellt wird, wird jetzt als einfaches Element ohne spezielle Eigenschaften oder Methoden erstellt.
  • Gecko unterstützt jetzt den Aufruf von click() auf <input>-Elementen, um den Dateiauswahldialog zu öffnen. Siehe das Beispiel im Artikel Using files from web applications.
  • Das <input>-Element unterstützt ein neues Attribut mozactionhint, mit dem Sie das Label für die Eingabetaste auf virtuellen Tastaturen angeben können.
  • <script>-Elemente innerhalb von <iframe>, <noembed> und <noframes>-Elementen werden jetzt ausgeführt, was in früheren Versionen von Firefox nicht der Fall war. Dies entspricht der Spezifikation und passt sich dem Verhalten anderer Browser an.

CSS

CSS-Transitions

Neue Unterstützung für CSS-Transitions ist in Firefox 4 verfügbar.

Berechnete Werte in CSS

Unterstützung für -moz-calc wurde hinzugefügt. Damit können <length>-Werte als mathematische Ausdrücke definiert werden.

Gruppierung von Selektoren

Unterstützung für :-moz-any zur Gruppierung von Selektoren und zur Vereinfachung von Kombinatoren.

Unterstützung für Hintergrundbild-Subrechtecke

Die Funktion -moz-image-rect() ermöglicht die Verwendung von Teilbereichen von Bildern als background-image.

CSS-Touch-Eigenschaften

Unterstützung für Touch-Eigenschaften wurde hinzugefügt. Details und endgültige Artikelnamen folgen später.

Verwendung beliebiger Elemente als CSS-Hintergründe

Sie können die CSS-Funktion -moz-element und die document.mozSetImageElement()-DOM-Funktion verwenden, um beliebige HTML-Elemente als Hintergründe zu verwenden.

Datenschutz und der :visited-Selektor

Änderungen wurden vorgenommen, um zu definieren, welche Informationen über den Stil besuchter Links mithilfe von CSS-Selektoren abgerufen werden können. Dies kann einige Webanwendungen betreffen.

Neue CSS-Eigenschaften

Eigenschaft Beschreibung
-moz-font-feature-settings Ermöglicht die Anpassung erweiterter Funktionen von OpenType-Schriften.
-moz-tab-size Gibt die Breite eines Tab-Zeichens (U+0009) in Leerzeichen bei der Textdarstellung an.
resize Ermöglicht die Steuerung der Abmessungen, in denen ein Element skaliert werden darf.

Neue CSS-Pseudoklassen

Pseudoklasse Beschreibung
:-moz-handler-crashed Wird verwendet, um Elemente zu stylen, deren Plugins abstürzten.
:-moz-placeholder Wird auf Platzhaltertext in Formularfeldern angewendet.
:-moz-submit-invalid Wird auf die Schaltfläche "Absenden" in Formularen angewendet, wenn eines oder mehrere Felder des Formulars nicht validiert werden können.
:-moz-window-inactive Wird auf Elemente in inaktiven Fenstern angewendet.
:invalid Wird automatisch auf <input>-Felder angewendet, wenn deren Inhalte ungültig sind.
:optional Wird automatisch auf <input>-Felder angewendet, die das required-Attribut nicht angeben.
:required Wird automatisch auf <input>-Felder angewendet, die das required-Attribut angeben.
:valid Wird automatisch auf <input>-Felder angewendet, wenn deren Inhalte erfolgreich validiert wurden.

Neue CSS-Pseudoselektoren

Pseudoselektor Beschreibung
:-moz-focusring Ermöglicht die Spezifikation des Erscheinens eines Elements, wenn Gecko der Ansicht ist, dass eine Fokusanzeige gerendert werden sollte.

Neue CSS-Funktionen

Funktion Beschreibung
:-moz-any Ermöglicht die Gruppierung von Selektoren und die Vereinfachung von Kombinatoren.
-moz-calc Ermöglicht die Angabe von <length>-Werten als mathematische Ausdrücke.
-moz-element Ermöglicht die Verwendung eines beliebigen Elements als Hintergrund für background-image und background.
-moz-image-rect Ermöglicht die Verwendung eines Teilbereichs eines Bildes als background-image oder background.

Umbenannte CSS-Eigenschaften

Alter Name Neuer Name Anmerkungen
-moz-background-size background-size Der Name -moz-background-size wird nicht mehr unterstützt.
-moz-border-radius border-radius Der alte Name wird für eine begrenzte Zeit unterstützt, um Ihnen Zeit zu geben, Ihre Websites zu aktualisieren. Rendering-Änderungen wurden zusätzlich vorgenommen, um die neueste Spezifikation zu erfüllen.
-moz-box-shadow box-shadow

Sonstige CSS-Änderungen

  • Die Eigenschaft text-shadow begrenzt den Weichzeichnungsradius aus Leistungs- und Plausibilitätsgründen nun auf 300px.
  • Die Eigenschaft overflow gilt nicht mehr für Tabellen-Gruppen-Elemente (<thead>, <tbody> und <tfoot>).
  • Die Eigenschaft -moz-appearance unterstützt jetzt den Wert -moz-win-borderless-glass, der ein randloses Aero-Glass-Erscheinungsbild auf ein Element anwendet.
  • Das Medienfeature -moz-device-pixel-ratio wurde hinzugefügt, wodurch das Verhältnis zwischen Gerätepixeln und CSS-Pixeln in Media Queries verwendet werden kann.
  • Die Verarbeitung von CSS-<length>-Einheiten in Gecko wurde überarbeitet, um besser mit anderen Browsern übereinzustimmen und absolute Längen genauer in Bildschirmpixel zu übersetzen, basierend auf der DPI des Geräts.

Weitere Abschnitte, wie "Graphics und Video", "DOM", "Sicherheit", "JavaScript", sowie spezifische Änderungen für Add-on- und XUL-Entwickler, werden ebenfalls ähnlich detailliert übersetzt. Wenn Sie diese Inhalte benötigen, lassen Sie mich dies wissen!