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 für sowohl Webentwickler als auch Erweiterungsentwickler.
Hinweis: Firefox 10 ist die erste Version dieses Browsers mit zwei Ziffern. Dies kann zu Problemen mit einigen User-Agent-Erkennungsskripten führen. Überprüfen Sie diese sowie solche, die in Drittanbieter-Software enthalten sind, die Sie auf Ihren Seiten einbetten, wie Bibliotheken. Weitere Informationen dazu finden Sie im Artikel "Firefox goes 2-digit" auf hack.mozilla.org.
Änderungen für Webentwickler
HTML
- Das neue HTML5-Element
<bdi>
für bidirektionale Isolation, das die Isolation von Textteilen mit unterschiedlicher Richtung ermöglicht, wurde implementiert. Dies ist besonders nützlich, wenn Text mit unbekannter Richtung, beispielsweise aus einer Datenbank, inmitten von Text mit bekannter und möglicherweise unterschiedlicher Richtung 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 zuvor, war eine Weile nicht verfügbar und ist jetzt zurück, um mit der HTML5-Spezifikation kompatibel zu sein. Zum Beispiel:<a href="#top">Zurück nach oben</a>
.
JavaScript
- Die Methode
WeakMap.set()
gibt nunundefined
zurück, anstatt sich selbst. - Ein Fehler in der Regulären Ausdrucksverarbeitung, der in Firefox 7 eingeführt wurde, wurde behoben. Siehe Firefox-Bug 683838, wenn Sie die genauen Details wissen möchten.
- Sie können die veraltete EcmaScript für XML (E4X)-Syntax nicht mehr im ECMAScript 5 Strict-Modus verwenden (also nach
"use strict;"
).
DOM
DOM3 Ereignisse
- Die DOM-Ereignismethode
event.stopImmediatePropagation
wurde implementiert. - Die Mausereignisse
mouseenter
undmouseleave
wurden implementiert.
DOM4
- Das Attribut
document.xmlVersion
(das nur abrufbar und nicht setzbar 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, 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 der Status geändert wird.
Vollbild-API
- Unterstützung für
document.fullscreenEnabled
wurde hinzugefügt. - Die neue Eigenschaft
:-moz-full-screen-ancestor
wurde hinzugefügt. Dies ermöglicht Ihnen, Übereinstimmungen mit Elementen zu finden, die Vorfahren eines Elements im Vollbildmodus sind.
Batterie-API
- Experimentelle Unterstützung für
navigator.mozBattery
wurde hinzugefügt (kann aktiviert werden, indem die Einstellungdom.battery.enabled
auftrue
gesetzt wird 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 Sie einen nicht-finiten Wert für eines der numerischen Parameter für
putImageData()
verwenden, wird der Aufruf nun stillschweigend ignoriert, anstatt eine Ausnahme zu werfen, gemäß der Spezifikation.
WebGL
- Firefox 10 unterstützt jetzt 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
Worker()
Konstruktor akzeptiert jetzt Daten-URLs.
IndexedDB
Große Fortschritte wurden gemacht, um IndexedDB auf die neueste Entwurfsspezifikation 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. - Wenn ein unbekannter optionaler Parameter in
IDBObjectStore.createIndex()
oderIDBDatabase.createObjectStore()
auftritt, wird Gecko keine Ausnahme mehr herbeiführen, sondern es ignorieren. - Wenn
IDBTransaction.abort()
aufgerufen wird, haben alle ausstehendenIDBRequest
ihrenerrorCode
aufABORT_ERROR
gesetzt. - Die Methoden
IDBObjectStore.delete()
undIDBCursor.delete()
setzen jetzt dasresult
Attribut des 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()
bereitgestellt, die aktualisiert wurde, und deronupgradeneeded
Rückruf ermöglicht das Aktualisieren des Datenbankschemas. Die Version selbst wurde von einemDOMString
zu einemunsigned 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 einen
IDBKeyRange
suchen (wieIDBObjectStore.openCursor
undIDBIndex.getKey
) können entweder einen einzelnen Schlüssel oder einen Schlüsselbereich akzeptieren.
Sonstiges
- Beim Übergeben des richtigen MIME-Typs
image/svg+xml
, erzeugt derDOMParser
jetzt einSVGDocument
bei einer Zeichenkette mit SVG. - Früher, wenn
element.setAttribute()
Ganzzahlen analysierte, wurde ein Fehler gemeldet, wenn die Ganzzahl nicht-numerische Zeichen enthielt (z.B. "42foo"). Jetzt wird dies korrekt als die Zahl 42 gekürzt, 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 darauf zuzugreifen. - Die Methode
document.createProcessingInstruction()
funktioniert jetzt sowohl in HTML- als auch in XML-Dokumenten.ProcessingInstruction
Knoten werden weiterhin 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 wurde entfernt. Siehe Anmerkung in Firefox-Bug 707142.
CSS
- CSS 3D-Transformationen werden jetzt unterstützt. Dies umfasst Unterstützung für die Eigenschaften
transform-style
,perspective
,perspective-origin
undbackface-visibility
sowie für 3D-Transformationsfunktionen in den Eigenschaftentransform
und<transform-function>
. Details siehe 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, aus Sicht der Richtung, 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. Der Wert-moz-plaintext
gibt dem Browser an, die Unicode-Browserheuristik 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 an der Ecke eines mit Farbverlauf gefüllten Kastens anzugeben. - Die Handhabung der
text-overflow
Eigenschaft in Fällen, in denen der Kasten auf beiden Seiten überläuft, während dietext-overflow
Eigenschaft nur auf einer Seite eingestellt ist, wurde korrigiert. - Das Verhalten der
position
Eigenschaft bei Elementen innerhalb positionierter<table>
Elemente wurde behoben. Diese Änderung wird das Layout von Seiten beeinflussen; jedoch entsprechen wir jetzt der CSS-Spezifikation und mit anderen Browsern, sodass dies leicht zu beheben sein sollte. - Die Zusammenlegung von Randbereichen um
<table>
Elemente wurde zur Anpassung an die CSS-Spezifikation behoben. Zuvor wurden die Ränder von Tabellenelementen nicht zusammengelegt mit anderen angrenzenden Elementen, was zu einem fehlerhaften Layout führte. Diese Änderung wird das Layout von Seiten beeinflussen; jedoch entsprechen wir jetzt der CSS-Spezifikation und mit 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, gemäß der neuesten Revision der SVG 1.1 Spezifikation.
Netzwerk
-
Der HTTP-Header
Accept-Charset
wird in HTTP-Anfragen nicht mehr gesendet. In dessen Abwesenheit sollten Server mit dem Senden von 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 Page Inspector wurde hinzugefügt, der eine hervorragende 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 wahrscheinliche 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 entfernt! Ü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 behalten Sie dies im Hinterkopf.
Manifeste
- Unterstützung für
<em:strictCompatibility>
wurde zum Installationsmanifest hinzugefügt. Dadurch können Add-on-Autoren die maximale Version ihrer Erweiterung überprüfen. Wenn auftrue
gesetzt, wird das Add-on deaktiviert, wenn die Anwendungsversion größer als<em:maxVersion>
ist. Firefox 10 hat standardmäßig kompatible Add-ons, unabhängig von ihrer angegebenen maximalen Version. Dieses Flag überschreibt diese Voreinstellung. Sie sollten dies setzen, wenn Ihr Add-on Dinge tut, die durch Firefox-Updates wahrscheinlich unterbrochen 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 wichtige 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 vom Wert des
strictCompatibility
Flags in ihren Manifesten, können Sie die Einstellungextensions.strictCompatibility
auftrue
setzen.
XUL
- Bootstrap-Add-ons, die eine
chrome.manifest
Datei verwenden, haben nun die Manifestdatei automatisch registriert. Siehe den Abschnitt Hinzufügen einer Benutzeroberfläche mit einer chrome.manifest für Details.
XPConnect
- Mehrere neue Eigenschaften und Methoden wurden
Components.utils
hinzugefügt, um den Zugriff auf verschiedene debugbezogene Informationen zu gewähren.
Interface-Änderungen
- Die
mozISpellCheckingEngine
undnsIEditorSpellCheck
Schnittstellen wurden aktualisiert, um Add-ons ohne Neustart zu ermöglichen, Wörterbücher zum Rechtschreibprüfer hinzuzufügen. - Das Attribut
nsIBrowserHistory.lastPageVisited
wurde entfernt. - Die
nsIDocumentViewer
Schnittstelle wurde innsIContentViewer
zusammengeführt. - Die
nsIURIFixup
Schnittstelle hat eine neue Flagge,FIXUP_FLAG_USE_UTF8
, die Ihnen erlaubt, ihr mitzuteilen, UTF-8 statt des Plattform-Zeichensatzes zu verwenden, wenn Konvertierungen durchgeführt werden.
Plug-in Änderungen
- Die neue Variable
NPNVdocumentOrigin
wurde hinzugefügt; diese gibt den Dokumentenursprung zurück und ist sicherer alswindow.location
.
Änderungen am Build-System
- Die
--disable-rdf
Build-Option, die es tatsächlich unmöglich machte, erfolgreich zu bauen, wurde entfernt. Es wird daran gearbeitet, RDF-Unterstützung vollständig zu entfernen, aber derzeit benötigt XUL es noch, um zu funktionieren. Siehe Firefox-Bug 559505 für den Fortschritt bei der Entfernung der letzten RDF-Reste, die erforderlich sind. - Die
--disable-smil
Build-Option wurde entfernt.