Firefox 11 für Entwickler
Firefox 11 wurde am 13. März 2012 veröffentlicht. Dieser Artikel enthält Informationen zu den neuen Funktionen und wesentlichen behobenen Fehlern in dieser Version sowie Links zu detaillierteren Dokumentationen für Webentwickler und Add-on-Entwickler.
Änderungen für Webentwickler
HTML
DOM
- Die Eigenschaft
element.outerHTML
wird jetzt für HTML-Elemente unterstützt. - HTML-Parsing im
XMLHttpRequest
wird unterstützt. - Die Unterstützung der Attribute
responseType
undwithCredentials
vonXMLHttpRequest
bei synchronen Anfragen wurde entfernt. Der Versuch, dies zu verwenden, führt zu einer Ausnahme des TypsNS_ERROR_DOM_INVALID_ACCESS_ERR
. Diese Änderung wurde dem W3C zur Standardisierung vorgeschlagen. - Die neue Methode
navigator.mozVibrate()
ermöglicht das Vibrieren des Geräts, falls unterstützt; diese wurde alsmozVibrate()
in Gecko implementiert. navigator.mozApps
gibt einApps
-Objekt zurück, das verwendet werden kann, um offene Webanwendungen zu installieren und zu verwalten.MozBeforePaint
-Ereignisse werden nicht mehr ausgelöst. Nutzer vonmozRequestAnimationFrame()
sollten stattdessen eine Callback-Funktion übergeben.- Die Unterstützung für das Abbrechen von Animationsframe-Anfragen wurde hinzugefügt;
window.mozRequestAnimationFrame()
gibt jetzt eine Anforderungs-ID zurück, die anwindow.mozCancelAnimationFrame()
übergeben werden kann, um die Anfrage abzubrechen. - Mehrere
Event
-Konstruktoren (Event
, HTML-Ereignisse,UIEvent
undMouseEvent
), die in den DOM4-Spezifikationen eingeführt wurden, werden jetzt unterstützt. - Die Battery API ist nun standardmäßig aktiviert.
- Unterstützung für die Eigenschaften
defaultMuted
,loop
undmuted
aufHTMLMediaElement
wurde hinzugefügt. - Ein Aufruf von
Document/exitFullscreen
stellt nun das vorherige Vollbild-Element wieder her, wenn ein anderes Element im Vollbildmodus war, als die MethodeElement/requestFullScreen
des aktuellen Elements aufgerufen wurde. - Die Methode
window.mozRequestAnimationFrame()
unterstützt keine Version mehr ohne Argument. Diese Form wurde kaum verwendet und ist unwahrscheinlich, Teil des Standards zu werden. - SVG als Bild kann nun in ein Canvas gezeichnet werden, ohne das Canvas zu verunreinigen.
- Die nicht standardisierte Eigenschaft
countryCode
derGeoPositionAddress
-Schnittstelle wurde entfernt; siehensIDOMGeoPositionAddress
. - Server-Sent Events unterstützen jetzt CORS.
- Früher wurden beim Befolgen eines Links die Werte des
window.navigator
-Objekts in der neuen Seite beibehalten. Jetzt wird für die neue Seite ein neuesnavigator
-Objekt erstellt, wodurch sich Firefox wie alle anderen Browser verhält.
CSS
- Die Eigenschaft
text-size-adjust
wird nun unterstützt. - CSS3 Bedingungsregeln werden jetzt besser unterstützt: Verschachtelte Anweisungen können jetzt in @media und @-moz-document hinzugefügt werden (siehe CSS-Syntax und CSS-At-Rules).
JavaScript
Keine Änderungen.
SVG
- Die DOM-Schnittstelle
SVGSVGElement
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 unprefixed (siehe Firefox-Bug 666349 und Firefox-Bug 695635).
- Zuvor waren Nachrichten, die mit WebSockets in Firefox gesendet und empfangen wurden, auf 16 MB begrenzt; jetzt können sie bis zu 2 GB groß sein (obwohl dies möglicherweise durch Speicherkapazitätsbeschränkungen begrenzt wird).
IndexedDB
-
Die Unterstützung für IDBFactory.cmp() wurde hinzugefügt.
-
Ein IndexedDB-Schlüssel kann jetzt auch Typen wie Date, Arrays und Float (und nicht nur String und Integer) annehmen.
-
Transaktionen werden jetzt beim Erstellen der Transaktion gestartet, nicht mehr erst, 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 der Ausführung des Codes sollte der Object Store den Wert "2" enthalten, da
trans2
nachtrans1
ausgeführt werden sollte. -
Vor Firefox 11 wurden Auto-Increment-Zähler für Objekt-Stores in einer Datenbank gemeinsam genutzt. Dies wurde nun geändert, sodass gemäß Spezifikation jeder Objekt-Store einen separaten Zähler hat.
-
Es ist nun möglich, einen Index mit einem leeren
keyPath
zu erstellen. -
Es ist nun möglich, einen Multi-Entry-Index zu erstellen (siehe Parameter von
IDBObjectStore.createIndex
). -
Das
abort
-Ereignis wird jetzt weitergereicht; zudem wurde einonabort
-Handler hinzugefügt. -
IndexedDB kann nun zur Speicherung von Dateien/Blobs verwendet werden.
-
IndexedDB unterstützt nun komplexe Key Paths, z.B.
foo.bar
, um auf die Eigenschaftbar
der Eigenschaftfoo
zuzugreifen. -
IndexedDB akzeptiert nun Arrays als
keyPath
, wenn ein Object Store oder ein Index erstellt wird (Firefox-Bug 694138).
Netzwerk
- Die Änderung in Firefox 8, die die Unterstützung von Anführungszeichen als Begrenzungszeichen für RFC 2231 und RFC 5987 entfernte, wurde rückgängig gemacht, da dies einige Websites, einschließlich Outlook Web Access, beeinträchtigte.
- Der User-Agent-String in HTTP-Headern enthält jetzt ein Kennzeichen, das es dem Server ermöglicht zu erkennen, ob Firefox, der die Anfrage schickt, auf einem Telefon oder Tablet läuft.
Entwicklerwerkzeuge
- Der Seiteninspektor bietet jetzt eine 3D-Ansicht, sofern Ihr System WebGL unterstützt.
- Der neue Stil-Editor bietet eine flexible Möglichkeit, CSS-Stylesheets in Echtzeit zu bearbeiten und zusammenzustellen.
- Die Funktion Quellcode anzeigen 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, mit dem die Zeichensatzinterpretation beim Lesen des Eingabestreams konfiguriert werden kann.
Neue JavaScript-Code-Module
source-editor.jsm
-
Bietet einen praktischen, einfach zu verwendenden Quellcode-Editor, den Sie in Ihren Add-ons verwenden können. Dies ist derselbe Editor, der auch in Scratchpad und anderen Entwicklungswerkzeugen integriert ist.
Schnittstellenänderungen
- Die Schnittstelle
mozIAsyncHistory
hat eine neue MethodemozIAsyncHistory.isURIVisited()
, um zu überprüfen, ob eine URI besucht wurde. - Eine neue Schnittstelle
mozIVisitStatusCallback
wurde hinzugefügt, um Callback-Funktionalität fürmozIAsyncHistory.isURIVisited()
bereitzustellen. - Die Schnittstelle
nsIMacDockSupport
unterstützt jetzt das Hinzufügen eines Text-Badges zum Anwendungssymbol im Dock mit ihrem neuen AttributbadgeText
. - In der Schnittstelle
nsINavHistoryResultObserver
müssen Sie jetztnsINavHistoryResultObserver.containerStateChanged()
statt der veralteten MethodencontainerOpened()
undcontainerClosed()
implementieren.
Entfernte Schnittstellen
Die folgenden Schnittstellen waren Implementierungsdetails, die nicht mehr benötigt werden:
nsICharsetResolver
nsIDOMNSElement
, siehe Bug 707576, verwenden Sie stattdessennsIDOMElement
.
Änderungen am Design
- Die Datei
omni.jar
heißt jetztomni.ja
.
Einstellungsänderungen
ui.tooltipDelay
-
Gibt die Verzögerung in Millisekunden an, bis ein Tooltip angezeigt wird, nachdem der Mauszeiger zu schweben beginnt.
Änderungen am Build-System
- Die Build-Option
--enable-tracejit
wurde entfernt.
Sonstige Änderungen
- Add-ons, die seit langer Zeit nicht aktualisiert wurden, gelten nicht mehr standardmäßig als kompatibel; dies betrifft aktuell Add-ons, bei denen die
maxVersion
auf 4.0 gesetzt ist.