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 Bugs in dieser Version sowie Links zu ausführlicheren Dokumentationen für Webentwickler und Add-on-Entwickler.
Änderungen für Webentwickler
HTML
DOM
- Die Eigenschaft
element.outerHTML
wird nun bei HTML-Elementen unterstützt. XMLHttpRequest
unterstützt HTML-Parsing.- Die Unterstützung für die Verwendung der
XMLHttpRequest
responseType
- undwithCredentials
-Attribute bei synchronen Anfragen wurde entfernt. Ein Versuch, dies zu tun, führt zu einerNS_ERROR_DOM_INVALID_ACCESS_ERR
-Ausnahme. Diese Änderung wurde zur Standardisierung an das W3C vorgeschlagen. - Die neue Methode
navigator.mozVibrate()
ermöglicht es, das Gerät bei Unterstützung vibrieren zu lassen; dies wird in Gecko alsmozVibrate()
implementiert. navigator.mozApps
gibt einApps
-Objekt zurück, das Sie verwenden können, um offene Webanwendungen zu installieren und zu verwalten.MozBeforePaint
-Ereignisse werden nicht mehr ausgelöst. Verbraucher vonmozRequestAnimationFrame()
, die diese verwendet haben, sollten stattdessen eine Callback-Funktion übergeben.- Die Unterstützung für das Abbrechen von Animationsrahmen-Anfragen 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
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. - Ein Aufruf von
Document/exitFullscreen
stellt nun das zuvor im Vollbildmodus befindliche 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 kein Teil des Standards. - SVG als Bild kann jetzt ohne Verunreinigung der Leinwand in ein Canvas gezeichnet werden.
- Die nicht standardisierte
countryCode
-Eigenschaft derGeoPositionAddress
-Schnittstelle wurde entfernt; sehen SiensIDOMGeoPositionAddress
. - Server-Sent Events unterstützen nun CORS.
- In der Vergangenheit 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. Dadurch verhält sich Firefox wie alle anderen Browser.
CSS
- Die
text-size-adjust
-Eigenschaft wird nun unterstützt. - CSS3 Conditional Rules 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 ohne Präfix implementiert (siehe Firefox-Bug 666349 und Firefox-Bug 695635).
- Früher waren die mit WebSockets in Firefox gesendeten und empfangenen Nachrichten auf 16 MB Größe beschränkt; sie können jetzt bis zu 2 GB groß sein (obwohl Speichergrenzen sie daran hindern können, so groß zu sein, unterstützt Firefox dies).
IndexedDB
-
Die Unterstützung für IDBFactory.cmp() wurde hinzugefügt.
-
Ein IndexedDB-Schlüssel kann jetzt auch eines der folgenden Typen sein: Datum, Arrays und Float (und nicht nur String und Integer).
-
Von nun an werden Transaktionen gestartet, wenn die Transaktion erstellt wird und nicht, wenn die erste Anfrage gestellt wird; beachten 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 Auto-Increment-Zähler von Objektspeichern für eine gegebene Datenbank gemeinsam genutzt, während laut 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 jetzt möglich, einen Multi-Entry-Index zu erstellen (siehe
IDBObjectStore.createIndex
-Parameter.) -
Das
abort
-Ereignis löst nun ein Blubbern aus; 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
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 entfernt hat, wurde rückgängig gemacht, da dies einige Seiten, einschließlich Outlook Web Access, beeinträchtigte.
- Der User-Agent-String in HTTP-Headern enthält jetzt einen Identifikator, der den Server wissen lässt, ob der zugreifende Firefox ein Telefon oder ein Tablet ist.
Entwicklerwerkzeuge
- Der Page Inspector bietet jetzt eine 3D-Ansicht, wenn Ihr System WebGL unterstützt.
- Der neue Style Editor bietet eine Möglichkeit, CSS-Stylesheets in Echtzeit frei zu bearbeiten und zu erstellen.
- Die Quelltextansicht 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 zur Konfiguration der Zeichensatzinterpretation beim Lesen des Eingabestreams.
Neue JavaScript-Code-Module
source-editor.jsm
-
Bietet einen bequemen, einfach zu verwendenden 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 Callback-Verarbeitungsfunktionalität fürmozIAsyncHistory.isURIVisited()
bereitzustellen. - Die
nsIMacDockSupport
-Schnittstelle unterstützt jetzt das Hinzufügen eines Text-Badges zum Symbol der Anwendung im Dock durch ihr neues AttributbadgeText
. - In der
nsINavHistoryResultObserver
-Schnittstelle müssen Sie jetzt die MethodensINavHistoryResultObserver.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
-
Gibt die Verzögerung in Millisekunden an, zwischen dem Beginn des Verweilens des Mauszeigers und der Anzeige eines Tooltips.
Änderungen am Build-System
- Die Build-Option
--enable-tracejit
wurde entfernt.
Andere Änderungen
- Add-ons, die seit langer Zeit nicht aktualisiert wurden, werden standardmäßig nicht mehr als kompatibel angenommen; derzeit betrifft dies Add-ons, die eine
maxVersion
von 4.0 angeben.