Firefox 12 Versionshinweise für Entwickler
Firefox 12 wurde am 24. April 2012 veröffentlicht. Diese Seite fasst die Änderungen in Firefox 12 zusammen, die Entwickler betreffen. Dieser Artikel bietet Informationen über die neuen Funktionen und wichtige behobene Fehler in dieser Version sowie Links zu detaillierteren Dokumentationen sowohl für Web-Entwickler als auch für Add-on-Entwickler.
Änderungen für Webentwickler
>HTML
- Das
title-Attribut unterstützt jetzt Zeilenumbrüche, um mehrzeilige Tooltips zu ermöglichen. - Wenn JavaScript deaktiviert ist, wurde das
<canvas>-Element gerendert, anstatt wie in der Spezifikation vorgesehen, den Fallback-Inhalt anzuzeigen. Jetzt wird stattdessen der Fallback-Inhalt gerendert. - Das
crossorigin-Attribut wird jetzt auf<video>unterstützt.
CSS
- Unterstützung für die
text-align-last-Eigenschaft wurde hinzugefügt (mit Präfix).
JavaScript
- Die Unterstützung für scharfe Variablen (eine nicht standardmäßige Erweiterung von Netscape) wurde eingestellt.
ArrayBuffer.prototype.slice()wurde implementiert.
DOM
DOMParserunterstützt jetzt das Parsen von HTML-Dokumentfragmenten.XMLHttpRequestunterstützt jetzt Timeouts mit dertimeout-Eigenschaft und dem "timeout"-Ereignis sowie demontimeout-Ereignishandler auf derXMLHttpRequestEventTarget-Schnittstelle.XMLHttpRequestkann jetzt vondata:URLs laden.- Beim Herunterladen großer Datenmengen werden
XMLHttpRequest-Fortschrittsereignishandler jetzt periodisch aufgerufen, wenn derresponseTypeauf "moz-blob" gesetzt ist und die Antwort einBlobenthält, das alle bisher empfangenen Daten enthält. Dies ermöglicht es Fortschritts-Handlern, die Daten zu verarbeiten, ohne auf den vollständigen Empfang warten zu müssen. - Gecko unterstützt jetzt Multi-Touch (anstatt nur jeweils einzelne Berührungen) auf Android.
- Beim Bearbeiten von Text mit einem IME wird jetzt das
input-Ereignis gesendet, wann immer sich der Inhalt des bearbeiteten Elements geändert hat; dies geschieht nachdem dascompositionupdate-Ereignis gesendet wurde, um anzuzeigen, dass der Text des IME geändert wurde. Sie können deninput-Ereignishandler verwenden, um Änderungen am tatsächlichen Inhalt des Elements zu überwachen. DOMErrorwurde gemäß der DOM 4-Spezifikation implementiert.- Die Methode
Document.createNodeIterator()wurde aktualisiert, um der DOM4-Spezifikation zu entsprechen. Dadurch werden diewhatToShow- undfilter-Parameter optional, und der nicht standardmäßige vierte ParameterentityReferenceExpansionentfällt. - Die
slice()-Methode derBlob-Schnittstelle war von einem Fehler betroffen, der ihre ordnungsgemäße Annahme vonstart- undend-Werten außerhalb des Bereichs eines signierten 64-Bit-Ganzzahlwerts verhinderte; dies wurde behoben. - Die Methode
element.getBoundingClientRect()berücksichtigt jetzt Effekt von CSS-Transformationen bei der Berechnung des Begrenzungsrechtecks des Elements. - Die
crossOrigin-Eigenschaft wird jetzt vonHTMLMediaElementunterstützt.
Neue APIs für das Web
- Network Information API: Experimentelle Unterstützung für
window.navigator.connectionwurde hinzugefügt (mit Präfix). - WebTelephony API:
window.navigator.mozTelephonywurde implementiert und bietet Unterstützung für das Wählen, Beantworten und Verwalten von Anrufen auf einem Gerät. - WebSMS API:
window.navigator.mozSmsist jetzt für mobile Geräte verfügbar, um SMS-Nachrichten zu senden. - Screen brightness API:
window.screen.mozEnabledundwindow.screen.mozBrightnesswurden hinzugefügt, um die Bildschirmhelligkeit des Geräts zu steuern.
SVG
- Firefox implementiert jetzt die
SVGTests-DOM-API, siehe Firefox-Fehler 607854 - Die
SVGStringList-DOM-Schnittstelle unterstützt die nicht standardmäßigelength-Eigenschaft, siehe Firefox-Fehler 711958
MathML
- Um die Richtung von MathML-Formeln zu steuern, wird das
dir-Attribut jetzt auf den<math>,<mrow>und<mstyle>-Elementen sowie auf den MathML-Token-Elementen unterstützt. Dies ist besonders wichtig für einige arabische mathematische Notationen. - Das im MathML3 definierte Ausrichtungsattribut
alignwurde für<munder>,<mover>und<munderover>implementiert.
Netzwerke
- Bisher meldete Gecko den Schlusscode
CLOSE_NORMAL, wenn ein WebSocket-Kanal aufgrund eines unerwarteten Fehlers geschlossen wurde oder wenn er aufgrund einer Fehlbedingung geschlossen wurde, die die Spezifikation nicht abdeckt. Jetzt wird stattdessenCLOSE_GOING_AWAYgemeldet.
Entwicklerwerkzeuge
- Die Webkonsole speichert jetzt Fehlermeldungen und Log-Einträge, die mit
console.log()hinzugefügt wurden, wenn die Konsole derzeit nicht geöffnet ist, und zeigt diese an, wenn die Konsole geöffnet wird. - Sie können jetzt das Zoomniveau, das Verschieben und die Rotation in der 3D-Ansicht durch Drücken der "r"-Taste zurücksetzen.
- Sie können jetzt Knoten in der 3D-Ansicht ausblenden, indem Sie die "x"-Taste drücken, nachdem Sie sie ausgewählt haben.
- Der Quellcode-Editor hat mehrere neue Bearbeitungsfunktionen und Tastenkürzel; siehe Verwendung des Quellcode-Editors für Details.
Mozilla arbeitet an der Integration eigener Web-Entwicklerwerkzeuge, die das beliebte Firebug-Add-on ergänzen. Weitere Informationen über diese Werkzeuge sowie eine Liste von Ressourcen außerhalb von Firefox, die Ihnen bei Ihrer Webentwicklung helfen, finden Sie in den Werkzeugen für Webentwickler.
Verschiedene Änderungen
- Die GEOSTD8-Zeichensatz, die nie vollständig unterstützt wurde, wird nicht mehr unterstützt.
Änderungen für Mozilla- und Add-on-Entwickler
>JavaScript-Code-Module
source-editor.jsm
- Die Methode
resetUndo()wurde hinzugefügt; damit können Sie den Undo-Stack löschen. - Der Quellcode-Editor bietet jetzt Methoden zur Bereitstellung von Suchfunktionalitäten:
find(),findNext()undfindPrevious().
XUL
- Die Definition der Werte für das
chromemargin-Attribut hat sich geringfügig geändert, um es einfacher zu machen, plattformübergreifenden XUL-Code auf Plattformen mit unterschiedlichen Standardfensterrahmenbreiten gut aussehen zu lassen.
XPCOM
nsISupports-Proxies werden nicht mehr unterstützt. Stattdessen sollten Sie Runnables verwenden.- Firefox 11 hat das Verhalten von
Components.utils.getWeakReference()so geändert, dass eine Ausnahme ausgelöst wird, wenn die Objektreferenz null ist; das vorherige Verhalten des stillen Scheiterns wurde wiederhergestellt.
XPConnect
- Der
PRUint64-Datentyp war im Wesentlichen identisch mitPRint64, wenn er mit XPConnect verwendet wurde. Dies wurde behoben.
Schnittstellenänderungen
- Die
nsIScreen_MOZILLA_2_0_BRANCH-Schnittstelle wurde innsIScreenzusammengeführt. Die in dieser Schnittstelle definierten APIs (zur Steuerung der minimalen Bildschirmhelligkeit) waren zuvor nicht dokumentiert, aber jetzt sind sie es. - Die
nsIScriptError2-Schnittstelle wurde innsIScriptErrorzusammengeführt. nsIDownloadManager.addDownload()wird jetzt asynchron statt synchron gehandhabt.- Die Methode
imgIContainerObserver.frameChanged()erhält jetzt als ersten Parameter einimgIRequest-Objekt, das die entsprechende Anfrage identifiziert. - Die Methode
nsIDOMWindowUtils.sendTouchEvent()wurde hinzugefügt, um Touch-Ereignisse zu synthetisieren. - Sie können jetzt den angegebenen Inhalt so scrollen, dass er vertikal in der Mitte der Ansicht liegt, indem Sie
SCROLL_CENTER_VERTICALLYals Scroll-Konstante angeben, wenn SiensISelectionController.scrollSelectionIntoView()aufrufen. - Das neue Attribut
nsIMemoryMultiReporter.explicitNonHeapwurde hinzugefügt; dies ist eine effizientere Möglichkeit, die Summe aller Messungen des Multi-Reporters zu erhalten, die mit "explicit" beginnen undKIND_NONHEAPsind. - Das Attribut
nsIDOMWindowUtils.paintingSuppressedwurde hinzugefügt; dieser boolesche Wert zeigt an, ob das Zeichnen derzeit im Fenster unterdrückt wird oder nicht. Auf Mobilgeräten wird dies verwendet, um ein "bouncy"-Rendering zu verhindern, das auftritt, wenn der Versuch des Seitenzeichnens beginnt, bevor genügend Inhalt verfügbar ist, um ihn reibungslos darzustellen. - Die Schnittstellen
nsIDocCharsetundnsIDocumentCharsetInfowurden innsIDocShellzusammengeführt. Im Rahmen dieser Arbeit wurde das alte AttributforcedDetectorentfernt; es hat nie etwas bewirkt.
SpiderMonkey
JSThreadwurde eliminiert.JSThreadDatawurde inJSRuntimezusammengeführt.
Build
- Beim Erstellen unter Windows müssen Sie das Windows 7 SDK installiert haben.
Weitere Änderungen
- Die Editor-Komponente (bekannt als Midas) akzeptiert jetzt nur noch Ereignisse von privilegiertem Code.