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 sowohl für Webentwickler als auch für Erweiterungsentwickler.

Hinweis: Firefox 10 ist die erste Version dieses Browsers mit zweistelliger Versionsnummer. Dies kann bei einigen UA-Erkennungsskripten zu Problemen führen. Stellen Sie sicher, dass Sie diese sowie die in eingebetteter Drittanbietersoftware enthaltenen Skripte überprüfen, wie z.B. Bibliotheken. Für weitere Informationen darüber siehe den Artikel Firefox goes 2-digit auf hack.mozilla.org.

Änderungen für Webentwickler

HTML

  • Das neue HTML5 <bdi> Element für bidirektionale Isolation, das die Isolierung von Teilen eines Textes mit unterschiedlicher Richtung ermöglicht, wurde implementiert. Dies ist besonders nützlich, wenn Texte mit unbekannter Richtung, zum Beispiel aus einer Datenbank, inmitten eines Textes mit bekannter und möglicherweise unterschiedlicher Richtung angezeigt werden sollen.
  • Sie können jetzt ein Fragment "top" für das href Attribut angeben, um einen Link zum Anfang der Seite zu erstellen. Das funktionierte früher, verschwand dann eine Weile und ist jetzt zurück, um Kompatibilität mit der HTML5-Spezifikation herzustellen. 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 im Umgang mit regulären Ausdrücken, der in Firefox 7 eingeführt wurde, wurde behoben. Siehe Firefox Bug 683838 für die Details.
  • Sie können die veraltete ECMAScript for XML (E4X) Syntax nicht mehr im ECMAScript 5-Strikmodus (also nach "use strict;") verwenden.

DOM

DOM3 Events

DOM4

  • Das Attribut document.xmlVersion (das nur lesbar und nicht setzbar war) wurde entfernt, da es in der DOM4-Spezifikation als veraltet markiert wurde. Der Artikel für document.xmlVersion schlägt nun eine Methode vor, um 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 als veraltet markiert wurde.
  • Das Attribut document.xmlEncoding wurde entfernt, da es in der DOM4-Spezifikation als veraltet markiert wurde.
  • Das Attribut text.isElementContentWhiteSpace wurde entfernt, da es in der DOM4-Spezifikation als veraltet markiert wurde.
  • Die Methode text.replaceWholeText wurde entfernt, da sie in der DOM4-Spezifikation als veraltet markiert wurde.
  • Die Methode node.isSameNode wurde entfernt, da sie in der DOM4-Spezifikation als veraltet markiert wurde. Statt node1.isSameNode(node2) können Sie den === Operator verwenden, so: 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 sich der Zustand ändert.

Full Screen API

Battery API

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

Canvas

  • Die createPattern() Methode löst jetzt eine Ausnahme aus, wenn eine Quelle mit der Größe Null angegeben wird.
  • Wenn Sie einen unendlichen Wert für einen der numerischen Parameter von putImageData() verwenden, wird der Aufruf jetzt stillschweigend ignoriert, anstatt eine Ausnahme auszulösen, in Übereinstimmung mit der Spezifikation.

WebGL

Web Workers

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

IndexedDB

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

Weitere Änderungen

  • Wenn der richtige MIME-Typ image/svg+xml angegeben wird, erstellt der DOMParser jetzt ein SVGDocument, wenn eine Zeichenkette mit SVG gegeben wird.
  • Früher berichtete element.setAttribute() beim Parsen von Ganzzahlen einen Fehler, wenn die Ganzzahl nicht-numerische Zeichen enthielt (z.B. "42foo"). Jetzt wird dies korrekt als die Zahl 42 abgekürzt, in Übereinstimmung mit der Spezifikation.
  • Die ESC-Taste löst nicht mehr fälschlicherweise den onkeydown Handler aus.
  • Die NameList Schnittstelle wird nicht mehr implementiert; sie hatte zuvor eine Implementierung ohne Möglichkeit, tatsächlich auf eine zuzugreifen.
  • Die Methode document.createProcessingInstruction() funktioniert jetzt sowohl in HTML- als auch in XML-Dokumenten. ProcessingInstruction Knoten werden immer noch 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 entfernt. Siehe Hinweis in Firefox Bug 707142.

CSS

  • CSS 3D-Transformationen werden jetzt unterstützt. Dies schließt die 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> ein. Siehe Verwendung von CSS-Transformationen für Details.
  • Zwei neue Werte für die CSS-Eigenschaft unicode-bidi wurden hinzugefügt: -moz-isolation und -moz-plaintext. Der -moz-isolation Wert isoliert aus einer Richtungsperspektive das Element von seiner Umgebung und ermöglicht ihm eine andere Richtung. Ein Element mit unicode-bidi:-moz-isolation verhält sich wie ein <bdi> Element. Der -moz-plaintext weist den Browser an, die Unicode-Browser-Heuristik 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 in der Ecke eines von einem Verlauf gefüllten Kastens zu geben.
  • Die Handhabung der text-overflow Eigenschaft in Fällen, in denen das Feld auf beiden Seiten überläuft, während die text-overflow Eigenschaft auf Überlauf nur auf einer Seite eingestellt ist, wurde korrigiert.
  • Die Handhabung der position Eigenschaft bei Elementen innerhalb von positionierten <table> Elementen wurde behoben. Diese Änderung wirkt sich auf das Layout von Seiten aus; wir entsprechen jetzt jedoch der CSS-Spezifikation und anderen Browsern, sodass dies leicht zu beheben sein sollte.
  • Die Randzusammenführung rund um <table> Elemente wurde behoben, um der CSS-Spezifikation zu entsprechen. Zuvor wurden die Ränder von Tabellenelementen nicht mit anderen angrenzenden Elementen zusammengeführt, was zu einem falschen Layout führte. Diese Änderung wirkt sich auf das Layout von Seiten aus; wir entsprechen jetzt jedoch der CSS-Spezifikation und 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, in Übereinstimmung mit der neuesten Revision der SVG 1.1 Spezifikation.

Netzwerke

  • Der HTTP Accept-Charset Header wird nicht mehr in HTTP-Anfragen gesendet. In dessen Abwesenheit sollten Server antworten, indem sie UTF-8 senden.

Entwicklerwerkzeuge

  • Das console Objekt hat zwei neue Methoden, console.time() und console.timeEnd(), die verwendet werden können, um Timer auf einer Seite einzustellen.
  • Der neue Seiteninspektor wurde hinzugefügt, um eine hervorragende Möglichkeit zur Untersuchung und Manipulation des HTML und CSS hinter Ihrem Inhalt bereitzustellen.

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

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

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

Manifeste

  • Unterstützung für <em:strictCompatibility> wurde dem Installationsmanifest hinzugefügt. Sie ermöglicht es Erweiterungsautoren, sich für die Überprüfung der maximalen Version ihrer Erweiterung zu entscheiden. Wenn auf true gesetzt, wird das Add-on deaktiviert, wenn die Anwendungs-Version größer als <em:maxVersion> ist. Firefox 10 geht standardmäßig davon aus, dass Add-ons kompatibel sind, unabhängig von der angegebenen maximalen Version. Diese Flag setzt diese Voreinstellung außer Kraft. Sie sollten dies setzen, wenn Ihr Add-on Dinge tut, die wahrscheinlich durch Firefox-Updates beschädigt werden, aber nicht, wenn Ihr Add-on eine binäre Komponente enthält, da solche Add-ons immer strikt überprüft werden (denken Sie daran, dass binäre Komponenten immer für jede große Firefox-Veröffentlichung neu kompiliert werden müssen).
  • Wenn Sie zum alten Verhalten zurückkehren möchten - d.h. zur strikten Kompatibilitätsprüfung für alle Add-ons, unabhängig vom 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 den Zugriff auf verschiedene debuggingbezogene Informationen gewähren.

Schnittstellenänderungen

  • Die Schnittstellen mozISpellCheckingEngine und nsIEditorSpellCheck wurden aktualisiert, um das Hinzufügen von Wörterbüchern zum Rechtschreibprüfer durch Add-ons ohne Neustart zu ermöglichen.
  • Das nsIBrowserHistory.lastPageVisited Attribut wurde entfernt.
  • Die Schnittstelle nsIDocumentViewer wurde in nsIContentViewer integriert.
  • Die Schnittstelle nsIURIFixup hat eine neue Flagge, FIXUP_FLAG_USE_UTF8, die es Ihnen ermöglicht, ihr anzugeben, UTF-8 anstelle des Plattform-Zeichensatzes zu verwenden, wenn Konvertierungen durchgeführt werden.

Plugin-Änderungen

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

Änderungen im Build-System

  • Die --disable-rdf Build-Option, 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 benötigt XUL sie noch, um zu funktionieren. Siehe Firefox Bug 559505 für Fortschritte beim Entfernen der letzten Überbleibsel der erforderlichen RDF-Unterstützung.
  • Die --disable-smil Build-Option wurde entfernt.

Siehe auch