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 Fehlerbehebungen 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 nun auf HTML-Elementen unterstützt. XMLHttpRequest
unterstützt HTML-Parsing.- Die Unterstützung für die Verwendung der
XMLHttpRequest
responseType
- undwithCredentials
-Attribute bei der Durchführung synchroner Anfragen wurde entfernt. Der Versuch, dies zu tun, löst eineNS_ERROR_DOM_INVALID_ACCESS_ERR
-Ausnahme aus. Diese Änderung wurde zur Standardisierung an die W3C vorgeschlagen. - Die neue Methode
navigator.mozVibrate()
erlaubt es, das Gerät vibrieren zu lassen, wo dies unterstützt wird; dies wird alsmozVibrate()
auf Gecko implementiert. navigator.mozApps
gibt einApps
-Objekt zurück, das Sie verwenden können, um offene Webanwendungen zu installieren und zu verwalten.MozBeforePaint
-Events werden nicht mehr ausgelöst. Konsumenten vonmozRequestAnimationFrame()
, die diese verwendeten, sollten stattdessen eine Rückruffunktion übergeben.- Die Unterstützung zum Abbrechen von Anfragen für Animationsrahmen wurde hinzugefügt;
window.mozRequestAnimationFrame()
gibt jetzt einen Anfragen-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-Events,UIEvent
undMouseEvent
) werden jetzt unterstützt. - Die Battery API ist jetzt standardmäßig aktiviert.
- Die Unterstützung für die
defaultMuted
,loop
undmuted
-Eigenschaften aufHTMLMediaElement
wurde hinzugefügt. - Ein Aufruf von
Document/exitFullscreen
stellt nun das vorher vollbild ausgeführte 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 Argument-freie Form mehr. Diese Form wurde kaum verwendet und wird wahrscheinlich nicht Teil des Standards. - SVG-als-Bild kann jetzt ohne Verunreinigung der Leinwand in eine Leinwand gezeichnet werden.
- Die nicht-standardisierte
countryCode
-Eigenschaft derGeoPositionAddress
-Schnittstelle wurde entfernt; siehensIDOMGeoPositionAddress
. - Server-sent events unterstützen jetzt CORS.
- Früher wurden, wenn der Benutzer einem Link folgte, die auf dem
window.navigator
-Objekt gesetzten Werte von der neuen Seite beibehalten. Jetzt wird für die neue Seite ein neuesnavigator
-Objekt erstellt. Dies verleiht Firefox das gleiche 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 nun zu @media und @-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 ohne Präfix verwendet (siehe Firefox bug 666349 und Firefox bug 695635).
- Zuvor waren Nachrichten, die mit WebSockets in Firefox gesendet und empfangen wurden, auf eine Größe von 16 MB begrenzt; sie können jetzt bis zu 2 GB groß sein (obwohl Speicherbeschränkungen möglicherweise verhindern, dass sie so groß sind, 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; beispielsweise:
jsvar trans1 = db.transaction("foo", READ_WRITE); var trans2 = db.transaction("foo", READ_WRITE); trans2.put("2", "key"); trans1.put("1", "key");
Nachdem der Code ausgeführt wurde, sollte der Objektspeicher den Wert "2" enthalten, da
trans2
nachtrans1
ausgeführt werden sollte. -
Vor Firefox 11 wurden die
autoIncrement
-Zähler für Objektspeicher über alle Objektspeicher einer Datenbank hinweg geteilt, während gemäß Spezifikation jeder Objektspeicher einen separaten Zähler haben sollte. Dies ist jetzt behoben. -
Es ist jetzt möglich, einen Index mit einem leeren
keyPath
zu erstellen. -
Es ist nun möglich, einen Multi-Entry-Index zu erstellen (siehe
IDBObjectStore.createIndex
parameter). -
Das
abort
-Ereignis löst nun eine Blasenbildung aus; zusätzlich wurde einonabort
-Handler hinzugefügt. -
IndexedDB kann nun verwendet werden, um Dateien/Blobs zu speichern.
-
IndexedDB unterstützt nun komplexe Schlüsselpfade, z. B.
foo.bar
, um die Eigenschaftbar
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 Begrenzer für RFC 2231 und RFC 5987 entfernt hat, 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 einen Identifikator, der den Server darüber informiert, ob es sich bei dem zugreifenden Firefox um ein Telefon oder ein Tablet handelt.
Entwicklerwerkzeuge
- Der Page Inspector bietet jetzt eine 3D-Ansicht, wenn Ihr System WebGL unterstützt.
- Der neue Style Editor bietet eine freie Möglichkeit, CSS-Stylesheets in Echtzeit zu bearbeiten und zu komponieren.
- Die View Source-Funktion 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 Zeichensatz-Interpretation beim Lesen des Eingabestreams zu konfigurieren.
Neue JavaScript-Code-Module
source-editor.jsm
-
Bietet einen bequemen, einfach zu bedienenden Quellcode-Editor, den Sie in Ihren Add-ons verwenden können. Dies ist der gleiche 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-Badges zum Anwendungssymbol im Dock unter Verwendung ihres neuenbadgeText
-Attributs. - In der
nsINavHistoryResultObserver
-Schnittstelle müssen Sie jetztnsINavHistoryResultObserver.containerStateChanged()
implementieren, anstatt der veralteten MethodencontainerOpened()
undcontainerClosed()
.
Entfernte Schnittstellen
Die folgenden Schnittstellen waren Implementierungsdetails, die nicht mehr benötigt werden:
nsICharsetResolver
nsIDOMNSElement
, siehe bug707576, verwenden Sie stattdessennsIDOMElement
.
Theme-bezogene Änderungen
- Die
omni.jar
-Datei wird jetztomni.ja
genannt.
Einstellungsänderungen
ui.tooltipDelay
-
Gibt die Verzögerung in Millisekunden an, zwischen dem Beginn des Hoverns des Mauszeigers und der Anzeige eines Tooltips.
Buildsystem-Änderungen
- Die Build-Option
--enable-tracejit
wurde entfernt.
Andere Änderungen
- Add-ons, die seit langer Zeit nicht mehr aktualisiert wurden, gelten jetzt nicht mehr standardmäßig als kompatibel; dies betrifft derzeit Add-ons, die eine
maxVersion
von 4.0 angeben.