Firefox 10 für Entwickler

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

Hinweis: Firefox 10 ist die erste Veröffentlichung dieses Browsers mit zweistelligen Nummern. Dies kann zu Problemen mit einigen UA-Sniffing-Skripten führen. Stellen Sie sicher, dass Sie diese sowie die in Ihrer Seite eingebetteten Drittanbieter-Software-Bibliotheken überprüfen. 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-directionale Isolation, das die Isolation von Textteilen mit unterschiedlicher Richtungsabhängigkeit ermöglicht, wurde implementiert. Dies ist besonders nützlich, wenn Text mit unbekannter Richtungsabhängigkeit, beispielsweise aus einer Datenbank, in einem Text mit bekannter, und möglicherweise anderer, Richtungsabhängigkeit 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 früher, war eine Zeit lang nicht verfügbar, und ist jetzt zurückgekehrt, um mit der HTML5-Spezifikation kompatibel zu sein. Beispiel: <a href="#top">Zurück zum Seitenanfang</a>.

JavaScript

  • Die Methode WeakMap.set() gibt jetzt undefined zurück, anstatt sich selbst.
  • Ein Fehler in der Verarbeitung regulärer Ausdrücke, der in Firefox 7 eingeführt wurde, wurde behoben. Wenn Sie die detaillierten Informationen wünschen, siehe Firefox-Fehler 683838.
  • Sie können die veraltete ECMAScript-for-XML (E4X) Syntax im ECMAScript 5 Strict Mode (d.h. nach "use strict;") nicht mehr verwenden.

DOM

DOM3-Ereignisse

DOM4

  • Das Attribut document.xmlVersion (das nur lesbar, aber nicht setzbar war) wurde entfernt, da es in der DOM4-Spezifikation als veraltet gilt. Der Artikel für document.xmlVersion schlägt nun 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 als veraltet gilt.
  • Das Attribut document.xmlEncoding wurde entfernt, da es in der DOM4-Spezifikation als veraltet gilt.
  • Das Attribut text.isElementContentWhiteSpace wurde entfernt, da es in der DOM4-Spezifikation als veraltet gilt.
  • Die Methode text.replaceWholeText wurde entfernt, da es in der DOM4-Spezifikation als veraltet gilt.
  • Die Methode node.isSameNode wurde entfernt, da es in der DOM4-Spezifikation als veraltet gilt. 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 versendet, 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 ab Firefox 11 standardmäßig aktiviert sein).

Canvas

  • Die Methode createPattern() löst jetzt eine Ausnahme aus, wenn eine leeren Quell-Canvas angegeben wird.
  • Wenn Sie einen nicht-endlichen Wert für einen der numerischen Parameter von putImageData() verwenden, wird der Aufruf jetzt stillschweigend ignoriert, anstatt eine Ausnahme zu werfen, wie es der Spezifikation entspricht.

WebGL

Web Workers

  • Die Attribute XMLHttpRequest.responseType und XMLHttpRequest.response sind nun von innerhalb der Workers verfügbar.
  • Der Worker() Konstruktor akzeptiert nun data URLs.

IndexedDB

Große Fortschritte wurden gemacht, um IndexedDB an die letzte Entwurfspezifikation anzupassen. Diese Bemühungen werden in Firefox 11 fortgesetzt.

Weitere

  • Wenn der richtige MIME-Typ image/svg+xml übergeben wird, erzeugt der DOMParser nun ein SVGDocument, wenn ihm eine Zeichenkette mit SVG übergeben wird.
  • Früher, wenn element.setAttribute() Ganzzahlen analysierte, meldete es einen Fehler, wenn die Ganzzahl nicht-numerische Zeichen enthielt (zum Beispiel "42foo"). Jetzt wird dies korrekt gemäß der Spezifikation als die Zahl 42 abgeschnitten.
  • Die ESC-Taste führte nicht mehr fälschlicherweise dazu, dass der onkeydown Handler fälschlicherweise aufgerufen wird.
  • Die NameList Schnittstelle wird nicht mehr implementiert; zuvor hatte sie eine Implementierung ohne Möglichkeit, tatsächlich darauf zuzugreifen.
  • Die Methode document.createProcessingInstruction() funktioniert jetzt in HTML-Dokumenten sowie in XML-Dokumenten. ProcessingInstruction Knoten werden noch immer 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.
  • Der XMLHttpRequest responseType "moz-json" eingeführt in Firefox 9 wurde an den neuesten Entwurf der Spezifikation angepasst und ist jetzt ohne Präfix. Siehe Anmerkung im Firefox-Fehler 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 von 3D-Transformationsfunktionen in den Eigenschaften transform und <transform-function>. Weitere Details finden Sie unter 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 das Element aus der Richtungsperspektive aus seiner Umgebung, sodass es eine andere Richtungsabhängigkeit haben kann. Ein Element mit unicode-bidi:-moz-isolation verhält sich wie ein <bdi>-Element. Das -moz-plaintext gibt dem Browser an, die Unicode-Browserheuristik zur Bestimmung der Richtung zu verwenden und nicht die CSS direction Eigenschaft.
  • Die CSS linear-gradient() und repeating-linear-gradient() Eigenschaften wurden aktualisiert, um die neue to-Syntax und das magic corner Algorithmus zu unterstützen. Dies ermöglicht es, eine präzise Farbe auf der Ecke einer gradientengefüllten Box zu geben.
  • Das Verhalten der text-overflow Eigenschaft bei Fällen, in denen die Box auf beiden Seiten überläuft, während die Eigenschaft text-overflow nur auf einer Seite eingestellt ist, wurde korrigiert.
  • Das Handling der position-Eigenschaft auf Elementen innerhalb positionierter <table>-Elemente wurde repariert. Diese Änderung wird das Layout von Seiten beeinflussen; wir stehen jedoch nun im Einklang mit der CSS-Spezifikation und anderen Browsern, sodass dies einfach zu beheben sein sollte.
  • Die Randkollapsierung um <table>-Elemente wurde korrigiert, um der CSS-Spezifikation zu entsprechen. Früher wurden die Ränder von Tabellenelementen nicht zusammen mit anderen angrenzenden Elementen kollabiert, was zu einem falschen Layout führte. Diese Änderung wird das Layout von Seiten beeinflussen; wir stehen jedoch nun im Einklang mit der CSS-Spezifikation und anderen Browsern, sodass dies einfach zu beheben sein sollte.

SVG

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

Netzwerk

  • Der HTTP-Header Accept-Charset wird nicht mehr in HTTP-Anfragen gesendet. Bei seiner Abwesenheit sollten die 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 einzustellen.
  • Der neue Page Inspector wurde hinzugefügt, der eine ausgezeichnete 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 mögliche Probleme, die bei der Aktualisierung Ihrer Add-ons zur Unterstützung von Firefox 10 auftreten können, siehe Add-ons für Firefox 10 aktualisieren.

Hinweis: Der alte PRBool Datentyp wurde abgeschafft! Ü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 sollten Sie dies beachten.

Manifeste

  • Unterstützung für <em:strictCompatibility> wurde dem Installationsmanifest hinzugefügt. Es erlaubt Add-on-Autoren, sich für die Überprüfung der maximalen Version ihrer Erweiterung einzusetzen. Wenn auf true gesetzt, wird das Add-on deaktiviert, wenn die Anwendungsversion größer als <em:maxVersion> ist. Firefox 10 setzt standardmäßig voraus, dass Add-ons kompatibel sind, unabhängig von ihrer angegebenen maximalen Version. Diese Flagge überschreibt diese Voreinstellung. Sie sollten dies setzen, wenn Ihr Add-on Dinge tut, die wahrscheinlich durch Firefox-Updates beeinträchtigt werden aber nicht, wenn Ihr Add-on eine Binärkomponente hat, da solche Add-ons immer streng überprüft werden (denken Sie daran, dass Binärkomponenten immer für jede große Firefox-Veröffentlichung re-kompiliert werden müssen).
  • Wenn Sie zum alten Verhalten zurückkehren möchten – also 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 Zugriff auf verschiedene debugging-relevante Informationen gewähren.

Schnittstellenänderungen

  • Die Schnittstellen mozISpellCheckingEngine und nsIEditorSpellCheck wurden aktualisiert, um Add-ons zu erlauben, ohne Neustart Wörterbücher zur Rechtschreibprüfung hinzuzufügen.
  • Das Attribut nsIBrowserHistory.lastPageVisited wurde entfernt.
  • Die Schnittstelle nsIDocumentViewer wurde in nsIContentViewer integriert.
  • Die Schnittstelle nsIURIFixup hat ein neues Flag, FIXUP_FLAG_USE_UTF8, das es Ihnen ermöglicht, anzugeben, dass UTF-8 anstelle des Plattformzeichensatzes bei Konvertierungen verwendet werden soll.

Plug-in-Änderungen

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

Build-Systemä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 benötigt XUL sie immer noch, um zu funktionieren. Siehe Firefox-Fehler 559505 für Fortschritte beim Entfernen der letzten Spuren der RDF-Anforderung.
  • Die Build-Option --disable-smil wurde entfernt.

Siehe auch