Firefox 11 für Entwickler
Firefox 11 wurde am 13. März 2012 veröffentlicht. Dieser Artikel bietet Informationen über die neuen Funktionen und wichtigsten behobenen Fehler in dieser Version, sowie Links zu detaillierter Dokumentation für sowohl Web- als auch Add-on-Entwickler.
Änderungen für Web-Entwickler
>HTML
DOM
- Die
element.outerHTML
Eigenschaft wird jetzt auf HTML-Elementen unterstützt. XMLHttpRequest
unterstützt HTML-Parsing.- Die Unterstützung für die Verwendung der
responseType
- undwithCredentials
-Attribute vonXMLHttpRequest
bei synchronen Anfragen wurde entfernt. Der Versuch, dies zu tun, löst eineNS_ERROR_DOM_INVALID_ACCESS_ERR
Ausnahme aus. Diese Änderung wurde dem W3C zur Standardisierung vorgeschlagen. - Die neue Methode
navigator.mozVibrate()
ermöglicht es, das Gerät vibrieren zu lassen, wo dies unterstützt wird; dies ist in Gecko alsmozVibrate()
implementiert. navigator.mozApps
gibt einApps
-Objekt zurück, das Sie zur Installation und Verwaltung von Open Web-Anwendungen verwenden können.MozBeforePaint
-Ereignisse werden nicht länger ausgelöst. Konsumenten vonmozRequestAnimationFrame()
, die diese nutzten, sollten stattdessen eine Callback-Funktion übergeben.- Unterstützung zum Abbrechen von Animationsframe-Anfragen wurde hinzugefügt;
window.mozRequestAnimationFrame()
gibt nun einen Anfrage-ID-Wert zurück, den Sie anwindow.mozCancelAnimationFrame()
übergeben können, um die Anfrage abzubrechen. - Mehrere in den DOM4-Spezifikationen eingeführte
Event
-Konstruktoren (Event
, HTML-Ereignisse,UIEvent
undMouseEvent
) werden jetzt unterstützt. - Die Battery API ist standardmäßig aktiviert.
- Unterstützung für die
defaultMuted
,loop
undmuted
Eigenschaften aufHTMLMediaElement
wurde hinzugefügt. - Ein Aufruf von
Document/exitFullscreen
stellt jetzt 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 argumentfreie Form mehr. Diese Form wurde nicht viel genutzt und wird wahrscheinlich kein Teil des Standards werden. - SVG-als-Bild kann jetzt ohne Verfälschung des Canvas in ein Canvas gezeichnet werden.
- Die nicht standardmäßige
countryCode
-Eigenschaft derGeoPositionAddress
-Schnittstelle wurde entfernt; siehensIDOMGeoPositionAddress
. - Server-Sent Events unterstützen jetzt CORS.
- In der Vergangenheit wurden die auf dem
window.navigator
Objekt gesetzten Werte von der neuen Seite beibehalten, als der Benutzer einem Link folgte. Jetzt wird ein neuesnavigator
-Objekt für die neue Seite erstellt. Dadurch verhält sich Firefox wie alle anderen Browser.
CSS
- Die
text-size-adjust
Eigenschaft wird nun unterstützt. - CSS3 Bedingte Regeln werden jetzt besser unterstützt: Verschachtelte Anweisungen können nun zu @media, @-moz-document hinzugefügt werden (siehe CSS-Syntax und CSS-At-Rules).
JavaScript
Keine Änderung.
SVG
- Die
SVGSVGElement
DOM-Schnittstelle unterstützt jetzt 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 unpräfixiert (siehe Firefox-Bug 666349 und Firefox-Bug 695635).
- Zuvor waren Nachrichten, die mit WebSockets in Firefox gesendet und empfangen wurden, auf 16 MB begrenzt; sie können jetzt bis zu 2 GB groß sein (obwohl Speicherbeschränkungen sie daran hindern könnten, so groß zu sein, unterstützt Firefox es).
IndexedDB
-
Die Unterstützung für IDBFactory.cmp() wurde hinzugefügt.
-
Ein IndexedDB-Schlüssel kann jetzt auch einer der folgenden Typen sein: Datum, Arrays und Float (und nicht nur String und Integer).
-
Ab jetzt werden Transaktionen gestartet, wenn die Transaktion erstellt wird, nicht wenn die erste Anfrage gestellt wird; zum Beispiel betrachten Sie dies:
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 Objektspeicher den Wert "2" enthalten, da
trans2
nachtrans1
ausgeführt werden sollte. -
Vor Firefox 11 wurden die
autoIncrement
-Zähler der Objektspeicher über alle Objektspeicher einer bestimmten Datenbank hinweg geteilt, während laut 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 Mehrfacheintragsindex zu erstellen (siehe
IDBObjectStore.createIndex
Parameter). -
Das
abort
-Ereignis blubbert jetzt; 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
, um auf die Eigenschaftbar
der Eigenschaftfoo
zuzugreifen. -
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 zurückgenommen, da dies einige Seiten, einschließlich Outlook Web Access, beeinträchtigte.
- Der User-Agent-String in HTTP-Headern enthält jetzt einen Identifikator, der dem Server mitteilt, ob es sich bei dem zugreifenden Firefox um ein Telefon oder ein Tablet handelt.
Entwicklertools
- Der Seiteninspektor bietet jetzt eine 3D-Ansicht, wenn Ihr System WebGL unterstützt.
- Der neue Stil-Editor bietet eine freiformweise Möglichkeit, CSS-Stylesheets in Echtzeit zu bearbeiten und zu erstellen.
- Die Quellcode anzeigen-Funktion verwendet jetzt den neuen HTML5-Parser anstelle des alten HTML-Parsers.
Änderungen für Mozilla- und Add-on-Entwickler
>JavaScript-Codemodule
NetUtil.jsm
readInputStreamToString()
hat einen neuen, optionalen Parameter zur Konfiguration der Zeichensatzinterpretation beim Lesen des Eingabestreams.
Neue JavaScript-Codemodule
source-editor.jsm
-
Bietet einen komfortablen, einfach zu verwendenden Quellcode-Editor, den Sie in Ihren Add-ons verwenden können. Dies ist derselbe Editor, der im Scratchpad und anderen Entwicklertools verwendet wird, die in Firefox integriert sind.
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-Funktionalität fürmozIAsyncHistory.isURIVisited()
bereitzustellen. - Die
nsIMacDockSupport
-Schnittstelle unterstützt jetzt das Hinzufügen eines Textabzeichens zum App-Symbol im Dock über ihr neuesbadgeText
Attribut. - In der
nsINavHistoryResultObserver
-Schnittstelle müssen Sie jetztnsINavHistoryResultObserver.containerStateChanged()
statt der veraltetencontainerOpened()
undcontainerClosed()
Methoden implementieren.
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
heißt jetztomni.ja
.
Präferenzänderungen
ui.tooltipDelay
-
Gibt die Verzögerung in Millisekunden an, zwischen dem Beginn des Schwebens des Mauszeigers und der Anzeige eines Tooltips.
Änderungen des Build-Systems
- Die Build-Option
--enable-tracejit
wurde entfernt.
Weitere Änderungen
- Add-ons, die seit langer Zeit nicht aktualisiert wurden, werden nicht mehr standardmäßig als kompatibel angesehen; dies betrifft derzeit Add-ons, die eine
maxVersion
von 4.0 angeben.