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 jetztundefined
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
- Die DOM-Ereignismethode
event.stopImmediatePropagation
wurde implementiert. - Die Mausereignisse
mouseenter
undmouseleave
wurden implementiert.
DOM4
- Das Attribut
document.xmlVersion
(welches nur lesbar und nicht schreibbar war) wurde entfernt, da es in der DOM4-Spezifikation veraltet ist. Der Artikel zudocument.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. Stattnode1.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 Ereignismozvisibilitychanged
wird gesendet, wenn sich der Status ändert.
Vollbild-API
- Unterstützung für
document.fullscreenEnabled
wurde hinzugefügt. - Die neue Eigenschaft
:-moz-full-screen-ancestor
wurde hinzugefügt. Diese ermöglicht es Ihnen, Elemente zu vergleichen, die Vorfahren eines Elements im Vollbildmodus sind.
Batterie-API
- Experimentelle Unterstützung für
navigator.mozBattery
wurde hinzugefügt (kann durch Setzen der Voreinstellungdom.battery.enabled
auftrue
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
- Firefox 10 unterstützt nun die
OES_standard_derivatives
Erweiterung. - Neue Voreinstellungen wurden hinzugefügt, um beim Testen von WebGL-Code auf Kompatibilität mit minimal-fähigen Geräten auf Ihrer vollständigen Entwicklungsplattform zu helfen.
Web Workers
- Das Attribut
XMLHttpRequest.responseType
undXMLHttpRequest.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.
- Die Methoden
IDBIndex.count()
undIDBObjectStore.count()
wurden hinzugefügt. - Die Methode
IDBCursor.advance()
wurde hinzugefügt. - Bei unbekannten optionalen Parametern in
IDBObjectStore.createIndex()
oderIDBDatabase.createObjectStore()
wird Gecko keine Ausnahme mehr werfen, sondern es ignorieren. - Bei einem Anruf von
IDBTransaction.abort()
haben alle ausstehendenIDBRequest
ihrenerrorCode
aufABORT_ERROR
gesetzt. - Die Methoden
IDBObjectStore.delete()
undIDBCursor.delete()
setzen nun dasresult
-Attribut der zurückgegebenenIDBRequest
aufundefined
. - Die Methode
IDBDatabase.setVersion()
wurde entfernt, da sie aus der neuesten Spezifikation entfernt wurde. Die Version der Datenbank wird durch die MethodeIDBFactory.open()
angegeben, die aktualisiert wurde, und deronupgradeneeded
-Callback erlaubt die Aktualisierung des Datenbankschemas. Die Version selbst wurde von einemDOMString
zu einemunsigned long long
geändert. DasIDBVersionChangeRequest
-Interface wurde entfernt und durch das neueIDBOpenDBRequest
-Interface ersetzt. - Beim Öffnen einer Datenbank mit
IDBFactory.open()
, wenn derversion
Parameter nicht angegeben ist und die Datenbank nicht existiert, wird sie mit der Version1
erstellt. - Die Methode
IDBFactory.deleteDatabase()
wurde hinzugefügt. - Methoden, die über einen
IDBKeyRange
suchen (wieIDBObjectStore.openCursor
undIDBIndex.getKey
), können entweder einen einzelnen Schlüssel oder einen Schlüsselbereich akzeptieren.
Sonstiges
- Bei Übergabe des richtigen MIME-Typs
image/svg+xml
erstellt derDOMParser
jetzt einSVGDocument
, 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
undbackface-visibility
, sowie für 3D-Transformationsfunktionen in den Eigenschaftentransform
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 mitunicode-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()
undrepeating-linear-gradient()
wurden aktualisiert, um die neueto
-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 dietext-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()
undconsole.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 auftrue
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 Voreinstellungextensions.strictCompatibility
auftrue
setzen.
XUL
- Bootstrapped Add-ons mit einer
chrome.manifest
-Datei haben jetzt die Manifestdatei automatisch registriert. Details finden Sie im Abschnitt Hinzufügen einer Benutzeroberfläche mit einer chrome.manifest.
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
undnsIEditorSpellCheck
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 innsIContentViewer
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 alswindow.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.