Firefox 10 Versionshinweise 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 dieser Version, sowie Links zu detaillierteren Dokumentationen für Webentwickler und Add-on-Entwickler.
Hinweis: Firefox 10 ist die erste Version dieses Browsers mit zweistelligen Versionsnummern. Dies kann zu Problemen mit einigen User-Agent-Erkennungsskripten führen. Überprüfen Sie diese unbedingt, sowie auch diejenigen Skripte, die in von Ihnen eingebetteter Drittanbieter-Software enthalten sind, wie Bibliotheken. Weitere Informationen dazu finden Sie im Artikel auf hack.mozilla.org über den Wechsel zu zweistelligen Versionsnummern.
Änderungen für Webentwickler
>HTML
- Das neue HTML5
<bdi>-Element zur bi-direktionalen Isolation, das die Isolierung 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. - Es kann jetzt ein Fragment "top" für das Attribut
hrefangegeben werden, um einen Link zum Anfang der Seite zu erstellen. Dies funktionierte früher, verschwand dann eine Zeit lang und ist nun zurück, um die Kompatibilität mit dem HTML5-Standard zu gewährleisten. Zum Beispiel:<a href="#top">Zurück zum Seitenanfang</a>.
JavaScript
- Die Methode
WeakMap.set()gibt jetztundefinedzurück, anstatt sich selbst. - Ein Fehler in der Verarbeitung regulärer Ausdrücke, der in Firefox 7 eingeführt wurde, wurde behoben. Siehe Firefox-Bug 683838 für Details.
- Sie können die veraltete ECMAScript for XML (E4X) Syntax nicht mehr verwenden, während Sie sich im strict-Modus von ECMAScript 5 befinden (also nach dem Schlüsselwort
"use strict;").
DOM
DOM3-Events
- Die DOM-Event-Methode
event.stopImmediatePropagationwurde implementiert. - Die Mausereignisse
mouseenterundmouseleavewurden implementiert.
DOM4
- Das Attribut
document.xmlVersion(das nur lesbar und nicht setzbar war) wurde entfernt, da es in der DOM4-Spezifikation als veraltet gilt. Der Artikel fürdocument.xmlVersionschlägt nun eine Möglichkeit vor, um zu erkennen, ob es sich um ein HTML- oder XML-Dokument handelt, 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, also:node1 === node2.
Page Visibility API
- Die Page Visibility API wurde implementiert (mit Präfix):
document.mozHidden,document.mozVisibilityStatestehen zur Verfügung und das Ereignismozvisibilitychangedwird gesendet, wenn der Zustand geändert wird.
Full Screen API
- Unterstützung für
document.fullscreenEnabledwurde hinzugefügt. - Die neue Eigenschaft
:-moz-full-screen-ancestorwurde hinzugefügt. Damit können Sie auf Elemente abzielen, die Vorfahren eines Elements im Vollbildmodus sind.
Battery 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()löst jetzt eine Ausnahme aus, wenn eine Quelle mit null Größe angegeben wird. - Wenn Sie einen nicht-finiten Wert für einen der numerischen Parameter von
putImageData()verwenden, wird der Aufruf jetzt stillschweigend ignoriert anstatt eine Ausnahme zu werfen, in Übereinstimmung mit der Spezifikation.
WebGL
- Firefox 10 unterstützt jetzt die
OES_standard_derivativesErweiterung. - Neue Voreinstellungen wurden hinzugefügt, um zu helfen, WebGL-Code für die Kompatibilität mit minimal leistungsfähigen Geräten auf Ihrer vollständigen Entwicklungsplattform zu testen.
Web Workers
- Die Attribute
XMLHttpRequest.responseTypeundXMLHttpRequest.responsesind jetzt innerhalb von Workers verfügbar. - Der
Worker()Konstruktor akzeptiert jetzt Daten-URLs.
IndexedDB
Es wurden große Fortschritte erzielt, 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()wird in Gecko keine Ausnahme mehr ausgelöst, sondern der Parameter ignoriert. - Wenn
IDBTransaction.abort()aufgerufen wird, haben alle anhängigenIDBRequestihreerrorCodeaufABORT_ERRORgesetzt. - Die Methoden
IDBObjectStore.delete()undIDBCursor.delete()setzen jetzt dasresultAttribut des zurückgegebenenIDBRequestaufundefined. - 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 deronupgradeneededCallback ermöglicht es, das Schema der Datenbank zu aktualisieren. Die Version selbst wurde von einemDOMStringin einunsigned long longgeändert. DasIDBVersionChangeRequestInterface wurde entfernt und durch das neueIDBOpenDBRequestInterface ersetzt. - Wenn eine Datenbank mit
IDBFactory.open()geöffnet wird, wird sie, falls derversionParameter nicht angegeben ist und die Datenbank nicht existiert, mit einer Version von1erstellt. - Die Methode
IDBFactory.deleteDatabase()wurde hinzugefügt. - Methoden, die nach einem
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 ihm ein String mit SVG übergeben wird. - Früher meldete
element.setAttribute()einen Fehler, wenn ganze Zahlen nicht-numerische Zeichen enthielten (zum Beispiel "42foo"). Jetzt wird dies korrekt als die Zahl 42 gekürzt, entsprechend der Spezifikation. - Die ESC-Taste führt nicht mehr fälschlicherweise dazu, dass der
onkeydownHandler fälschlicherweise aufgerufen wird. - Das
NameListInterface wird nicht mehr implementiert; es existierte früher eine Implementierung ohne Möglichkeit, tatsächlich darauf zuzugreifen. - Die Methode
document.createProcessingInstruction()funktioniert jetzt sowohl bei HTML- als auch bei XML-Dokumenten.ProcessingInstructionKnoten 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
XMLHttpRequest-responseType"moz-json"eingeführt in Firefox 9 wurde auf den neuesten Entwurf der Spezifikation aktualisiert und ist jetzt ohne Präfix. Siehe Hinweis in Firefox-Bug 707142.
CSS
- CSS-3D-Transformationen werden jetzt unterstützt. Dazu gehört die Unterstützung für die Eigenschaften
transform-style,perspective,perspective-originundbackface-visibility, sowie für 3D-Transformationsfunktionen in den Eigenschaftentransformund<transform-function>. Weitere Informationen finden Sie unter Verwendung von CSS-Transformationen. - Zwei neue Werte für die CSS-Eigenschaft
unicode-bidiwurden hinzugefügt:-moz-isolationund-moz-plaintext. Der Wert-moz-isolationisoliert aus sicht der Richtung das Element von seiner Umgebung und ermöglicht eine unterschiedliche Richtung. Ein Element mitunicode-bidi:-moz-isolationverhält sich wie ein<bdi>Element. Das-moz-plaintextgibt dem 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 neuetoSyntax und den magic corner Algorithmus zu unterstützen. Dies ermöglicht es, eine präzise Farbe an der Ecke eines mit einem Gradienten gefüllten Feldes anzugeben. - Die Behandlung der Eigenschaft
text-overflowin Fällen, in denen das Feld auf beiden Seiten überfließt, während die Eigenschafttext-overflownur auf einer Seite eingestellt ist, wurde korrigiert. - Die Behandlung der Eigenschaft
positionbei Elementen innerhalb positionierter<table>Elemente wurde behoben. Diese Änderung wird das Layout von Seiten beeinflussen; allerdings erfüllen wir jetzt die CSS-Spezifikation und haben eine höhere Übereinstimmung mit anderen Browsern, sodass dies leicht zu beheben sein sollte. - Das Margin-Collapsing um
<table>Elemente wurde korrigiert, um der CSS-Spezifikation zu entsprechen. Zuvor wurden Margen von Tabellenelementen nicht zusammen mit anderen angrenzenden Elementen zusammengezogen, was zu einem fehlerhaften Layout führte. Diese Änderung wird das Layout von Seiten beeinflussen; allerdings erfüllen wir jetzt die CSS-Spezifikation und haben eine höhere Übereinstimmung 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 der Standardwert ist jetzt sRGB in Übereinstimmung mit der neuesten Revision der SVG 1.1-Spezifikation.
Netzwerk
- Der HTTP-Header
Accept-Charsetwird in HTTP-Anfragen nicht mehr gesendet. In seiner Abwesenheit sollten Server mit dem Senden von UTF-8 antworten.
Entwicklertools
- Das
consoleObjekt 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 Ihren Inhalten 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, lesen Sie Aktualisieren von Add-ons für Firefox 10.
Hinweis:
Der alte PRBool Datentyp wurde eingestellt! Überall in der Dokumentation, wo darauf Bezug genommen wird, wird jetzt der standardmäßige C++ bool-Typ verwendet. Die Dokumentation wird in Zukunft aktualisiert, aber vorerst sollten Sie dies bedenken.
Manifeste
- Unterstützung für
<em:strictCompatibility>wurde zum Installationsmanifest hinzugefügt. Es ermöglicht Add-on-Autoren, sich für das Überprüfen der maximalen Version ihrer Erweiterung zu entscheiden. 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 kompatibel sind, unabhängig von ihrer angegebenen maximalen Version. Dieses Flag überschreibt diese Präferenz. Sie sollten dies setzen, wenn Ihr Add-on Dinge tut, die wahrscheinlich durch Updates von Firefox beschädigt werden, aber nicht, wenn Ihr Add-on eine binäre Komponente hat, da solche Add-ons immer strikt überprüft werden (denken Sie daran, dass binäre Komponenten immer für jede größere Version von Firefox neu kompiliert werden müssen). - Wenn Sie zum alten Verhalten zurückkehren möchten – also zur strikten Kompatibilitätsprüfung für alle Add-ons, unabhängig vom Wert des
strictCompatibilityFlags in deren Manifesten, können Sie die Einstellungextensions.strictCompatibilityauftruesetzen.
XUL
- Bootstrapped Add-ons, die eine
chrome.manifestDatei verwenden, haben jetzt 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 zu
Components.utilshinzugefügt, die den Zugriff auf verschiedene debuggingbezogene Informationen gewähren.
Schnittstellenänderungen
- Die
mozISpellCheckingEngineundnsIEditorSpellCheckSchnittstellen wurden aktualisiert, um Add-ons ohne Neustart zu erlauben, Wörterbücher zum Rechtschreibprüfer hinzuzufügen. - Das Attribut
nsIBrowserHistory.lastPageVisitedwurde entfernt. - Die Schnittstelle
nsIDocumentViewerwurde innsIContentViewerintegriert. - Die Schnittstelle
nsIURIFixuphat eine neue Flagge,FIXUP_FLAG_USE_UTF8, die es ermöglicht anzugeben, dass anstelle des Plattform-Zeichensatzes UTF-8 bei Konvertierungen verwendet wird.
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 komplett entfernen zu können, aber derzeit benötigt XUL es noch zum Funktionieren. Siehe Firefox-Bug 559505 für den Fortschritt beim Entfernen der letzten Überreste der benötigten RDF Unterstützung. - Die Build-Option
--disable-smilwurde entfernt.