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 jetztundefined
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
- Die DOM-Ereignismethode
event.stopImmediatePropagation
wurde implementiert. - Die Mausereignisse
mouseenter
undmouseleave
wurden implementiert.
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ürdocument.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. Stattnode1.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 Ereignismozvisibilitychanged
wird gesendet, wenn sich der Zustand ändert.
Full Screen API
- Unterstützung für
document.fullscreenEnabled
wurde hinzugefügt. - Die neue
:-moz-full-screen-ancestor
Eigenschaft wurde hinzugefügt. Diese ermöglicht das Abgleichen von Elementen, die Vorfahren eines Elements im Vollbildmodus sind.
Battery API
- Experimentelle Unterstützung für
navigator.mozBattery
wurde hinzugefügt (kann aktiviert werden, indem die Voreinstellungdom.battery.enabled
auftrue
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
- Firefox 10 unterstützt jetzt die
OES_standard_derivatives
Erweiterung. - Neue Voreinstellungen wurden hinzugefügt, um bei der Kompatibilitätsprüfung von WebGL-Code mit minimalfähigen Geräten auf Ihrer vollständigen Entwicklungsplattform zu helfen.
Web Workers
- Die Attribute
XMLHttpRequest.responseType
undXMLHttpRequest.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.
- 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()
löst Gecko keine Ausnahme mehr aus, sondern ignoriert ihn. - Wenn
IDBTransaction.abort()
aufgerufen wird, erhalten alle ausstehendenIDBRequest
ihrenerrorCode
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 durch die MethodeIDBFactory.open()
angegeben, die aktualisiert wurde, und deronupgradeneeded
Rückruf ermöglicht die Aktualisierung des Datenbankschemas. Die Version selbst wurde von einemDOMString
in einunsigned 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 bereitgestellt wird und die Datenbank nicht existiert, wird sie mit einer Version von1
erstellt. - Die Methode
IDBFactory.deleteDatabase()
wurde hinzugefügt. - Methoden, die über ein
IDBKeyRange
suchen (wieIDBObjectStore.openCursor
undIDBIndex.getKey
) können entweder einen einzelnen Schlüssel oder einen Schlüsselbereich akzeptieren.
Weitere Änderungen
- Wenn der richtige MIME-Typ
image/svg+xml
angegeben wird, erstellt derDOMParser
jetzt einSVGDocument
, 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
undbackface-visibility
sowie für 3D-Transformationsfunktionen in den Eigenschaftentransform
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 mitunicode-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-Eigenschaftdirection
. - Die CSS-Eigenschaften
linear-gradient()
undrepeating-linear-gradient()
wurden aktualisiert, um die neueto
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 dietext-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()
undconsole.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 auftrue
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 Voreinstellungextensions.strictCompatibility
auftrue
setzen.
XUL
- Bootstrap-Add-ons, die eine
chrome.manifest
Datei verwenden, haben jetzt die Manifestdatei automatisch registriert. Siehe den Abschnitt Hinzufügen der Benutzeroberfläche mit einem chrome.manifest für Details.
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
undnsIEditorSpellCheck
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 innsIContentViewer
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 alswindow.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.