Firefox 10 Versionshinweise für Entwickler
Firefox 10 wurde am 31. Januar 2012 veröffentlicht. Dieser Artikel bietet Informationen über die neuen Funktionen und wichtige behobene Fehler in dieser Version sowie Links zu detaillierterer Dokumentation für Webentwickler und Add-on-Entwickler.
Hinweis: Firefox 10 ist die erste Veröffentlichung dieses Browsers mit zwei Ziffern. Dies kann zu Problemen mit einigen UA-Sniffing-Skripten führen. Stellen Sie sicher, dass Sie diese prüfen, ebenso wie solche, die in Drittherstellersoftware eingebettet sind, wie Bibliotheken. Für weitere Informationen dazu sehen Sie sich den Artikel "Firefox goes 2-digit" auf hack.mozilla.org an.
Änderungen für Webentwickler
>HTML
- Das neue HTML5-Element
<bdi>, bidirektionale Isolation, das die Isolierung von Textteilen mit unterschiedlicher Richtung erlaubt, wurde implementiert. Dies ist besonders nützlich beim Anzeigen von Text mit unbekannter Richtung, zum Beispiel aus einer Datenbank, in der Mitte eines Textes mit bekannter, aber möglicherweise anderer Richtung. - Sie können nun ein Fragment „top“ für das Attribut
hrefangeben, um einen Link zum Anfang der Seite zu erstellen. Dies funktionierte früher, verschwand dann eine Weile, und ist jetzt aus Kompatibilitätsgründen mit der HTML5-Spezifikation wieder da. Zum Beispiel:<a href="#top">Zum Seitenanfang</a>.
JavaScript
- Die Methode
WeakMap.set()gibt jetztundefinedzurück, anstatt sich selbst. - In Firefox 7 wurde ein Fehler bei der Verarbeitung von regulären Ausdrücken eingeführt; dieser wurde behoben. Weitere Details finden Sie im Firefox-Bug 683838.
- Sie können die veraltete ECMAScript for XML (E4X) Syntax nicht mehr verwenden, während Sie sich im ECMAScript 5 Strikten Modus befinden (das heißt, nach
"use strict;").
DOM
DOM3 Events
- Die DOM-Event-Methode
event.stopImmediatePropagationwurde implementiert. - Die Mausereignisse
mouseenterundmouseleavewurden implementiert.
DOM4
- Das Attribut
document.xmlVersion(das nur gelesen und nicht gesetzt werden konnte) wurde entfernt, da es in der DOM4-Spezifikation als veraltet gilt. Der Artikel zudocument.xmlVersionschlägt nun einen Weg 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. Anstattnode1.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 gesendet, wenn sich der Status ändert.
Full Screen API
- Unterstützung für
document.fullscreenEnabledwurde hinzugefügt. - Die neue Eigenschaft
:-moz-full-screen-ancestorwurde hinzugefügt. Diese ermöglicht es, Elemente zu bestimmen, die Vorfahren eines Elements im Vollbildmodus sind.
Battery API
- Experimentelle Unterstützung für
navigator.mozBatterywurde hinzugefügt (kann durch Setzen der Einstellungdom.battery.enabledauftrueaktiviert werden und wird standardmäßig ab Firefox 11 aktiviert sein).
Canvas
- Die Methode
createPattern()wirft nun eine Ausnahme, wenn ein Null-Pixel-Quell-Canvas angegeben wird. - Wenn Sie einen nicht-endlichen Wert für einen der numerischen Parameter von
putImageData()verwenden, wird der Aufruf nun stillschweigend ignoriert, anstatt eine Ausnahme auszulösen, gemäß der Spezifikation.
WebGL
- Firefox 10 unterstützt nun die
OES_standard_derivativesErweiterung. - Neue Einstellungen wurden hinzugefügt, um das Testen von WebGL-Code auf Kompatibilität mit minimal ausgestatteten Geräten auf Ihrer vollen Entwicklungsplattform zu erleichtern.
Web Workers
- Das Attribut
XMLHttpRequest.responseTypeundXMLHttpRequest.responsesind nun innerhalb von Workers verfügbar. - Der
Worker()Konstruktor akzeptiert jetzt Daten-URLs.
IndexedDB
Es wurden große Fortschritte gemacht, um IndexedDB auf die neueste Entwurfsspezifikation zu aktualisieren. Diese Arbeit wird in Firefox 11 fortgesetzt.
- Die Methoden
IDBIndex.count()undIDBObjectStore.count()wurden hinzugefügt. - Die Methode
IDBCursor.advance()wurde hinzugefügt. - Wenn optional unbekannte Parameter in
IDBObjectStore.createIndex()oderIDBDatabase.createObjectStore()auftritt, wird Gecko keine Ausnahme mehr auslösen, sondern diese ignorieren. - Wenn
IDBTransaction.abort()aufgerufen wird, haben alle ausstehendenIDBRequestihrenerrorCodeaufABORT_ERRORgesetzt. - Die Methoden
IDBObjectStore.delete()undIDBCursor.delete()setzen nun dasresultAttribut der 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 deronupgradeneededRückruf ermöglicht es, das Schema der Datenbank zu aktualisieren. Die Version selbst wurde von einemDOMStringin einunsigned long longgeändert. DieIDBVersionChangeRequestSchnittstelle wurde entfernt und durch die neueIDBOpenDBRequestSchnittstelle ersetzt. - Wenn eine Datenbank mit
IDBFactory.open()geöffnet wird und derversionParameter nicht bereitgestellt wird und die Datenbank nicht existiert, wird sie mit einer Version von1erstellt. - Die Methode
IDBFactory.deleteDatabase()wurde hinzugefügt. - Methoden, die über einen
IDBKeyRangesuchen (wieIDBObjectStore.openCursorundIDBIndex.getKey) können entweder einen einzelnen Schlüssel oder Schlüsselbereich akzeptieren.
Weitere Änderungen
- Wenn der korrekte MIME-Typ übergeben wird,
image/svg+xml, erzeugt derDOMParsernun einSVGDocument, wenn ihm ein String mit SVG übergeben wird. - In der Vergangenheit würde
element.setAttribute(), wenn es Ganzzahlen analysierte, einen Fehler melden, wenn die Ganzzahl nicht-numerische Zeichen enthielt (zum Beispiel "42foo"). Jetzt kürzt es dies korrekt als die Zahl 42 gemäß der Spezifikation. - Die ESC-Taste führt nicht mehr fälschlicherweise dazu, dass der
onkeydownHandler fälschlicherweise aufgerufen wird. - Die
NameListSchnittstelle wird nicht mehr implementiert; sie hatte zuvor eine Implementierung ohne Möglichkeit, tatsächlich auf eine zuzugreifen. - Die Methode
document.createProcessingInstruction()funktioniert jetzt sowohl für HTML- als auch XML-Dokumente.ProcessingInstructionKnoten werden weiterhin nur für XML-Dokumente unterstützt, aber da Knoten zwischen Dokumenten verschoben werden können, ist es hilfreich, sie auch in HTML-Dokumenten erstellen zu können. - Der
XMLHttpRequestTyp"moz-json"eingeführt in Firefox 9 wurde auf den neuesten Entwurf der Spezifikation aktualisiert und das Präfix wurde entfernt. Sehen Sie Anmerkungen im 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 im Verwenden von CSS-Transformationen. - Zwei neue Werte für die CSS-Eigenschaft
unicode-bidiwurden hinzugefügt:-moz-isolationund-moz-plaintext. Der-moz-isolationWert isoliert das Element bezüglich der Richtung von seiner Umgebung, sodass es eine andere Richtung haben kann. Ein Element mitunicode-bidi:-moz-isolationverhält sich wie ein<bdi>Element. Der-moz-plaintextweist den Browser an, die Unicode-Browser-Heuristik zu verwenden, um die Richtung zu bestimmen 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 einer Ecke eines mit einem Farbverlauf gefüllten Kastens anzugeben. - Das Verhalten der CSS-Eigenschaft
text-overflowbei Fällen, in denen das Kästchen auf beiden Seiten überläuft, während dietext-overflowEigenschaft nur für eine Seite eingestellt ist, wurde korrigiert. - Das Verhalten der CSS-Eigenschaft
positionfür Elemente innerhalb von positionierten<table>Elementen wurde korrigiert. Diese Änderung wird das Layout von Seiten beeinflussen; allerdings sind wir jetzt konform mit der CSS-Spezifikation und mit anderen Browsern, daher sollte dies leicht zu beheben sein. - Das Zusammenfallen der Ränder um
<table>Elemente wurde korrigiert, um der CSS-Spezifikation zu entsprechen. Zuvor würden die Ränder von Tabellenelementen nicht zusammenfallen mit denen anderer angrenzender Elemente, was zu falschen Layouts führte. Diese Änderung wird das Layout von Seiten beeinflussen; allerdings sind wir jetzt konform mit der CSS-Spezifikation und mit 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 entspricht jetzt sRGB, gemäß der neuesten Revision der SVG 1.1 Spezifikation.
Netzwerke
- Der HTTP-Header
Accept-Charsetwird in HTTP-Anfragen nicht mehr gesendet. In seiner Abwesenheit sollten Server mit UTF-8 antworten.
Entwicklerwerkzeuge
- Das
consoleObjekt hat zwei neue Methoden,console.time()undconsole.timeEnd(), die zum Setzen von Timern auf einer Seite verwendet werden können. - Der neue Seiteninspektor wurde hinzugefügt und bietet eine hervorragende Möglichkeit, den HTML- und CSS-Code 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, 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 jetzt der Standard-C++ bool Typ verwendet. Die Dokumentation wird in Zukunft aktualisiert, aber behalten Sie dies vorerst im Kopf.
Manifeste
- Unterstützung für
<em:strictCompatibility>wurde zum Installationsmanifest hinzugefügt. Es ermöglicht Add-on-Autoren, die Überprüfung der maximalen Version ihrer Erweiterung zu aktivieren. Wenn auftruegesetzt, 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. Dieses Flag überschreibt diese Voreinstellung. Sie sollten dies setzen, wenn Ihr Add-on Dinge tut, die wahrscheinlich durch Firefox-Updates beeinträchtigt werden, 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 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
strictCompatibilityFlags in ihren Manifesten, können Sie die Einstellungextensions.strictCompatibilityauftruesetzen.
XUL
- Bootstrap-Add-ons, die eine
chrome.manifestDatei 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.utilshinzugefügt, die Zugriff auf verschiedene debugging-relevante Informationen gewähren.
Schnittstellenänderungen
- Die Schnittstellen
mozISpellCheckingEngineundnsIEditorSpellCheckwurden aktualisiert, um neustartlose Add-ons zu ermöglichen, dem Rechtschreibprüfer Wörterbücher hinzuzufügen. - Das Attribut
nsIBrowserHistory.lastPageVisitedwurde entfernt. - Die Schnittstelle
nsIDocumentViewerwurde innsIContentViewerintegriert. - Die
nsIURIFixupSchnittstelle hat ein neues Flag,FIXUP_FLAG_USE_UTF8, mit dem Ihnen mitgeteilt werden kann, dass UTF-8 anstelle des Plattform-Zeichensatzes bei Konvertierungen verwendet werden soll.
Plugin-Änderungen
- Die neue Variable
NPNVdocumentOriginwurde hinzugefügt; diese gibt den Ursprung des Dokuments 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, derzeit erfordert XUL sie jedoch noch. Siehe Firefox-Bug 559505 für Fortschritte beim Entfernen der letzten Reste von RDF, die erforderlich sind. - Die Build-Option
--disable-smilwurde entfernt.