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 Webentwickler 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 statt des Fallback-Inhalts gemäß der Spezifikation gerendert. 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
- Unterstützung für scharfe Variablen (eine nicht standardisierte Netscape-Erweiterung) wurde entfernt.
ArrayBuffer.prototype.slice()wurde implementiert.
DOM
DOMParserunterstützt jetzt das Parsen von HTML-Dokumentfragmenten.XMLHttpRequestunterstützt jetzt Timeouts unter Verwendung dertimeout-Eigenschaft und des "timeout"-Ereignisses sowie denontimeout-Ereignishandler auf derXMLHttpRequestEventTarget-Schnittstelle.XMLHttpRequestkann nun vondata:URLs laden.- Beim Herunterladen großer Datenmengen werden die Fortschritts-Event-Handler von
XMLHttpRequestjetzt regelmäßig aufgerufen, wennresponseTypeauf "moz-blob" gesetzt ist und die Antwort einBlobenthält, das alle bisher erhaltenen Daten enthält. Dadurch können Fortschrittshandler mit der Verarbeitung von Daten beginnen, ohne darauf warten zu müssen, dass alles angekommen ist. - Gecko unterstützt jetzt Multi-Touch (anstatt nur einzelne Berührungen gleichzeitig) auf Android.
- Während der Bearbeitung von Text mit einem IME wird das
input-Event jetzt immer gesendet, wenn der Inhalt des bearbeiteten Elements geändert wurde; dies geschieht nach demcompositionupdate-Event, um anzuzeigen, dass der Text des IME geändert wurde. Sie können daher deninput-Event-Handler verwenden, um Änderungen am tatsächlichen Inhalt des Elements zu überwachen. DOMErrorwie im DOM 4-Spezifikation definiert, wurde implementiert.- Die
Document.createNodeIterator()-Methode wurde aktualisiert, um der DOM4-Spezifikation zu entsprechen. Dadurch werden die ParameterwhatToShowundfilteroptional und der nicht standardisierte vierte ParameterentityReferenceExpansionentfernt. - Die Methode
slice()desBlob-Interfaces war von einem Fehler betroffen, der verhinderte, dass siestart- undend-Werte außerhalb des Bereichs eines vorzeichenbehafteten 64-Bit-Integers korrekt akzeptierte; dies wurde behoben. - Die Methode
element.getBoundingClientRect()berücksichtigt jetzt die Auswirkungen von CSS-Transformationen beim Berechnen des Begrenzungsrechtecks des Elements. - Die
crossOrigin-Eigenschaft wird jetzt vonHTMLMediaElementunterstützt.
Neue WebAPIs
- 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, Annehmen und Verwalten von Telefonanrufen auf einem Gerät. - WebSMS API:
window.navigator.mozSmsist jetzt für mobile Geräte verfügbar, um SMS-Nachrichten zu senden. - Bildschirmhelligkeit API:
window.screen.mozEnabledundwindow.screen.mozBrightnesswurden hinzugefügt, um den Bildschirm des Geräts zu steuern.
SVG
- Firefox implementiert jetzt die
SVGTestsDOM API, siehe Firefox Bug 607854 - Die
SVGStringListDOM-Schnittstelle unterstützt die nicht standardisiertelength-Eigenschaft siehe Firefox Bug 711958
MathML
- Um die Ausrichtung von MathML-Formeln zu steuern, wird das
dir-Attribut jetzt auf den Elementen<math>,<mrow>und<mstyle>sowie auf MathML Token Elements unterstützt. Dies ist besonders wichtig für einige arabische mathematische Notationen. - Das in MathML3 definierte Ausrichtungsattribut
alignwurde für<munder>,<mover>und<munderover>implementiert.
Netzwerk
- Zuvor meldete Gecko den Schließcode
CLOSE_NORMAL, wenn ein WebSocket-Kanal aufgrund eines unerwarteten Fehlers geschlossen wurde oder wenn er aufgrund einer Fehlersituation, die die Spezifikation nicht abdeckt, geschlossen wurde. Jetzt wird stattdessenCLOSE_GOING_AWAYgemeldet.
Entwickler-Tools
- Die Web-Konsole speichert jetzt Fehlermeldungen und Log-Einträge, die mit
console.log()hinzugefügt wurden, wenn die Konsole nicht geöffnet ist, und zeigt sie an, wenn die Konsole geöffnet wird. - Sie können nun die Zoomstufe, das Verschieben und die Drehung in der 3D-Ansicht zurücksetzen, indem Sie die "r"-Taste drücken.
- Sie können nun Knoten in der 3D-Ansicht ausblenden, indem Sie die "x"-Taste nach der Auswahl drücken.
- Der Source Editor hat mehrere neue Bearbeitungsfunktionen und Tastaturkürzel; siehe Using the Source Editor für Details.
Mozilla arbeitet daran, seine eigenen Entwickler-Tools zu integrieren, die das beliebte Firebug-Add-on ergänzen. Sie können mehr Informationen über diese Tools erhalten sowie eine Liste von Ressourcen, die nicht von Firefox stammen, die Ihnen bei der Webentwicklung helfen werden. Die gesamte Liste befindet sich unter Web developer tools.
Sonstige Änderungen
- Der GEOSTD8-Zeichensatz, der nie vollständig unterstützt wurde, wird überhaupt nicht mehr unterstützt.
Änderungen für Mozilla und Add-on-Entwickler
>JavaScript-Code-Module
source-editor.jsm
- Die Methode
resetUndo()wurde hinzugefügt; dies ermöglicht es Ihnen, den Rückgängig-Stack zu löschen. - Der Source Editor bietet nun Methoden für Suchfunktionen:
find(),findNext()undfindPrevious().
XUL
- Die Definition der Werte für das Attribut
chromemarginhat sich leicht verändert, um es einfacher zu machen, XUL-Code plattformübergreifend gut aussehen zu lassen auf Plattformen mit unterschiedlichen Standard-Fensterrandbreiten.
XPCOM
nsISupports-Proxies werden nicht mehr unterstützt. Sie sollten stattdessen "runnables" verwenden.- Firefox 11 änderte das Verhalten von
Components.utils.getWeakReference(), um eine Ausnahme zu werfen, wenn der Objektverweis null ist; das vorherige Verhalten des stillen Scheiterns wurde wiederhergestellt.
XPConnect
- Der Datentyp
PRUint64war in Bezug auf XPConnect fälschlicherweise im Wesentlichen identisch mitPRint64. Dies wurde behoben.
Schnittstellenänderungen
- Die Schnittstelle
nsIScreen_MOZILLA_2_0_BRANCHwurde innsIScreenzusammengeführt. Die APIs, die in dieser Schnittstelle definiert sind (zur Steuerung der minimalen Bildschirmhelligkeit), wurden bisher nicht dokumentiert, sind es jetzt aber. - Die Schnittstelle
nsIScriptError2wurde 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 die Generierung von Touch-Events zu ermöglichen. - Sie können nun den angegebenen Inhalt in die vertikale Mitte der Ansicht scrollen, indem Sie
SCROLL_CENTER_VERTICALLYals Scrollkonstante 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 und vom TypKIND_NONHEAPsind. - Das Attribut
nsIDOMWindowUtils.paintingSuppressedwurde hinzugefügt; dieser boolesche Wert gibt an, ob das Zeichnen im Fenster derzeit unterdrückt wird. Dies wird auf Mobilgeräten verwendet, um ein holpriges Rendering zu verhindern, das auftritt, wenn versucht wird, die Seite zu zeichnen, bevor genügend Inhalte vorhanden sind, um dies reibungslos zu ermöglichen. - Die Schnittstellen
nsIDocCharsetundnsIDocumentCharsetInfowurden innsIDocShellzusammengeführt. Im Rahmen dieser Arbeit wurde das alte AttributforcedDetectorentfernt; es hat nie etwas bewirkt.
SpiderMonkey
JSThreadwurde eliminiert.JSThreadDatawurde inJSRuntimeintegriert.
Build
- Beim Bauen auf 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.