Firefox 11 für Entwickler
Firefox 11 wurde am 13. März 2012 veröffentlicht. Dieser Artikel bietet Informationen zu den neuen Funktionen und behobenen Hauptfehlern in dieser Version sowie Links zu detaillierteren Dokumentationen für sowohl Web- als auch Add-on-Entwickler.
Änderungen für Webentwickler
HTML
DOM
- Die Eigenschaft
element.outerHTML
wird jetzt bei HTML-Elementen unterstützt. XMLHttpRequest
unterstützt HTML-Parsing.- Unterstützung für die Verwendung der Attribute
responseType
undwithCredentials
vonXMLHttpRequest
bei synchronen Anfragen wurde entfernt. Der Versuch, dies zu tun, wirft eineNS_ERROR_DOM_INVALID_ACCESS_ERR
Ausnahme. Diese Änderung wurde der W3C zur Standardisierung vorgeschlagen. - Die neue Methode
navigator.mozVibrate()
ermöglicht, 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 offenen Webanwendungen verwenden können.MozBeforePaint
Ereignisse werden nicht mehr erzeugt. Nutzer vonmozRequestAnimationFrame()
sollten stattdessen eine Callback-Funktion übergeben.- Unterstützung zum Abbrechen von Animations-Frame-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
Event
Konstruktoren (Event
, HTML-Ereignisse,UIEvent
undMouseEvent
), die in DOM4 Spezifikationen eingeführt wurden, werden nun unterstützt. - Die Battery API ist jetzt standardmäßig aktiviert.
- Unterstützung für die
defaultMuted
,loop
undmuted
Eigenschaften aufHTMLMediaElement
wurde hinzugefügt. - Der Aufruf von
Document/exitFullscreen
stellt nun das zuvor im Vollbild angezeigte 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 nicht mehr eine Form ohne Argumente. Diese Form wurde kaum genutzt und wird wahrscheinlich nicht Teil des Standards. - SVG-als-Bild kann nun in eine Leinwand gezeichnet werden, ohne die Leinwand zu verunreinigen.
- Die nicht standardisierte
countryCode
Eigenschaft derGeoPositionAddress
Schnittstelle wurde entfernt; siehensIDOMGeoPositionAddress
. - Server-sent events unterstützen nun CORS.
- Bisher wurden beim Folgen eines Links die auf dem
window.navigator
Objekt gesetzten Werte von der neuen Seite übernommen. Jetzt wird ein neuesnavigator
Objekt für die neue Seite erstellt. Dies macht Firefox mit allen anderen Browsern konsistent.
CSS
- Die
text-size-adjust
Eigenschaft wird nun unterstützt. - CSS3 Bedingte Regeln werden nun besser unterstützt: Verschachtelte Anweisungen können nun zu @media, @-moz-document hinzugefügt werden. (Siehe CSS-Syntax und CSS at-regeln).
JavaScript
Keine Änderung.
SVG
- Die
SVGSVGElement
DOM-Schnittstelle unterstützt jetzt diegetElementById
Methode.
WebSocket
- Die WebSocket API unterstützt jetzt Binärnachrichten (siehe Firefox-Bug 676439).
- Sowohl das Protokoll als auch die API wurden auf den neuesten Entwurf der Spezifikation aktualisiert und die API ist jetzt ohne Präfix (siehe Firefox-Bug 666349 und Firefox-Bug 695635).
- Bisher waren die über WebSockets in Firefox gesendeten und empfangenen Nachrichten in ihrer Größe auf 16 MB begrenzt; sie können jetzt bis zu 2 GB groß sein (obwohl Speicherbegrenzungen möglicherweise verhindern, dass sie so groß werden, unterstützt Firefox dies).
IndexedDB
-
Die Unterstützung für IDBFactory.cmp() wurde hinzugefügt.
-
Ein IndexedDB-Schlüssel kann nun 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; betrachten Sie zum Beispiel folgendes:
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 Objektspeicher
autoIncrement
Zähler über alle Objektspeicher einer bestimmten Datenbank hinweg geteilt, während gemäß Spezifikation jeder Objektspeicher einen separaten Zähler haben sollte. Dies ist nun 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 kann nun "bubblen"; zusätzlich wurde einonabort
Handler hinzugefügt. -
IndexedDB kann nun verwendet werden, um Dateien/Blobs zu speichern.
-
IndexedDB unterstützt jetzt komplexe Schlüsselpfade, z.B.
foo.bar
, um auf die Eigenschaftbar
von der Eigenschaftfoo
zuzugreifen. -
IndexedDB kann nun 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, beeinträchtigte.
- Der User-Agent-String in HTTP-Headers beinhaltet nun einen Identifikator, der dem Server anzeigt, ob der Zugriff auf den Firefox von einem Telefon oder Tablet erfolgt.
Entwicklerwerkzeuge
- Der Seiteninspektor bietet nun eine 3D-Ansicht, wenn Ihr System WebGL unterstützt.
- Der neue Stil-Editor bietet eine freie Möglichkeit, CSS-Stylesheets in Echtzeit zu bearbeiten und zu erstellen.
- Die Quellcode-Anzeige verwendet nun 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 Eingabestroms zu konfigurieren.
Neue JavaScript-Code-Module
source-editor.jsm
-
Bietet einen praktischen, benutzerfreundlichen Quellcode-Editor, 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 die Callback-Verarbeitung fürmozIAsyncHistory.isURIVisited()
bereitzustellen. - Die
nsIMacDockSupport
Schnittstelle unterstützt jetzt das Hinzufügen eines Textabzeichens zum Anwendungsicon im Dock mit ihrem neuenbadgeText
Attribut. - In der
nsINavHistoryResultObserver
Schnittstelle müssen Sie jetztnsINavHistoryResultObserver.containerStateChanged()
implementieren, anstatt der veraltetencontainerOpened()
undcontainerClosed()
Methoden.
Entfernte Schnittstellen
Die folgenden Schnittstellen waren Implementierungsdetails, die nicht mehr benötigt werden:
nsICharsetResolver
nsIDOMNSElement
, siehe Bug707576, verwenden Sie stattdessennsIDOMElement
.
Änderungen an Themen
- Die Datei
omni.jar
heißt jetztomni.ja
.
Einstellungsänderungen
ui.tooltipDelay
-
Gibt die Verzögerung in Millisekunden an, zwischen dem Beginn des Schwebens des Mauszeigers und der Anzeige eines Tooltips.
Build-Systemänderungen
- Die Build-Option
--enable-tracejit
wurde entfernt.
Sonstige Änderungen
- Add-ons, die schon lange nicht mehr aktualisiert wurden, werden nicht mehr standardmäßig als kompatibel angenommen; derzeit betrifft dies Add-ons, die eine
maxVersion
von 4.0 angeben.