Firefox 11 für Entwickler
Firefox 11 wurde am 13. März 2012 veröffentlicht. Dieser Artikel bietet Informationen über die neuen Funktionen und die wichtigsten behobenen 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
DOM
- Die
element.outerHTML
-Eigenschaft wird jetzt bei HTML-Elementen unterstützt. XMLHttpRequest
unterstützt HTML-Parsing.- Unterstützung für die Verwendung der Attribute
XMLHttpRequest
responseType
undwithCredentials
bei synchronen Anfragen wurde entfernt. Der Versuch, dies zu tun, wirft eineNS_ERROR_DOM_INVALID_ACCESS_ERR
-Ausnahme. Diese Änderung wurde dem W3C zur Standardisierung vorgeschlagen. - Die neue Methode
navigator.mozVibrate()
ermöglicht es, das Gerät vibrieren zu lassen, sofern unterstützt; dies ist in Gecko alsmozVibrate()
implementiert. navigator.mozApps
gibt einApps
-Objekt zurück, das Sie zum Installieren und Verwalten von Open-Web-Anwendungen verwenden können.MozBeforePaint
-Ereignisse werden nicht mehr ausgelöst.mozRequestAnimationFrame()
-Verbraucher, die diese verwendeten, sollten stattdessen eine Callback-Funktion übergeben.- Unterstützung zum Abbrechen von Animationsrasteranforderungen wurde hinzugefügt;
window.mozRequestAnimationFrame()
gibt jetzt einen Anforderungs-ID-Wert zurück, den Sie anwindow.mozCancelAnimationFrame()
übergeben können, um die Anforderung abzubrechen. - Mehrere
Event
-Konstruktoren (Event
, HTML-Ereignisse,UIEvent
undMouseEvent
), die in DOM4-Spezifikationen eingeführt wurden, werden jetzt unterstützt. - Die Battery API ist jetzt standardmäßig aktiviert.
- Unterstützung für die Eigenschaften
defaultMuted
,loop
undmuted
beiHTMLMediaElement
wurde hinzugefügt. - Ein Aufruf von
Document/exitFullscreen
stellt jetzt das zuvor im Vollbildmodus befindliche Element wieder her, falls ein anderes Element im Vollbildmodus war, als die MethodeElement/requestFullScreen
des aktuellen Elements aufgerufen wurde. - Die Methode
window.mozRequestAnimationFrame()
unterstützt keine Form ohne Argument mehr. Diese Form wurde kaum verwendet und wird wahrscheinlich nicht Teil des Standards. - SVG als Bild kann nun ohne tainting the canvas in eine Leinwand gezeichnet werden.
- Die nicht standardisierte Eigenschaft
countryCode
der SchnittstelleGeoPositionAddress
wurde entfernt; siehensIDOMGeoPositionAddress
. - Server-Sent Events unterstützen nun CORS.
- In der Vergangenheit wurden die auf dem
window.navigator
-Objekt gesetzten Werte zur neuen Seite beibehalten, wenn der Benutzer einem Link folgte. Jetzt wird ein neuesnavigator
-Objekt für die neue Seite erstellt. Dies macht Firefox verhalten wie alle anderen Browser.
CSS
- Die
text-size-adjust
-Eigenschaft wird jetzt unterstützt. - CSS3 Conditional Rules werden jetzt besser unterstützt: Verschachtelte Anweisungen können jetzt zu @media, @-moz-document hinzugefügt werden. (Siehe CSS Syntax und CSS at-rules).
JavaScript
Keine Änderung.
SVG
- Die
SVGSVGElement
-DOM-Schnittstelle unterstützt nun die MethodegetElementById
.
WebSocket
- Die WebSocket-API unterstützt jetzt binäre Nachrichten (siehe Firefox-Bug 676439).
- Sowohl das Protokoll als auch die API wurden auf den neuesten Entwurf der Spezifikation aktualisiert, und die API wurde ohne Präfix versehen (siehe Firefox-Bug 666349 und Firefox-Bug 695635).
- Bisher waren mit WebSockets in Firefox gesendete und empfangene Nachrichten auf eine Größe von 16 MB beschränkt; sie können jetzt bis zu 2 GB groß sein (obwohl Speicherbeschränkungen sie daran hindern können, so groß zu werden, unterstützt Firefox dies).
IndexedDB
-
Unterstützung für IDBFactory.cmp() wurde hinzugefügt.
-
Ein IndexedDB-Schlüssel kann auch einer der folgenden Typen sein: Date, Arrays und Float (und nicht nur String und Integer).
-
Künftig werden Transaktionen gestartet, wenn die Transaktion erstellt wird, nicht wenn die erste Anfrage gestellt wird; zum Beispiel:
jsvar trans1 = db.transaction("foo", READ_WRITE); var trans2 = db.transaction("foo", READ_WRITE); trans2.put("2", "key"); trans1.put("1", "key");
Nach dem Ausführen des Codes sollte der Objektspeicher den Wert "2" enthalten, da
trans2
nachtrans1
ausgeführt werden sollte. -
Vor Firefox 11 wurden
autoIncrement
-Zähler für Objektspeicher in einer Datenbank gemeinsam genutzt, während gemäß Spezifikation jeder Objektspeicher einen separaten Zähler haben sollte. Dies wurde jetzt behoben. -
Es ist jetzt möglich, einen Index mit einem leeren
keyPath
zu erstellen. -
Es ist jetzt möglich, einen Multi-Entry-Index zu erstellen (siehe
IDBObjectStore.createIndex
-Parameter.) -
Das
abort
-Ereignis wird jetzt propagiert; zusätzlich wurde einonabort
-Handler hinzugefügt. -
IndexedDB kann jetzt verwendet werden, um Dateien/Blobs zu speichern.
-
IndexedDB unterstützt jetzt komplexe Schlüsselpfade, z.B.
foo.bar
zum Zugriff auf die Eigenschaftbar
der Eigenschaftfoo
. -
IndexedDB kann jetzt ein Array als
keyPath
akzeptieren, wenn ein Objektspeicher oder ein Index erstellt wird (Firefox-Bug 694138.)
Netzwerk
- Die Änderung in Firefox 8, die die Unterstützung für Anführungszeichen als Trennzeichen für RFC 2231 und RFC 5987 entfernte, wurde rückgängig gemacht, da dies einige Websites, einschließlich Outlook Web Access, beschädigte.
- Der User-Agent-String in HTTP-Headern enthält jetzt einen Identifikator, der dem Server mitteilt, ob der zugreifende Firefox auf einem Telefon oder einem Tablet läuft.
Entwicklerwerkzeuge
- Der Seiteninspektor bietet jetzt eine 3D-Ansicht, wenn Ihr System WebGL unterstützt.
- Der neue Stil-Editor bietet eine Freiformmethode zum Bearbeiten und Erstellen von CSS-Stilen in Echtzeit.
- Die Quelltextanzeige verwendet jetzt den neuen HTML5-Parser anstelle des alten HTML-Parsers.
Änderungen für Mozilla- und Add-on-Entwickler
JavaScript-Code-Module
NetUtil.jsm
readInputStreamToString()
hat einen neuen, optionalen Parameter, um die Zeichensatzinterpretation beim Lesen des Eingabestreams zu konfigurieren.
Neue JavaScript-Code-Module
source-editor.jsm
-
Bietet einen benutzerfreundlichen Editor für Quellcode, den Sie in Ihren Add-ons verwenden können. Dies ist derselbe Editor, der von Scratchpad und anderen in Firefox integrierten Entwicklerwerkzeugen verwendet wird.
Schnittstellenänderungen
- Die
mozIAsyncHistory
-Schnittstelle hat eine neue MethodemozIAsyncHistory.isURIVisited()
, um zu überprüfen, ob eine URI besucht wurde. - Eine neue Schnittstelle
mozIVisitStatusCallback
wurde hinzugefügt, um Callback-Handling-Funktionalität fürmozIAsyncHistory.isURIVisited()
bereitzustellen. - Die
nsIMacDockSupport
-Schnittstelle unterstützt jetzt das Hinzufügen eines Text-Abzeichens zum Anwendungs-Icon im Dock mit ihrem neuenbadgeText
-Attribut. - In der
nsINavHistoryResultObserver
-Schnittstelle müssen Sie jetztnsINavHistoryResultObserver.containerStateChanged()
implementieren anstelle der veralteten MethodencontainerOpened()
undcontainerClosed()
.
Entfernte Schnittstellen
Die folgenden Schnittstellen waren Implementierungsdetails, die nicht mehr benötigt werden:
nsICharsetResolver
nsIDOMNSElement
, siehe Bug707576, verwenden Sie stattdessennsIDOMElement
.
Themenbezogene Änderungen
- Die Datei
omni.jar
wird jetztomni.ja
genannt.
Präferenzänderungen
ui.tooltipDelay
-
Bestimmt die Verzögerung in Millisekunden zwischen dem Beginn des Hoverns des Mauszeigers und dem Anzeigen eines Tooltips.
Änderungen im Build-System
- Die Build-Option
--enable-tracejit
wurde entfernt.
Andere Änderungen
- Add-ons, die seit langer Zeit nicht mehr aktualisiert wurden, werden nicht mehr standardmäßig als kompatibel angesehen; dies betrifft derzeit Add-ons, die eine
maxVersion
von 4.0 angeben.