Firefox 10 Release Notes für Entwickler
Firefox 10 wurde am 31. Januar 2012 veröffentlicht. Dieser Artikel bietet Informationen über die neuen Funktionen und wichtige behobene 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 zwei Ziffern. Dies kann zu Problemen mit einigen UA-Sniffing-Skripten führen. Überprüfen Sie diese sowie die in eingebetteter Drittanbieter-Software enthaltenen Bibliotheken auf potenzielle Probleme. Für weitere Informationen lesen Sie den Artikel über das Wechseln zu zweistelligen Versionen auf hack.mozilla.org.
Änderungen für Webentwickler
>HTML
- Das neue HTML5
<bdi>-Element zur bidirektionalen Isolation, das die Isolation von Textteilen mit unterschiedlicher Richtung ermöglicht, wurde implementiert. Dies ist besonders nützlich beim Anzeigen von Texten mit unbekannter Richtung, die beispielsweise aus einer Datenbank stammen und in der Mitte eines Textes mit bekannter, möglicherweise unterschiedlicher Richtung eingefügt werden. - Sie können nun ein Fragment von "top" für das
href-Attribut angeben, um einen Link zum oberen Rand der Seite zu erstellen. Dies funktionierte früher, war dann eine Weile verschwunden und ist nun wieder zurück, um die Kompatibilität mit der HTML5-Spezifikation zu gewährleisten. Ein Beispiel:<a href="#top">Return to top of page</a>.
JavaScript
- Die Methode
WeakMap.set()gibt jetztundefinedzurück, anstatt sich selbst. - Ein Fehler bei der Verarbeitung regulärer Ausdrücke, der in Firefox 7 eingeführt wurde, wurde behoben. Weitere Details finden Sie unter Firefox Fehler 683838.
- Sie können die veraltete ECMAScript for XML (E4X)-Syntax jetzt nicht mehr im ECMAScript 5 strict mode verwenden (d.h. nach dem
"use strict;").
DOM
DOM3 Ereignisse
- Die DOM-Ereignismethode
event.stopImmediatePropagationwurde implementiert. - Die Mauserereignisse
mouseenterundmouseleavewurden implementiert.
DOM4
- Das Attribut
document.xmlVersion(das nur auslesbar und nicht setzbar war) wurde entfernt, da es in der DOM4-Spezifikation veraltet ist. Der Artikel zudocument.xmlVersionschlägt nun eine Methode zur Erkennung vor, ob das Dokument HTML oder XML ist, ohne diese Eigenschaft zu verwenden. - Das Attribut
document.xmlStandalonewurde entfernt, da es in der DOM4-Spezifikation veraltet ist. - Das Attribut
document.xmlEncodingwurde entfernt, da es in der DOM4-Spezifikation veraltet ist. - Das Attribut
text.isElementContentWhiteSpacewurde entfernt, da es in der DOM4-Spezifikation veraltet ist. - Die Methode
text.replaceWholeTextwurde entfernt, da sie in der DOM4-Spezifikation veraltet ist. - Die Methode
node.isSameNodewurde entfernt, da sie in der DOM4-Spezifikation veraltet ist. Anstelle vonnode1.isSameNode(node2)können Sie den===Operator verwenden, wie folgt:node1 === node2.
Seiten-Sichtbarkeits-API
- Die Page Visibility API wurde implementiert (mit Präfix):
document.mozHidden,document.mozVisibilityStatesind verfügbar und das Ereignismozvisibilitychangedwird gesendet, wenn sich der Zustand ändert.
Vollbild-API
- Unterstützung für
document.fullscreenEnabledwurde hinzugefügt. - Die neue Eigenschaft
:-moz-full-screen-ancestorwurde hinzugefügt. Diese ermöglicht es Ihnen, Elemente zu erkennen, die Vorfahren eines Elements im Vollbildmodus sind.
Batterie-API
- Experimentelle Unterstützung für
navigator.mozBatterywurde hinzugefügt (kann aktiviert werden, indem die Einstellungdom.battery.enabledauftruegesetzt wird und wird standardmäßig ab Firefox 11 aktiviert sein).
Canvas
- Die
createPattern()-Methode wirft jetzt eine Ausnahme, wenn eine Quelle mit einer Größe von null angegeben wird. - Wenn Sie einen nicht endlichen Wert für einen der numerischen Parameter an
putImageData()übergeben, wird der Aufruf jetzt stillschweigend ignoriert, anstatt eine Ausnahme zu werfen, im Einklang mit der Spezifikation.
WebGL
- Firefox 10 unterstützt jetzt die
OES_standard_derivatives-Erweiterung. - Neue Einstellungen wurden hinzugefügt, um die Kompatibilität von WebGL-Code mit minimal leistungsfähigen Geräten auf Ihrer Entwicklungsplattform zu testen.
Web Worker
- Das Attribut
XMLHttpRequest.responseTypeundXMLHttpRequest.responsesind jetzt innerhalb von Workers verfügbar. - Der
Worker()-Konstruktor akzeptiert jetzt Data-URLs.
IndexedDB
Es wurden große Fortschritte gemacht, um IndexedDB auf den neuesten Spezifikationsentwurf zu aktualisieren. Diese Anstrengungen werden in Firefox 11 weitergeführt.
- Die Methoden
IDBIndex.count()undIDBObjectStore.count()wurden hinzugefügt. - Die Methode
IDBCursor.advance()wurde hinzugefügt. - Beim Auftreten eines unbekannten optionalen Parameters in
IDBObjectStore.createIndex()oderIDBDatabase.createObjectStore()wird Gecko keine Ausnahme mehr auslösen, sondern den Parameter ignorieren. - Wenn
IDBTransaction.abort()aufgerufen wird, haben alle ausstehendenIDBRequestdenerrorCodeaufABORT_ERRORgesetzt. - Die Methoden
IDBObjectStore.delete()undIDBCursor.delete()setzen jetzt dasresult-Attribut der zurückgegebenenIDBRequestaufundefined. - Die Methode
IDBDatabase.setVersion()wurde entfernt, da sie aus dem neuesten Entwurf entfernt wurde. Die Version der Datenbank wird über die MethodeIDBFactory.open()angegeben, die aktualisiert wurde, und deronupgradeneeded-Callback ermöglicht das Aktualisieren des Schemas der Datenbank. Die Version selbst wurde von einemDOMStringin einenunsigned long longgeändert. DieIDBVersionChangeRequest-Schnittstelle wurde entfernt und durch die neueIDBOpenDBRequestSchnittstelle ersetzt. - Beim Öffnen einer Datenbank mit
IDBFactory.open(), wenn derversion-Parameter nicht bereitgestellt wird und die Datenbank nicht existiert, wird sie mit einer Version von1erstellt. - Die Methode
IDBFactory.deleteDatabase()wurde hinzugefügt. - Methoden, die über einen
IDBKeyRangesuchen (wieIDBObjectStore.openCursorundIDBIndex.getKey) können entweder einen einzelnen Schlüssel oder einen Schlüsselbereich akzeptieren.
Sonstiges
- Wenn der richtige MIME-Typ,
image/svg+xml, übergeben wird, erstellt derDOMParserjetzt einSVGDocument, wenn eine Zeichenfolge mit SVG übergeben wird. - Früher berichtete
element.setAttribute()einen Fehler, wenn das Integer eine nicht numerische Zeichenfolge enthielt (zum Beispiel "42foo"). Jetzt wird dies korrekt auf die Zahl 42 gekürzt, in Übereinstimmung mit der Spezifikation. - Die ESC-Taste führt nicht mehr fälschlicherweise dazu, dass der
onkeydownHandler fälschlicherweise aufgerufen wird. - Die
NameList-Schnittstelle wird nicht mehr implementiert; sie hatte zuvor eine Implementierung ohne die Möglichkeit, tatsächlich auf sie zuzugreifen. - Die Methode
document.createProcessingInstruction()funktioniert jetzt sowohl bei HTML- als auch bei XML-Dokumenten.ProcessingInstruction-Knoten werden weiterhin nur bei 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
"moz-json"responseTypevonXMLHttpRequest, eingeführt in Firefox 9, wurde auf den neuesten Entwurf der Spezifikation aktualisiert und das Präfix wurde entfernt. Siehe Hinweis in Firefox Fehler 707142.
CSS
- CSS 3D-Transformationen werden jetzt unterstützt. Dies beinhaltet Unterstützung für die Eigenschaften
transform-style,perspective,perspective-originundbackface-visibility, sowie für 3D-Transformationsfunktionen in den Eigenschaftentransformund<transform-function>. Sehen Sie sich Verwenden von CSS-Transformationen für Details an. - Zwei neue Werte für die CSS-Eigenschaft
unicode-bidiwurden hinzugefügt:-moz-isolationund-moz-plaintext. Der Wert-moz-isolationisoliert das Element aus der Sicht der Richtungen von seiner Umgebung, sodass es eine unterschiedliche Richtung haben kann. Ein Element mitunicode-bidi:-moz-isolationverhält sich wie ein<bdi>-Element. Der Wert-moz-plaintextgibt dem Browser an, die Unicode-Browserheuristik zur Bestimmung der Richtung zu verwenden und nicht die CSSdirection-Eigenschaft. - Die CSS-Eigenschaften
linear-gradient()undrepeating-linear-gradient()wurden aktualisiert, um das neueto-Syntax und den magischen Eck-Algorithmus zu unterstützen. Dies ermöglicht es Ihnen, eine präzise Farbe in der Ecke eines farbverlaufsgefüllten Feldes anzugeben. - Das Verhalten der CSS-Eigenschaft
text-overflowin Fällen, in denen das Feld auf beiden Seiten überläuft, während die Eigenschafttext-overflownur auf einer Seite eingestellt ist, wurde korrigiert. - Die Behandlung der CSS-Eigenschaft
positionfür Elemente innerhalb von positionierten<table>-Elementen wurde behoben. Diese Änderung wirkt sich auf das Layout von Webseiten aus; jedoch entsprechen wir jetzt der CSS-Spezifikation und anderen Browsern, sodass dies einfach zu beheben sein sollte. - Das Kollabieren von Rändern um
<table>-Elemente wurde behoben, um der CSS-Spezifikation zu entsprechen. Zuvor würden die Ränder von Tabellenelementen nicht mit anderen benachbarten Elementen kollabieren, was zu einem falschen Layout führte. Diese Änderung wirkt sich auf das Layout von Webseiten aus; jedoch entsprechen wir jetzt 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 standardmäßig auf sRGB voreingestellt, um mit der neuesten Revision der SVG 1.1-Spezifikation konform zu sein.
Netzwerk
- Der HTTP-Header
Accept-Charsetwird bei HTTP-Anfragen nicht mehr gesendet. In seiner Abwesenheit sollten Server mit UTF-8 antworten.
Entwickler-Tools
- Das
console-Objekt hat zwei neue Methoden,console.time()undconsole.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, den HTML- und CSS-Code hinter Ihren Inhalten zu untersuchen und zu manipulieren.
Änderungen für Mozilla- und Add-on-Entwickler
Für einen Überblick über mögliche 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 eingestellt! Überall in der Dokumentation, wo darauf verwiesen wird, wird stattdessen der standardmäßige C++ bool Typ verwendet. Die Dokumentation wird in Zukunft aktualisiert, aber vorerst sollten Sie sich dessen bewusst sein.
Manifeste
- Unterstützung für
<em:strictCompatibility>wurde zum Installationsmanifest hinzugefügt. Es ermöglicht Add-on-Autoren, die maximale Version ihrer Erweiterung zu überprüfen. Wenn auftruegesetzt, 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. Diese Einstellung überschreibt diese Präferenz. Sie sollten dies setzen, wenn Ihr Add-on Dinge tut, die durch Firefox-Updates wahrscheinlich beschädigt 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 große Firefox-Version neu 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 der
strictCompatibility-Einstellung in ihren Manifesten – können Sie dieextensions.strictCompatibility-Präferenz auftruesetzen.
XUL
- Integrierte Add-ons, die eine
chrome.manifest-Datei verwenden, haben jetzt ihre Manifestdatei automatisch registriert. Siehe den Abschnitt Hinzufügen der Benutzeroberfläche mit einer chrome.manifest für Details.
XPConnect
- Mehrere neue Eigenschaften und Methoden wurden zu
Components.utilshinzugefügt, die Zugriff auf verschiedene debugging-relevante Informationen gewähren.
Schnittstellenänderungen
- Die
mozISpellCheckingEngine- undnsIEditorSpellCheck-Schnittstellen wurden aktualisiert, um es Add-ons ohne Neustart zu ermöglichen, Wörterbücher zum Rechtschreibprüfer hinzuzufügen. - Das Attribut
nsIBrowserHistory.lastPageVisitedwurde entfernt. - Die
nsIDocumentViewer-Schnittstelle wurde innsIContentViewerintegriert. - Die
nsIURIFixup-Schnittstelle hat ein neues Flag,FIXUP_FLAG_USE_UTF8, das Ihnen ermöglicht, UTF-8 statt des Plattform-Zeichensatzes bei Umwandlungen zu verwenden.
Plug-in-Änderungen
- Die neue Variable
NPNVdocumentOriginwurde hinzugefügt; sie gibt den Ursprung des Dokuments zurück und ist sicherer alswindow.location.
Build-System-Änderungen
- Die Build-Option
--disable-rdf, die es praktisch unmöglich machte, erfolgreich zu bauen, wurde entfernt. Die Arbeit geht weiter, um die RDF-Unterstützung vollständig zu entfernen, aber derzeit benötigt XUL sie noch, um zu funktionieren. Fortschritte bei der Entfernung der letzten Überreste von RDF werden in Firefox Fehler 559505 protokolliert. - Die Build-Option
--disable-smilwurde entfernt.