Firefox 10 für Entwickler

Firefox 10 wurde am 31. Januar 2012 veröffentlicht. Dieser Artikel bietet Informationen über die neuen Funktionen und die behobenen wichtigen Fehler in dieser Version sowie Links zu detaillierteren Dokumentationen für Webentwickler und Add-on-Entwickler.

Hinweis: Firefox 10 ist die erste Version dieses Browsers mit zwei Ziffern. Dies kann zu Problemen mit einigen UA-Sniffing-Skripten führen. Überprüfen Sie diese, sowie solche in eingebundener Drittanbieter-Software in Ihren Seiten, wie Bibliotheken. Weitere Informationen hierzu finden Sie im Artikel Firefox goes 2-digit auf hack.mozilla.org.

Änderungen für Webentwickler

HTML

  • Das neue HTML5-Element <bdi>, bi-direktionale Isolation, das die Isolation von Textteilen mit unterschiedlicher Richtung ermöglicht, wurde implementiert. Dies ist besonders nützlich beim Anzeigen von Text mit unbekannter Richtung, der beispielsweise aus einer Datenbank stammt, inmitten von Text mit bekannter und möglicherweise unterschiedlicher Richtung.
  • Sie können jetzt ein Fragment "top" für das href-Attribut angeben, um einen Link zur Spitze der Seite zu erstellen. Dies funktionierte früher, ging eine Zeit lang verloren und ist jetzt zurück, um die Kompatibilität mit der HTML5-Spezifikation zu gewährleisten. Zum Beispiel: <a href="#top">Return to top of page</a>.

JavaScript

  • Die Methode WeakMap.set() gibt jetzt undefined zurück, anstatt sich selbst.
  • Ein Fehler in der regulären Ausdruck-Verarbeitung, der in Firefox 7 eingeführt wurde, wurde behoben. Weitere Details finden Sie im Firefox-Bug 683838.
  • Sie können die veraltete ECMAScript for XML (E4X)-Syntax nicht mehr im ECMAScript 5 strict mode verwenden (d.h. nach "use strict;").

DOM

DOM3-Ereignisse

DOM4

  • Das Attribut document.xmlVersion (welches nur lesbar und nicht schreibbar 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, so: node1 === node2.

Seiten-Sichtbarkeits-API

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

Vollbild-API

Batterie-API

  • Experimentelle Unterstützung für navigator.mozBattery wurde hinzugefügt (kann durch Setzen der Voreinstellung dom.battery.enabled auf true aktiviert werden und wird standardmäßig ab Firefox 11 aktiviert sein).

Canvas

  • Die Methode createPattern() löst jetzt eine Ausnahme aus, wenn eine Quelle mit Canvas der Größe Null angegeben wird.
  • Wenn Sie einen nicht-endlichen Wert für einen der numerischen Parameter von putImageData() verwenden, wird der Aufruf nun still 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 Konstruktor Worker() akzeptiert nun Data-URLs.

IndexedDB

Großer Fortschritt wurde gemacht, um IndexedDB an den neuesten Entwurf der Spezifikation anzupassen. Diese Bemühungen werden in Firefox 11 fortgesetzt.

Sonstiges

  • Bei Übergabe des richtigen MIME-Typs image/svg+xml erstellt der DOMParser jetzt ein SVGDocument, wenn er mit einem String mit SVG arbeitet.
  • In der Vergangenheit würde element.setAttribute() beim Parsen von ganzzahligen Werten einen Fehler melden, wenn die Ganzzahl nicht-numerische Zeichen enthielt (zum Beispiel "42foo"). Jetzt wird dies korrekt als die Zahl 42 abgeschnitten, in Übereinstimmung mit der Spezifikation.
  • Die ESC-Taste führt nicht mehr fälschlicherweise dazu, dass der onkeydown-Handler fälschlicherweise aufgerufen wird.
  • Das NameList-Interface wird nicht mehr implementiert; es hatte vorher eine Implementierung ohne eine Möglichkeit, tatsächlich auf eines zuzugreifen.
  • Die Methode document.createProcessingInstruction() funktioniert jetzt sowohl bei HTML- als auch bei XML-Dokumenten. ProcessingInstruction-Knoten werden immer noch nur in XML-Dokumenten unterstützt, aber da Knoten zwischen Dokumenten bewegt 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 Hinweis im Firefox-Bug 707142.

CSS

  • CSS 3D-Transformationen werden jetzt unterstützt. Dies beinhaltet die Unterstützung der Eigenschaften transform-style, perspective, perspective-origin und backface-visibility, sowie für 3D-Transformationsfunktionen in den Eigenschaften transform und <transform-function>. Details finden Sie unter Using CSS transforms.
  • Zwei neue Werte für die CSS-Eigenschaft unicode-bidi wurden hinzugefügt: -moz-isolation und -moz-plaintext. Der Wert -moz-isolation isoliert, aus einer Richtungssicht, 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. -moz-plaintext gibt dem Browser an, die Unicode-Browser-Heuristik zur Bestimmung der Richtung zu verwenden und nicht die CSS-direction-Eigenschaft.
  • 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 erlaubt es, eine präzise Farbe an der Ecke einer verlaufsgefüllten Box zu geben.
  • Die Handhabung der text-overflow Eigenschaft bei Fällen, in denen der Kasten auf beiden Seiten überläuft, während die text-overflow Eigenschaft eingestellt ist, auf nur eine Seite zu überlaufen, wurde korrigiert.
  • Die Handhabung der position Eigenschaft auf Elementen innerhalb von positionierten <table> Elementen wurde korrigiert. Diese Änderung wird das Layout von Seiten beeinflussen; wir entsprechen jedoch nun der CSS-Spezifikation und anderen Browsern, daher sollte dies einfach zu beheben sein.
  • Das Margin-Kollapsen um <table> Elemente wurde korrigiert, um die CSS-Spezifikation zu entsprechen. Zuvor wurden Margins von Tabellenelementen nicht zusammengelegt mit anderen benachbarten Elementen, was zu einem falschen Layout führte. Diese Änderung wird das Layout von Seiten beeinflussen; wir entsprechen jedoch nun der CSS-Spezifikation und anderen Browsern, daher sollte dies einfach zu beheben sein.

SVG

  • Das <mask>-Element wurde aktualisiert, um sowohl sRGB als auch linearRGB zu unterstützen und ist nun standardmäßig auf sRGB eingestellt, in Übereinstimmung mit der neuesten Überarbeitung der SVG 1.1-Spezifikation.

Netzwerk

  • Der HTTP-Header Accept-Charset wird nicht mehr in HTTP-Anfragen gesendet. In seiner Abwesenheit sollten Server mit 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 Seiteninspektor wurde hinzugefügt und bietet eine hervorragende Möglichkeit, 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 mögliche Probleme, die bei der Aktualisierung Ihrer Add-ons auf Unterstützung von Firefox 10 auftreten können, siehe Aktualisieren von Add-ons für Firefox 10.

Hinweis: Der alte PRBool Datentyp wurde abgeschafft! Überall, wo die Dokumentation darauf verweist, 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. Es erlaubt Add-on-Autoren, sich selbst in die Überprüfung der maximalen Version ihrer Erweiterung einzuschalten. Wenn auf true gesetzt, wird das Add-on deaktiviert, wenn die Anwendungsversion größer als <em:maxVersion> ist. Firefox 10 geht standardmäßig davon aus, dass Add-ons kompatibel sind, unabhängig von ihrer angegebenen maximalen Version. Dieses Flag überschreibt diese Voreinstellung. Sie sollten dies setzen, wenn Ihr Add-on Funktionen enthält, die wahrscheinlich durch Firefox-Updates unterbrochen werden, aber nicht, wenn Ihr Add-on eine binäre Komponente enthält, da solche Add-ons immer streng überprüft werden (denken Sie daran, dass binäre Komponenten immer für jede größere 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 von dem Wert des strictCompatibility-Flags in ihren Manifesten, können Sie die Voreinstellung extensions.strictCompatibility auf true setzen.

XUL

XPConnect

  • Mehrere neue Eigenschaften und Methoden wurden zu Components.utils hinzugefügt, die Zugriff auf verschiedene debugging-bezogene Informationen gewähren.

Schnittstellenänderungen

  • Die Interfaces mozISpellCheckingEngine und nsIEditorSpellCheck wurden aktualisiert, um es neu startbaren Add-ons zu ermöglichen, Wörterbücher zum Rechtschreibprüfer hinzuzufügen.
  • Das Attribut nsIBrowserHistory.lastPageVisited wurde entfernt.
  • Das Interface nsIDocumentViewer wurde in nsIContentViewer integriert.
  • Das Interface nsIURIFixup hat ein neues Flag, FIXUP_FLAG_USE_UTF8, das es Ihnen ermöglicht, es dazu zu bringen, UTF-8 anstelle des Plattformzeichensatzes zu verwenden, wenn Konvertierungen durchgeführt werden.

Plug-in-Änderungen

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

Buildsystem-Änderungen

  • Die Build-Option --disable-rdf, die es tatsächlich unmöglich machte, erfolgreich zu bauen, wurde entfernt. Es wird daran gearbeitet, die RDF-Unterstützung vollständig zu entfernen, aber derzeit erfordert XUL immer noch, dass es funktioniert. Siehe Firefox-Bug 559505 für Fortschritte bei der Entfernung der letzten Überreste von RDF, die erforderlich sind.
  • Die Build-Option --disable-smil wurde entfernt.

Siehe auch