Firefox 10 Versionshinweise für Entwickler
Firefox 10 wurde am 31. Januar 2012 veröffentlicht. Dieser Artikel bietet Informationen über die neuen Funktionen und behobenen Hauptfehler in dieser Version sowie Links zu detaillierterer Dokumentation für Webentwickler und Add-on-Entwickler.
Hinweis: Firefox 10 ist die erste Version dieses Browsers mit zweistelliger Versionsnummer. Dies kann zu Problemen mit einigen UA-Sniffing-Skripten führen. Überprüfen Sie diese und auch diejenigen, die in von Ihnen eingebetteter Drittanbieter-Software, wie Bibliotheken, enthalten sind. Für weitere Informationen hierzu, lesen Sie den Artikel über zweistellige Versionsnummern von Firefox 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, wenn Text mit unbekannter Richtung angezeigt wird, der z.B. aus einer Datenbank stammt, inmitten von Text mit bekannter, und möglicherweise anderer, Richtung. - Sie können jetzt einen Fragment "top" für das
href-Attribut angeben, um einen Link zum oberen Rand der Seite zu erstellen. Dies funktionierte früher, verschwand dann eine Weile und ist nun zurück, um mit der HTML5-Spezifikation kompatibel zu sein. Beispiel:<a href="#top">Return to top of page</a>.
JavaScript
- Die Methode
WeakMap.set()gibt jetztundefinedzurück, anstatt sich selbst. - Ein Fehler in der regulären Ausdrucksverarbeitung, der in Firefox 7 eingeführt wurde, wurde behoben. Siehe Firefox Bug 683838 für weitere Details.
- Sie können die veraltete ECMAScript für XML (E4X)-Syntax nicht mehr im ECMAScript 5 Strict Mode verwenden (das heißt, nach
"use strict;").
DOM
DOM3 Events
- Die DOM-Ereignismethode
event.stopImmediatePropagationwurde implementiert. - Die Mausereignisse
mouseenterundmouseleavewurden implementiert.
DOM4
- Das Attribut
document.xmlVersion(das nur abfragbar und nicht setzbar war) wurde entfernt, da es in der DOM4-Spezifikation als veraltet gilt. Der Artikel zudocument.xmlVersionschlägt nun eine Methode vor, um zu erkennen, ob das Dokument HTML oder XML ist, ohne diese Eigenschaft zu verwenden. - Das Attribut
document.xmlStandalonewurde entfernt, da es in der DOM4-Spezifikation als veraltet gilt. - Das Attribut
document.xmlEncodingwurde entfernt, da es in der DOM4-Spezifikation als veraltet gilt. - Das Attribut
text.isElementContentWhiteSpacewurde entfernt, da es in der DOM4-Spezifikation als veraltet gilt. - Die Methode
text.replaceWholeTextwurde entfernt, da sie in der DOM4-Spezifikation als veraltet gilt. - Die Methode
node.isSameNodewurde entfernt, da sie in der DOM4-Spezifikation als veraltet gilt. 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.mozVisibilityStatesind verfügbar und das Ereignismozvisibilitychangedwird ausgelöst, wenn der Zustand geändert wird.
Vollbild-API
- Unterstützung für
document.fullscreenEnabledwurde hinzugefügt. - Die neue Eigenschaft
:-moz-full-screen-ancestorwurde hinzugefügt. Damit können Sie gegen Elemente übereinstimmen, die Vorfahren eines Elements im Vollbildmodus sind.
Batterie-API
- Experimentelle Unterstützung für
navigator.mozBatterywurde hinzugefügt (kann aktiviert werden durch Setzen der Einstellungdom.battery.enabledauftrueund wird standardmäßig ab Firefox 11 aktiviert sein).
Canvas
- Die Methode
createPattern()wirft jetzt eine Ausnahme, 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 zu werfen, entsprechend der Spezifikation.
WebGL
- Firefox 10 unterstützt jetzt die Erweiterung
OES_standard_derivatives. - Neue Einstellungen wurden hinzugefügt, um den Test von WebGL-Code auf Kompatibilität mit minimal-fähigen Geräten auf Ihrer vollständigen Entwicklungsplattform zu unterstützen.
Web Workers
- Die Attribute
XMLHttpRequest.responseTypeundXMLHttpRequest.responsesind jetzt innerhalb von Workers verfügbar. - Der
Worker()-Konstruktor akzeptiert nun Daten-URLs.
IndexedDB
Es wurden erhebliche Fortschritte gemacht, 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. - Bei unbekannten optionalen Parametern in
IDBObjectStore.createIndex()oderIDBDatabase.createObjectStore()löst Gecko keine Ausnahme mehr aus, sondern ignoriert sie. - Wenn
IDBTransaction.abort()aufgerufen wird, haben alle ausstehendenIDBRequestihreerrorCodeaufABORT_ERRORgesetzt. - Die Methoden
IDBObjectStore.delete()undIDBCursor.delete()setzen jetzt dasresult-Attribut des zurückgegebenenIDBRequestaufundefined. - Die Methode
IDBDatabase.setVersion()wurde entfernt, da sie aus der neuesten Spezifikation entfernt wurde. Die Version der Datenbank wird über die MethodeIDBFactory.open()angegeben, die aktualisiert wurde, und deronupgradeneededRückruf ermöglicht die Aktualisierung des Datenbankschemas. Die Version selbst wurde von einemDOMStringzu einemunsigned long longgeändert. Die SchnittstelleIDBVersionChangeRequestwurde entfernt und durch die neue SchnittstelleIDBOpenDBRequestersetzt. - Beim Öffnen einer Datenbank mit
IDBFactory.open(), wenn derversion-Parameter nicht angegeben und die Datenbank nicht existiert, wird sie mit der Version1erstellt. - 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 Zeichenkette mit SVG angegeben wird. - In der Vergangenheit, wenn
element.setAttribute()Ganzzahlen analysierte, berichtete es über einen Fehler, wenn die Ganzzahl nicht-numerische Zeichen enthielt (z. B. "42foo"). Jetzt wird dies gemäß der Spezifikation korrekt als Nummer 42 gekürzt. - 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 Möglichkeit, tatsächlich auf eine zuzugreifen. - Die Methode
document.createProcessingInstruction()funktioniert jetzt sowohl bei HTML-Dokumenten 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 bei HTML-Dokumenten erstellen zu können. - Der
XMLHttpRequestresponseType"moz-json"eingeführt in Firefox 9 wurde auf den neuesten Entwurf der Spezifikation aktualisiert und wurde das Präfix entfernt. Siehe Hinweis im Firefox Bug 707142.
CSS
- CSS 3D-Transformationen werden jetzt unterstützt. Dazu gehört die Unterstützung der Eigenschaften
transform-style,perspective,perspective-originundbackface-visibility, sowie für 3D-Transformationsfunktionen in den Eigenschaftentransformund<transform-function>. Siehe Verwendung von CSS-Transformationen für Details. - Zwei neue Werte für die CSS-Eigenschaft
unicode-bidiwurden hinzugefügt:-moz-isolationund-moz-plaintext. Der Wert-moz-isolationisoliert das Element aus Richtungsaspekten von seiner Umgebung, sodass es eine andere Richtung haben kann. Ein Element mitunicode-bidi:-moz-isolationverhält sich wie ein<bdi>-Element. Der Wert-moz-plaintextgibt dem Browser vor, 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 auf die Ecke eines gradienten-gefüllten Kastens zu geben. - Die Behandlung der Eigenschaft
text-overflowin Fällen, in denen der Kasten auf beiden Seiten überläuft, während die Eigenschafttext-overflownur auf einem festgelegt ist, wurde korrigiert. - Die Behandlung der Eigenschaft
positionauf Elementen innerhalb positionierter<table>-Elemente wurde behoben. Diese Änderung wird das Layout von Seiten beeinflussen. Allerdings entsprechen wir jetzt der CSS-Spezifikation und anderen Browsern, daher sollte dies leicht zu beheben sein. - Das Zusammenbrechen von Rändern um
<table>-Elemente wurde korrigiert, um der CSS-Spezifikation zu entsprechen. Zuvor wurden die Ränder von Tabellenelementen nicht zusammen mit anderen angrenzenden Elementen zusammengebrochen, was zu einem falschen Layout führte. Diese Änderung wird das Layout von Seiten beeinflussen. Allerdings entsprechen wir jetzt der CSS-Spezifikation und anderen Browsern, daher sollte dies leicht zu beheben sein.
SVG
- Das
<mask>-Element wurde aktualisiert, um sowohl sRGB als auch linearRGB zu unterstützen und verwendet jetzt standardmäßig sRGB, entsprechend der neuesten Überarbeitung der SVG 1.1-Spezifikation.
Netzwerk
- Der HTTP-Header
Accept-Charsetwird in HTTP-Anfragen nicht mehr gesendet. In seiner 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 zu setzen. - Der neue Page Inspector wurde hinzugefügt und bietet eine ausgezeichnete Möglichkeit, das HTML und CSS hinter Ihren Inhalten zu untersuchen und zu manipulieren.
Änderungen für Mozilla- und Add-on-Entwickler
Für einen Überblick über potenzielle Probleme, die beim Aktualisieren Ihrer Add-ons zur Unterstützung von Firefox 10 auftreten können, lesen Sie Aktualisieren von Add-ons für Firefox 10.
Hinweis:
Der alte PRBool-Datentyp wurde eingestellt! Überall in der Dokumentation, die darauf verweist, wird jetzt der standardmäßige C++ bool-Typ verwendet. Die Dokumentation wird in Zukunft aktualisiert, aber behalten Sie dies vorerst im Hinterkopf.
Manifeste
- Unterstützung für
<em:strictCompatibility>wurde dem Installationsmanifest hinzugefügt. Es ermöglicht Add-on-Autoren, sich dafür zu entscheiden, 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 unabhängig von ihrer angegebenen maximalen Version kompatibel sind. Dieses Flag überschreibt diese Einstellung. Sie sollten dies setzen, wenn Ihr Add-on Dinge tut, die wahrscheinlich durch Firefox-Updates unterbrochen werden, aber nicht, wenn Ihr Add-on eine binäre Komponente enthält, da solche Add-ons immer strikt geprü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 vom Wert des
strictCompatibility-Flags in ihren Manifesten, können Sie die Einstellungextensions.strictCompatibilityauftruesetzen.
XUL
- Bootstrap-Add-ons, die eine
chrome.manifest-Datei verwenden, haben jetzt die Manifestdatei automatisch registriert. Siehe den Abschnitt Hinzufügen einer Benutzeroberfläche mit einem chrome.manifest für Details.
XPConnect
- Mehrere neue Eigenschaften und Methoden wurden zu
Components.utilshinzugefügt, die Zugriff auf verschiedene debuggingbezogene Informationen gewähren.
Schnittstellenänderungen
- Die Schnittstellen
mozISpellCheckingEngineundnsIEditorSpellCheckwurden aktualisiert, um restartrtlose Add-ons zu ermöglichen, Wörterbücher zum Rechtschreibprüfer hinzuzufügen. - Das Attribut
nsIBrowserHistory.lastPageVisitedwurde entfernt. - Die Schnittstelle
nsIDocumentViewerwurde innsIContentViewerzusammengeführt. - Die Schnittstelle
nsIURIFixuphat ein neues Flag,FIXUP_FLAG_USE_UTF8, welches es Ihnen ermöglicht, es zu verwenden, um UTF-8 anstelle des Plattform-Zeichensatzes für Konvertierungen zu verwenden.
Plug-in-Änderungen
- Die neue Variable
NPNVdocumentOriginwurde hinzugefügt; diese gibt den Dokumentursprung zurück und ist sicherer alswindow.location.
Änderungen am Build-System
- 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 noch ihre Funktion. Siehe Firefox Bug 559505 für Fortschritte beim Entfernen der letzten Überreste von RDF, die benötigt werden. - Die Build-Option
--disable-smilwurde entfernt.