Firefox 10 für Entwickler

Firefox 10 wurde am 31. Januar 2012 veröffentlicht. Dieser Artikel bietet Informationen über die neuen Funktionen und die wichtigsten behobenen Fehler in dieser Version sowie Links zu detaillierteren Dokumentationen für sowohl Webentwickler als auch Erweiterungsentwickler.

Hinweis: Firefox 10 ist die erste Version dieses Browsers mit zwei Ziffern. Dies kann zu Problemen mit einigen User-Agent-Erkennungsskripten führen. Überprüfen Sie diese sowie solche, die in Drittanbieter-Software enthalten sind, die Sie auf Ihren Seiten einbetten, wie Bibliotheken. Weitere Informationen dazu finden Sie im Artikel "Firefox goes 2-digit" auf hack.mozilla.org.

Änderungen für Webentwickler

HTML

  • Das neue HTML5-Element <bdi> für bidirektionale Isolation, das die Isolation von Textteilen mit unterschiedlicher Richtung ermöglicht, wurde implementiert. Dies ist besonders nützlich, wenn Text mit unbekannter Richtung, beispielsweise aus einer Datenbank, inmitten von Text mit bekannter und möglicherweise unterschiedlicher Richtung angezeigt wird.
  • Sie können jetzt ein Fragment von "top" für das href-Attribut angeben, um einen Link an den Anfang der Seite zu erstellen. Dies funktionierte zuvor, war eine Weile nicht verfügbar und ist jetzt zurück, um mit der HTML5-Spezifikation kompatibel zu sein. Zum Beispiel: <a href="#top">Zurück nach oben</a>.

JavaScript

  • Die Methode WeakMap.set() gibt nun undefined zurück, anstatt sich selbst.
  • Ein Fehler in der Regulären Ausdrucksverarbeitung, der in Firefox 7 eingeführt wurde, wurde behoben. Siehe Firefox-Bug 683838, wenn Sie die genauen Details wissen möchten.
  • Sie können die veraltete EcmaScript für XML (E4X)-Syntax nicht mehr im ECMAScript 5 Strict-Modus verwenden (also nach "use strict;").

DOM

DOM3 Ereignisse

DOM4

  • Das Attribut document.xmlVersion (das nur abrufbar und nicht setzbar war) wurde entfernt, da es in der DOM4-Spezifikation veraltet ist. Der Artikel zu document.xmlVersion schlägt jetzt eine Möglichkeit vor, zu erkennen, ob das Dokument HTML oder XML ist, ohne diese Eigenschaft zu verwenden.
  • Das Attribut document.xmlStandalone wurde entfernt, da es in der DOM4-Spezifikation veraltet ist.
  • Das Attribut document.xmlEncoding wurde entfernt, da es in der DOM4-Spezifikation veraltet ist.
  • Das Attribut text.isElementContentWhiteSpace wurde entfernt, da es in der DOM4-Spezifikation veraltet ist.
  • Die Methode text.replaceWholeText wurde entfernt, da sie in der DOM4-Spezifikation veraltet ist.
  • Die Methode node.isSameNode wurde entfernt, da sie in der DOM4-Spezifikation veraltet ist. Statt node1.isSameNode(node2) können Sie den === Operator verwenden, wie folgt: node1 === node2.

Page Visibility API

  • Die Page Visibility API wurde implementiert (mit Präfix): document.mozHidden, document.mozVisibilityState sind verfügbar und das Ereignis mozvisibilitychanged wird gesendet, wenn der Status geändert wird.

Vollbild-API

Batterie-API

  • Experimentelle Unterstützung für navigator.mozBattery wurde hinzugefügt (kann aktiviert werden, indem die Einstellung dom.battery.enabled auf true gesetzt wird und wird standardmäßig ab Firefox 11 aktiviert sein).

Canvas

  • Die Methode createPattern() wirft jetzt eine Ausnahme, wenn eine Quelle mit null Größe angegeben wird.
  • Wenn Sie einen nicht-finiten Wert für eines der numerischen Parameter für putImageData() verwenden, wird der Aufruf nun stillschweigend ignoriert, anstatt eine Ausnahme zu werfen, gemäß der Spezifikation.

WebGL

Web Workers

  • Das Attribut XMLHttpRequest.responseType und XMLHttpRequest.response sind jetzt innerhalb von Workers verfügbar.
  • Der Worker() Konstruktor akzeptiert jetzt Daten-URLs.

IndexedDB

Große Fortschritte wurden gemacht, um IndexedDB auf die neueste Entwurfsspezifikation zu aktualisieren. Diese Bemühungen werden in Firefox 11 fortgesetzt.

Sonstiges

  • Beim Übergeben des richtigen MIME-Typs image/svg+xml, erzeugt der DOMParser jetzt ein SVGDocument bei einer Zeichenkette mit SVG.
  • Früher, wenn element.setAttribute() Ganzzahlen analysierte, wurde ein Fehler gemeldet, wenn die Ganzzahl nicht-numerische Zeichen enthielt (z.B. "42foo"). Jetzt wird dies korrekt als die Zahl 42 gekürzt, gemäß der Spezifikation.
  • Die ESC-Taste führt nicht mehr fälschlicherweise dazu, dass der onkeydown Handler fälschlicherweise aufgerufen wird.
  • Die NameList Schnittstelle wird nicht mehr implementiert; sie hatte zuvor eine Implementierung ohne Möglichkeit, tatsächlich darauf zuzugreifen.
  • Die Methode document.createProcessingInstruction() funktioniert jetzt sowohl in HTML- als auch in XML-Dokumenten. ProcessingInstruction Knoten werden weiterhin nur in XML-Dokumenten unterstützt, aber da Knoten zwischen Dokumenten verschoben werden können, ist es hilfreich, sie auch in HTML-Dokumenten erstellen zu können.
  • Die XMLHttpRequest responseType "moz-json" eingeführt in Firefox 9 wurde auf den neuesten Entwurf der Spezifikation aktualisiert und das Präfix wurde entfernt. Siehe Anmerkung in Firefox-Bug 707142.

CSS

  • CSS 3D-Transformationen werden jetzt unterstützt. Dies umfasst Unterstützung für die Eigenschaften transform-style, perspective, perspective-origin und backface-visibility sowie für 3D-Transformationsfunktionen in den Eigenschaften transform und <transform-function>. Details siehe Verwendung von CSS-Transformationen.
  • Zwei neue Werte für die CSS-Eigenschaft unicode-bidi wurden hinzugefügt: -moz-isolation und -moz-plaintext. Der Wert -moz-isolation isoliert, aus Sicht der Richtung, das Element von seiner Umgebung und ermöglicht ihm, eine andere Richtung zu haben. Ein Element mit unicode-bidi:-moz-isolation verhält sich wie ein <bdi> Element. Der Wert -moz-plaintext gibt dem Browser an, die Unicode-Browserheuristik zur Bestimmung der Richtung zu verwenden und nicht die CSS-Eigenschaft direction.
  • Die CSS-Eigenschaften linear-gradient() und repeating-linear-gradient() wurden aktualisiert, um die neue to Syntax und den magic corner Algorithmus zu unterstützen. Dies ermöglicht es, eine präzise Farbe an der Ecke eines mit Farbverlauf gefüllten Kastens anzugeben.
  • Die Handhabung der text-overflow Eigenschaft in Fällen, in denen der Kasten auf beiden Seiten überläuft, während die text-overflow Eigenschaft nur auf einer Seite eingestellt ist, wurde korrigiert.
  • Das Verhalten der position Eigenschaft bei Elementen innerhalb positionierter <table> Elemente wurde behoben. Diese Änderung wird das Layout von Seiten beeinflussen; jedoch entsprechen wir jetzt der CSS-Spezifikation und mit anderen Browsern, sodass dies leicht zu beheben sein sollte.
  • Die Zusammenlegung von Randbereichen um <table> Elemente wurde zur Anpassung an die CSS-Spezifikation behoben. Zuvor wurden die Ränder von Tabellenelementen nicht zusammengelegt mit anderen angrenzenden Elementen, was zu einem fehlerhaften Layout führte. Diese Änderung wird das Layout von Seiten beeinflussen; jedoch entsprechen wir jetzt der CSS-Spezifikation und mit anderen Browsern, sodass dies leicht zu beheben sein sollte.

SVG

  • Das <mask> Element wurde aktualisiert, um sowohl sRGB als auch linearRGB zu unterstützen, und standardmäßig auf sRGB gesetzt, gemäß der neuesten Revision der SVG 1.1 Spezifikation.

Netzwerk

  • Der HTTP-Header Accept-Charset wird in HTTP-Anfragen nicht mehr gesendet. In dessen Abwesenheit sollten Server mit dem Senden von UTF-8 antworten.

Entwicklerwerkzeuge

  • Das console-Objekt hat zwei neue Methoden, console.time() und console.timeEnd(), die verwendet werden können, um Timer auf einer Seite zu setzen.
  • Der neue Page Inspector wurde hinzugefügt, der eine hervorragende Möglichkeit bietet, das HTML und CSS hinter Ihrem Inhalt zu untersuchen und zu manipulieren.

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

Für einen Überblick über wahrscheinliche Probleme, die beim Aktualisieren Ihrer Add-ons zur Unterstützung von Firefox 10 auftreten können, siehe Aktualisieren von Add-ons für Firefox 10.

Hinweis: Der alte PRBool Datentyp wurde entfernt! Überall in der Dokumentation, wo darauf verwiesen wird, wird jetzt der Standard-C++ bool Typ verwendet. Die Dokumentation wird in Zukunft aktualisiert, aber für den Moment behalten Sie dies im Hinterkopf.

Manifeste

  • Unterstützung für <em:strictCompatibility> wurde zum Installationsmanifest hinzugefügt. Dadurch können Add-on-Autoren die maximale Version ihrer Erweiterung überprüfen. Wenn auf true gesetzt, wird das Add-on deaktiviert, wenn die Anwendungsversion größer als <em:maxVersion> ist. Firefox 10 hat standardmäßig kompatible Add-ons, unabhängig von ihrer angegebenen maximalen Version. Dieses Flag überschreibt diese Voreinstellung. Sie sollten dies setzen, wenn Ihr Add-on Dinge tut, die durch Firefox-Updates wahrscheinlich unterbrochen werden, aber nicht, wenn Ihr Add-on eine binäre Komponente hat, da solche Add-ons immer streng überprüft werden (denken Sie daran, dass binäre Komponenten immer für jede wichtige Firefox-Version neu kompiliert werden müssen).
  • Wenn Sie zum alten Verhalten zurückkehren möchten – das heißt, zur strikten Kompatibilitätsprüfung für alle Add-ons, unabhängig vom Wert des strictCompatibility Flags in ihren Manifesten, können Sie die Einstellung extensions.strictCompatibility auf true setzen.

XUL

XPConnect

  • Mehrere neue Eigenschaften und Methoden wurden Components.utils hinzugefügt, um den Zugriff auf verschiedene debugbezogene Informationen zu gewähren.

Interface-Änderungen

  • Die mozISpellCheckingEngine und nsIEditorSpellCheck Schnittstellen wurden aktualisiert, um Add-ons ohne Neustart zu ermöglichen, Wörterbücher zum Rechtschreibprüfer hinzuzufügen.
  • Das Attribut nsIBrowserHistory.lastPageVisited wurde entfernt.
  • Die nsIDocumentViewer Schnittstelle wurde in nsIContentViewer zusammengeführt.
  • Die nsIURIFixup Schnittstelle hat eine neue Flagge, FIXUP_FLAG_USE_UTF8, die Ihnen erlaubt, ihr mitzuteilen, UTF-8 statt des Plattform-Zeichensatzes zu verwenden, wenn Konvertierungen durchgeführt werden.

Plug-in Änderungen

  • Die neue Variable NPNVdocumentOrigin wurde hinzugefügt; diese gibt den Dokumentenursprung zurück und ist sicherer als window.location.

Änderungen am Build-System

  • Die --disable-rdf Build-Option, die es tatsächlich unmöglich machte, erfolgreich zu bauen, wurde entfernt. Es wird daran gearbeitet, RDF-Unterstützung vollständig zu entfernen, aber derzeit benötigt XUL es noch, um zu funktionieren. Siehe Firefox-Bug 559505 für den Fortschritt bei der Entfernung der letzten RDF-Reste, die erforderlich sind.
  • Die --disable-smil Build-Option wurde entfernt.

Siehe auch