Firefox 10 für Entwickler
Firefox 10 wurde am 31. Januar 2012 veröffentlicht. Dieser Artikel bietet Informationen zu den neuen Funktionen und den wichtigsten behobenen Fehlern in dieser Version sowie Links zu ausführlicheren Dokumentationen für Webentwickler und Add-on-Entwickler.
Hinweis: Firefox 10 ist die erste Version dieses Browsers mit zweistelligem Versionsnummernsystem. Dies kann zu Problemen mit einigen UA-Erkennungsskripten führen. Überprüfen Sie diese Skripte sowie die in eingebetteter Drittanbieter-Software enthaltenen, wie Bibliotheken. Weitere Informationen finden Sie im Artikel "Firefox goes 2-digit" auf hack.mozilla.org.
Änderungen für Webentwickler
HTML
- Das neue HTML5-Element
<bdi>
, bidirektionale Isolierung, das die Isolierung von Textteilen mit unterschiedlicher Richtung ermöglicht, ist implementiert. Dies ist besonders nützlich beim Anzeigen von Text mit unbekannter Richtung, der beispielsweise aus einer Datenbank stammt, inmitten von Text mit bekannter, potenziell anderer Richtung. - Ab sofort können Sie ein Fragment von "top" für das
href
-Attribut angeben, um einen Link zum oberen Rand der Seite zu erstellen. Diese Funktionalität war verfügbar, verschwand einige Zeit und ist jetzt wieder vorhanden, um mit der HTML5-Spezifikation kompatibel zu sein. Zum Beispiel:<a href="#top">Zurück zum Seitenanfang</a>
.
JavaScript
- Die Methode
WeakMap.set()
gibt jetztundefined
zurück, anstatt sich selbst. - Ein Fehler wurde in der Regulärausdrucksbehandlung in Firefox 7 eingeführt; dieser wurde behoben. Siehe Firefox-Fehler 683838 für detaillierte Informationen.
- Sie können die veraltete ECMAScript für XML (E4X)-Syntax nicht mehr im ECMAScript 5 strikt-Modus verwenden (das heißt nach
"use strict;"
).
DOM
DOM3 Events
- Die DOM-Eventmethode
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 fürdocument.xmlVersion
schlägt nun eine Möglichkeit vor, festzustellen, 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, wie folgt:node1 === node2
.
Page Visibility API
- Die Page Visibility 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 erlaubt es Ihnen, Elemente zu identifizieren, die Vorfahren eines Elements im Vollbildmodus sind.
Batterie-API
- Experimentelle Unterstützung für
navigator.mozBattery
wurde hinzugefügt (kann durch Setzen der Einstellungdom.battery.enabled
auftrue
aktiviert werden und wird standardmäßig ab Firefox 11 aktiviert sein).
Canvas
- Die Methode
createPattern()
wirft jetzt eine Ausnahme, wenn eine Quelle mit null Größe angegeben wird. - Wenn bei einem Aufruf von
putImageData()
ein nicht-finitiver Wert für einen der numerischen Parameter verwendet wird, wird der Aufruf jetzt stillschweigend ignoriert, anstatt eine Ausnahme zu werfen, in Übereinstimmung mit der Spezifikation.
WebGL
- Firefox 10 unterstützt jetzt die Erweiterung
OES_standard_derivatives
. - Neue Einstellungen wurden hinzugefügt, um WebGL-Code auf Kompatibilität mit minimal-fähigen Geräten auf Ihrer gesamten Entwicklungsplattform zu testen.
Web Workers
- Die Attribute
XMLHttpRequest.responseType
undXMLHttpRequest.response
sind jetzt innerhalb von Workers verfügbar. - Der
Worker()
-Konstruktor akzeptiert nun data URLs.
IndexedDB
Es wurden erhebliche Fortschritte erzielt, um IndexedDB an die neueste Entwurfsspezifikation 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. - Wenn ein unbekannter optionaler Parameter in
IDBObjectStore.createIndex()
oderIDBDatabase.createObjectStore()
auftritt, wird Gecko keine Ausnahme mehr auslösen, sondern ihn ignorieren. - Wenn
IDBTransaction.abort()
aufgerufen wird, haben alle ausstehendenIDBRequest
denerrorCode
aufABORT_ERROR
gesetzt. - Die Methoden
IDBObjectStore.delete()
undIDBCursor.delete()
setzen jetzt 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 über die MethodeIDBFactory.open()
festgelegt, die aktualisiert wurde, und deronupgradeneeded
-Callback ermöglicht das Upgrade des Datenbankschemas. Die Version selbst wurde von einerDOMString
zu einerunsigned long long
geändert. DieIDBVersionChangeRequest
-Schnittstelle wurde entfernt und durch die neueIDBOpenDBRequest
-Schnittstelle ersetzt. - Beim Öffnen einer Datenbank mit
IDBFactory.open()
, wenn derversion
-Parameter nicht angegeben ist und die Datenbank nicht existiert, wird sie mit einer Version von1
erstellt. - Die Methode
IDBFactory.deleteDatabase()
wurde hinzugefügt. - Methoden, die über eine
IDBKeyRange
suchen (wieIDBObjectStore.openCursor
undIDBIndex.getKey
), können entweder einen einzelnen Schlüssel oder einen Schlüsselsbereich akzeptieren.
Sonstiges
- Wenn der richtige MIME-Typ,
image/svg+xml
, übergeben wird, erzeugt derDOMParser
jetzt einSVGDocument
, wenn eine Zeichenkette mit SVG übergeben wird. - In der Vergangenheit meldete
element.setAttribute()
einen Fehler, wenn die Ganzzahl nicht-numerische Zeichen enthielt (zum Beispiel "42foo"). Jetzt wird dies korrekt als die Zahl 42 abgeschnitten, gemäß der Spezifikation. - Die ESC-Taste führt nicht mehr fälschlicherweise dazu, dass der
onkeydown
-Handler fälschlicherweise aufgerufen wird. - 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 mit HTML-Dokumenten als auch mit XML-Dokumenten.ProcessingInstruction
-Knoten werden weiterhin nur auf XML-Dokumenten unterstützt, aber da Knoten zwischen Dokumenten verschoben werden können, ist es hilfreich, sie auch auf HTML-Dokumenten erstellen zu können. - Die
XMLHttpRequest
responseType
"moz-json"
eingeführt in Firefox 9 wurde auf den neuesten Stand der Spezifikation aktualisiert und ist nicht mehr mit Präfix versehen. Siehe Hinweis in Firefox Fehler 707142.
CSS
- CSS-3D-Transformationen werden jetzt unterstützt. Dies beinhaltet die Unterstützung für die Eigenschaften
transform-style
,perspective
,perspective-origin
undbackface-visibility
, sowie für 3D-Transformationsfunktionen in den Eigenschaftentransform
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 Sicht der Richtung von seiner Umgebung, sodass es eine andere Richtung haben kann. Ein Element mitunicode-bidi:-moz-isolation
verhält sich wie ein<bdi>
-Element. Das-moz-plaintext
zeigt dem Browser an, die Unicode-Browser-Heuristik zu verwenden, um die Richtung zu bestimmen, 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 genaue Farbe auf der Ecke eines gradient-gefüllten Kastens anzugeben. - Der Umgang mit der Eigenschaft
text-overflow
in Fällen, in denen das Kästchen auf beiden Seiten überläuft, während dietext-overflow
-Eigenschaft nur auf einer Seite überlaufen soll, wurde korrigiert. - Die Behandlung der Eigenschaft
position
von Elementen innerhalb von positionierten<table>
-Elementen wurde behoben. Diese Änderung wird das Layout von Seiten beeinflussen; aber wir halten uns jetzt an die CSS-Spezifikation und an andere Browser, sodass dies leicht zu beheben sein sollte. - Das Margin-Collapsing um
<table>
-Elemente wurde korrigiert, um der CSS-Spezifikation zu entsprechen. Zuvor wurden die Ränder von Table-Elementen nicht zusammen mit anderen benachbarten Elementen zusammengefasst, was zu falschem Layout führte. Diese Änderung wird das Layout von Seiten beeinflussen; aber wir halten uns jetzt an die CSS-Spezifikation und an andere Browser, sodass dies leicht 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 Revision der SVG 1.1-Spezifikation.
Netzwerktechnik
- Der HTTP-Header
Accept-Charset
wird in 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 und bietet eine hervorragende Möglichkeit, 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 beim Aktualisieren Ihrer Add-ons zur Unterstützung von Firefox 10 auftreten können, siehe Aktualisierung 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 jetzt, behalten Sie dies im Hinterkopf.
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 zu entscheiden. Wenn auftrue
gesetzt, wird das Add-on deaktiviert, wenn die Anwendungsversion größer als<em:maxVersion>
ist. Firefox 10 nimmt standardmäßig an, dass Add-ons kompatibel sind, unabhängig von ihrer angegebenen maximalen Version. Diese Kennzeichnung überschreibt diese Einstellung. Sie sollten dies setzen, wenn Ihr Add-on Dinge tut, die wahrscheinlich durch Firefox-Updates kaputt gehen, aber nicht, wenn Ihr Add-on eine binäre Komponente hat, da solche Add-ons immer streng geprü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 — das heißt, zur strengen Kompatibilitätsprüfung für alle Add-ons, unabhängig vom Wert der
strictCompatibility
-Kennzeichnung in ihren Manifesten, können Sie dieextensions.strictCompatibility
-Einstellung auftrue
setzen.
XUL
- Durch Bootstrapping aufgerufene Add-ons, die eine
chrome.manifest
-Datei verwenden, haben die Manifestdatei jetzt automatisch registriert. Siehe den Abschnitt Hinzufügen einer Benutzeroberfläche mit einer chrome.manifest für Details.
XPConnect
- Mehrere neue Eigenschaften und Methoden wurden zu
Components.utils
hinzugefügt, und gewähren Zugriff auf verschiedene debuggingbezogene Informationen.
Schnittstellenänderungen
- Die Schnittstellen
mozISpellCheckingEngine
undnsIEditorSpellCheck
wurden aktualisiert, um erweiterten Add-ons zu erlauben, dem Rechtschreibprüfer Wörterbücher hinzuzufügen. - Das Attribut
nsIBrowserHistory.lastPageVisited
wurde entfernt. - Die
nsIDocumentViewer
-Schnittstelle wurde innsIContentViewer
zusammengeführt. - Die
nsIURIFixup
-Schnittstelle hat eine neue Kennzeichnung,FIXUP_FLAG_USE_UTF8
, die es Ihnen ermöglicht, es UTF-8 anstelle des Plattform-Zeichensatzes zu verwenden, bei Konvertierungen.
Änderungen bei Plug-ins
- Die neue Variable
NPNVdocumentOrigin
wurde hinzugefügt; diese gibt den Ursprung des Dokuments zurück und ist sicherer alswindow.location
.
Änderungen im Build-System
- Die
--disable-rdf
Build-Option, die tatsächlich den erfolgreichen Build unmöglich machte, wurde entfernt. Es wird daran gearbeitet, RDF-Unterstützung vollständig entfernen zu können, derzeit erfordert jedoch XUL noch dessen Funktionalität. Siehe Firefox Fehler 559505 für den Fortschritt beim Entfernen der letzten Reste von RDF, die benötigt werden. - Die
--disable-smil
Build-Option wurde entfernt.