Firefox 11 Versionshinweise für Entwickler
Firefox 11 wurde am 13. März 2012 veröffentlicht. Dieser Artikel bietet Informationen über die neuen Funktionen und wichtige behobene Fehler in dieser Version sowie Links zu ausführlicherer Dokumentation sowohl für Webentwickler als auch für Add-on-Entwickler.
Änderungen für Webentwickler
>HTML
DOM
- Die Eigenschaft
element.outerHTMLwird jetzt bei HTML-Elementen unterstützt. XMLHttpRequestunterstützt jetzt HTML-Parsing.- Die Unterstützung für die Verwendung der Attribute
responseTypeundwithCredentialsvonXMLHttpRequestbei synchronen Anfragen wurde entfernt. Der Versuch, dies zu tun, löst eineNS_ERROR_DOM_INVALID_ACCESS_ERR-Ausnahme aus. Diese Änderung wurde zur Standardisierung an das W3C vorgeschlagen. - Die neue Methode
navigator.mozVibrate()ermöglicht es, das Gerät zu vibrieren, wo dies unterstützt wird; dies wird in Gecko alsmozVibrate()implementiert. navigator.mozAppsgibt einApps-Objekt zurück, mit dem Sie offene Web-Anwendungen installieren und verwalten können.MozBeforePaint-Ereignisse werden nicht mehr ausgelöst. Verbraucher vonmozRequestAnimationFrame()sollten stattdessen eine Rückruffunktion übergeben.- Unterstützung zum Abbrechen von Animationsrahmenanforderungen wurde hinzugefügt;
window.mozRequestAnimationFrame()gibt jetzt eine Anforderungs-ID zurück, die Sie anwindow.mozCancelAnimationFrame()übergeben können, um die Anforderung abzubrechen. - Mehrere
Event-Konstruktoren (Event, HTML-Events,UIEventundMouseEvent), die in DOM4-Spezifikationen eingeführt wurden, werden jetzt unterstützt. - Die Battery API ist jetzt standardmäßig aktiviert.
- Unterstützung für die Eigenschaften
defaultMuted,loopundmutedaufHTMLMediaElementwurde hinzugefügt. - Ein Aufruf von
Document/exitFullscreenstellt jetzt das vorher im Vollbildmodus befindliche Element wieder her, wenn ein anderes Element im Vollbildmodus war, als die MethodeElement/requestFullScreendes aktuellen Elements aufgerufen wurde. - Die Methode
window.mozRequestAnimationFrame()unterstützt keine Variante ohne Argumente mehr. Diese Form wurde nicht viel verwendet und wird wahrscheinlich kein Teil des Standards. - SVG-als-Bild kann jetzt in eine Leinwand gezeichnet werden, ohne die Leinwand zu verfälschen.
- Die nicht-standardisierte Eigenschaft
countryCodedesGeoPositionAddress-Interface wurde entfernt; siehensIDOMGeoPositionAddress. - Server-sent events unterstützen jetzt CORS.
- In der Vergangenheit wurden, wenn der Benutzer einem Link folgte, die am
window.navigator-Objekt gesetzten Werte an die neue Seite übergeben. Jetzt wird ein neuesnavigator-Objekt für die neue Seite erstellt. Dies lässt Firefox wie alle anderen Browser verhalten.
CSS
- Die Eigenschaft
text-size-adjustwird jetzt unterstützt. - CSS3 Bedingte Regeln werden jetzt besser unterstützt: Verschachtelte Anweisungen können jetzt zu @media, @-moz-document hinzugefügt werden. (Siehe CSS Syntax und CSS at-rules).
JavaScript
Keine Änderung.
SVG
- Das
SVGSVGElement-DOM-Interface unterstützt jetzt die MethodegetElementById.
WebSocket
- 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 wurde unpräfixiert (siehe Firefox Bug 666349 und Firefox Bug 695635).
- Bisher waren über WebSockets in Firefox gesendete und empfangene Nachrichten auf 16 MB beschränkt; sie können jetzt bis zu 2 GB groß sein (obwohl Speicherbeschränkungen dies möglicherweise verhindern, unterstützt Firefox dies).
IndexedDB
-
Die Unterstützung für IDBFactory.cmp() wurde hinzugefügt.
-
Ein IndexedDB-Schlüssel kann jetzt auch von einem der folgenden Typen sein: Date, 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:
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
trans2nachtrans1ausgeführt werden sollte. -
Vor Firefox 11 wurden Zähler von
autoIncrement-Objektspeichern für eine gegebene Datenbank gemeinsam genutzt, gemäß der Spezifikation sollte jedoch jeder Objektspeicher einen separaten Zähler haben. Dies ist jetzt behoben. -
Es ist jetzt möglich, einen Index mit einem leeren
keyPathzu erstellen. -
Es ist jetzt möglich, einen Multi-Entry-Index zu erstellen (siehe
IDBObjectStore.createIndex-Parameter.) -
Das
abort-Ereignis blubbert jetzt; zusätzlich 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 Eigenschaftbarder Eigenschaftfoozuzugreifen. -
IndexedDB kann jetzt ein Array als
keyPathakzeptieren, wenn ein Objektspeicher oder ein Index erstellt wird (Firefox Bug 694138.)
Netzwerk
- Die Änderung in Firefox 8, die die Unterstützung von Anführungszeichen als Trennzeichen für RFC 2231 und RFC 5987 entfernte, wurde rückgängig gemacht, da dies einige Seiten unterbrach, einschließlich Outlook Web Access.
- Der User-Agent-String in HTTP-Headern enthält jetzt ein Kennzeichen, das dem Server mitteilt, ob das zugreifende Firefox ein Telefon oder ein Tablet ist.
Entwicklertools
- Der Seiteninspektor bietet jetzt eine 3D-Ansicht, wenn Ihr System WebGL unterstützt.
- Der neue Stil-Editor bietet eine freie Möglichkeit, CSS-Stilblätter in Echtzeit zu bearbeiten und zu erstellen.
- Die Quellansichtsfunktion 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 Eingabestroms.
Neue JavaScript-Code-Module
source-editor.jsm-
Bietet einen praktischen, 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 Entwicklertools verwendet wird.
Schnittstellenänderungen
- Das
mozIAsyncHistory-Interface hat eine neue MethodemozIAsyncHistory.isURIVisited(), um zu überprüfen, ob eine URI besucht wurde. - Ein neues Interface
mozIVisitStatusCallbackwurde hinzugefügt, um Callback-Funktionalität fürmozIAsyncHistory.isURIVisited()bereitzustellen. - Das
nsIMacDockSupport-Interface unterstützt jetzt das Hinzufügen eines Textabzeichens zum Anwendungs-Symbol im Dock unter Verwendung seines neuenbadgeText-Attributs. - Im
nsINavHistoryResultObserver-Interface müssen Sie jetztnsINavHistoryResultObserver.containerStateChanged()implementieren, anstatt der veralteten MethodencontainerOpened()undcontainerClosed().
Entfernte Schnittstellen
Die folgenden Schnittstellen waren Implementierungsdetails, die nicht mehr benötigt werden:
nsICharsetResolvernsIDOMNSElement, siehe bug707576, verwenden Sie stattdessennsIDOMElement.
Themenbezogene Änderungen
- Die Datei
omni.jarwird jetztomni.jagenannt.
Einstellungsänderungen
ui.tooltipDelay-
Gibt die Verzögerung in Millisekunden an, zwischen dem Cursor-Hover und der Anzeige eines Tooltips.
Buildsystem-Änderungen
- Die Build-Option
--enable-tracejitwurde entfernt.
Sonstige Änderungen
- Add-ons, die seit langer Zeit nicht aktualisiert wurden, werden nicht mehr standardmäßig als kompatibel angenommen; dies betrifft derzeit Add-ons, die eine
maxVersionvon 4.0 angeben.