Firefox 11 für Entwickler
Firefox 11 wurde am 13. März 2012 veröffentlicht. Dieser Artikel gibt Informationen über die neuen Funktionen und wesentlichen Fehlerbehebungen in dieser Version sowie Links zu detaillierterer Dokumentation für Web-Entwickler 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 Attribute
responseType
undwithCredentials
vonXMLHttpRequest
bei synchronen Anfragen wurde entfernt. Ein Versuch, dies zu tun, wirft eine AusnahmeNS_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, wenn unterstützt; dies ist 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
-Ereignisse werden nicht mehr ausgelöst. Verbraucher vonmozRequestAnimationFrame()
, die diese genutzt haben, sollten stattdessen eine Callback-Funktion übergeben.- Unterstützung für das Abbrechen von Anfragen für Animationsrahmen wurde hinzugefügt;
window.mozRequestAnimationFrame()
gibt nun einen Anforderungs-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 den DOM4-Spezifikationen eingeführt wurden, werden nun unterstützt. - Die Battery API ist jetzt standardmäßig aktiviert.
- Unterstützung für die Eigenschaften
defaultMuted
,loop
undmuted
aufHTMLMediaElement
wurde hinzugefügt. - Durch den Aufruf von
Document/exitFullscreen
wird nun das vorherige Vollbildelement wiederhergestellt, wenn sich ein anderes Element im Vollbildmodus befand, als die MethodeElement/requestFullScreen
des aktuellen Elements aufgerufen wurde. - Die Methode
window.mozRequestAnimationFrame()
unterstützt keine Argument-lose Form mehr. Diese Form wurde kaum genutzt und wird wahrscheinlich nicht Teil des Standards. - SVG-als-Bild kann nun in ein Canvas gezeichnet werden, ohne das Canvas zu verfälschen.
- Die nicht standardisierte Eigenschaft
countryCode
desGeoPositionAddress
-Interfaces wurde entfernt; siehensIDOMGeoPositionAddress
. - Server-sent events unterstützen nun CORS.
- In der Vergangenheit wurden beim Folgen eines Links die auf dem
window.navigator
-Objekt gesetzten Werte auf der neuen Seite beibehalten. Jetzt wird ein neuesnavigator
-Objekt für die neue Seite erstellt. Dies macht Firefox mit allen anderen Browsern gleichwertig.
CSS
- Die Eigenschaft
text-size-adjust
wird jetzt unterstützt. - CSS3 Conditional Rules werden jetzt besser unterstützt: Verschachtelte Anweisungen können jetzt zu @media, @-moz-document hinzugefügt werden. (Siehe CSS Syntax und CSS At-Regeln).
JavaScript
Keine Änderung.
SVG
- Das
SVGSVGElement
-DOM-Interface unterstützt nun die MethodegetElementById
.
WebSocket
- Die WebSocket-API unterstützt nun 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 nicht mehr mit Präfix versehen (siehe Firefox-Bug 666349 und Firefox-Bug 695635).
- Bisher waren die mit WebSockets in Firefox gesendeten und empfangenen Nachrichten auf eine Größe von 16 MB begrenzt; sie können jetzt bis zu 2 GB groß sein (obwohl Einschränkungen der Speicherkapazität ihre tatsächliche Größe begrenzen können, unterstützt Firefox dies).
IndexedDB
-
Die Unterstützung für IDBFactory.cmp() wurde hinzugefügt.
-
Ein IndexedDB-Schlüssel kann jetzt auch einer der folgenden Typen sein: Date, Arrays und Float (und nicht nur String und Integer).
-
Ab sofort werden Transaktionen gestartet, wenn die Transaktion erstellt wird, nicht wenn die erste Anfrage gestellt wird; zum Beispiel betrachte 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 Datenbank hinweg geteilt, 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 Mehrfacheintrag-Index zu erstellen (siehe
IDBObjectStore.createIndex
-Parameter). -
Das
abort
-Ereignis ist jetzt aufsteigend; zudem wurde einonabort
-Handler hinzugefügt. -
IndexedDB kann jetzt Dateien/Blobs 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
bei der Erstellung eines Objektspeichers oder eines Indexes akzeptieren (Firefox-Bug 694138).
Netzwerk
- Die Änderung in Firefox 8, die den Support 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-Headern enthält nun einen Identifikator, der den Server darüber informiert, ob es sich bei dem zugreifenden Firefox um ein Telefon oder ein Tablet handelt.
Entwickler-Tools
- Der Seiteninspektor bietet jetzt eine 3D-Ansicht, wenn Ihr System WebGL unterstützt.
- Der neue Stil-Editor bietet eine freie Form zum Bearbeiten und Erstellen von CSS-Stilblättern in Echtzeit.
- Die Quellcode-Anzeige 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 komfortablen, einfach zu bedienenden Quellcode-Editor, den Sie in Ihren Add-ons verwenden können. Dies ist derselbe Editor, der von Scratchpad und anderen in Firefox integrierten Entwickler-Tools verwendet wird.
Interface-Änderungen
- Das Interface
mozIAsyncHistory
hat eine neue MethodemozIAsyncHistory.isURIVisited()
, um zu prüfen, ob eine URI besucht wurde. - Ein neues Interface
mozIVisitStatusCallback
wurde hinzugefügt, um Callback-Funktionalität fürmozIAsyncHistory.isURIVisited()
bereitzustellen. - Das Interface
nsIMacDockSupport
unterstützt jetzt das Hinzufügen eines Text-Badge zu dem App-Icon im Dock mittels seines neuen AttributsbadgeText
. - Im Interface
nsINavHistoryResultObserver
müssen Sie jetztnsINavHistoryResultObserver.containerStateChanged()
implementieren, anstelle der veralteten MethodencontainerOpened()
undcontainerClosed()
.
Entfernte Interfaces
Die folgenden Interfaces waren Implementierungsdetails, die nicht mehr benötigt werden:
nsICharsetResolver
nsIDOMNSElement
, siehe bug707576, verwenden Sie stattdessennsIDOMElement
.
Themenbezogene Änderungen
- Die Datei
omni.jar
wird nunomni.ja
genannt.
Einstellungsänderungen
ui.tooltipDelay
-
Gibt die Verzögerung in Millisekunden an, zwischen dem Beginn des Schwebens des Mauszeigers und der Anzeige eines Tooltips.
Änderungen am Build-System
- Die Build-Option
--enable-tracejit
wurde entfernt.
Sonstige Ä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.