Firefox 6 Versionshinweise für Entwickler
Firefox 6, basierend auf Gecko 6.0, wurde am 16. August 2011 veröffentlicht. Dieser Artikel bietet Links zu Informationen über die Änderungen, die Entwickler in dieser Version betreffen.
Änderungen für Webentwickler
>HTML
- Das HTML5-Element
<progress>, mit dem Sie eine Fortschrittsleiste erstellen können, wird jetzt unterstützt. - Das Parsen des HTML5-Elements
<track>, das Textspuren für Medienelemente spezifiziert, wird jetzt unterstützt. Dieses Element sollte jetzt im DOM erscheinen, obwohl sein Verhalten noch nicht implementiert ist. - Das
<iframe>-Element wird jetzt korrekt durch seinen Container abgeschnitten, wenn die Ecken des Containers mit derborder-radius-Eigenschaft abgerundet wurden. - Textfelder von
<form>-Elementen mit<input>unterstützen nicht mehr das XUL-Attributmaxwidth; dies war nie beabsichtigt und steht im Widerspruch zur HTML-Spezifikation. Sie sollten stattdessen das Attributsizeverwenden, um die maximale Breite von Eingabefeldern festzulegen. - Die Eigenschaften
fillStyleundstrokeStyledes<canvas>-ElementsCanvasRenderingContext2dignorierten bisher Müll nach einer gültigen Farbdefinition; jetzt wird dies korrekt als Fehler behandelt. Zum Beispiel wurde "rot blau" als Farbe früher als "rot" behandelt, wenn es ignoriert werden sollte. - Die Breite und Höhe von
<canvas>-Elementen kann jetzt korrekt auf 0px gesetzt werden; vorher wurden diese willkürlich auf 300px gesetzt, wenn Sie dies versucht haben. - Unterstützung für die HTML benutzerdefinierten Daten-Attribute (
data-*) wurde hinzugefügt. Die DOM-Eigenschaftdatasetermöglicht Ihnen den Zugriff darauf. - Wenn ein
<textarea>-Element den Fokus erhält, wird der Texteingabepunkt jetzt standardmäßig am Anfang des Textes anstatt am Ende platziert. Dies macht das Verhalten von Firefox mit anderen Browsern konsistent.
CSS
-moz-text-decoration-color-
Diese neue Eigenschaft ermöglicht es Ihnen, die Farbe zu setzen, die von Textdekorationen verwendet wird, wie z. B. Unterstreichungen, Überstreichungen und Durchstreichungen.
-moz-text-decoration-line-
Diese neue Eigenschaft ermöglicht es Ihnen, die Art der Textdekorationen festzulegen, die zu einem Element hinzugefügt werden.
-moz-text-decoration-style-
Diese neue Eigenschaft ermöglicht es Ihnen, den Stil von Textdekorationen festzulegen, wie z. B. Unterstreichungen, Überstreichungen und Durchstreichungen. Stile umfassen einfache Striche, doppelte Striche, wellenförmige Linien, gepunktete Linien und so weiter.
-moz-hyphens-
Diese neue Eigenschaft lässt Sie steuern, wie die Silbentrennung von Wörtern beim Zeilenumbruch gehandhabt wird.
-moz-orient-
Eine neue (derzeit Mozilla-spezifische) Eigenschaft, die es Ihnen ermöglicht, die vertikale oder horizontale Ausrichtung bestimmter Elemente zu steuern (insbesondere
<progress>). ::-moz-progress-bar-
Ein Mozilla-spezifisches Pseudoelement, das Ihnen ermöglicht, den Bereich eines
<progress>-Elements zu stylen, das den abgeschlossenen Teil einer Aufgabe darstellt.
Andere Änderungen
- Die
@-moz-document-Eigenschaft hat eine neueregexp()-Funktion, die es Ihnen ermöglicht, die URL des Dokuments mit einem regulären Ausdruck abzugleichen. - Die
azimuth-CSS-Eigenschaft wird nicht mehr unterstützt, da wir den wenigen Code entfernt haben, den wir für dieaural-Mediengruppe hatten. Sie war nie wesentlich implementiert, daher machte es mehr Sinn, die überholte Implementierung vorerst zu entfernen, statt zu versuchen, sie zu reparieren. - In der Vergangenheit wurde die
:hover-Pseudoklasse in der Quirks-Modus für Klassenselektoren nicht angewendet; zum Beispiel funktionierte.some-class:hovernicht. Diese Unregelmäßigkeit wurde entfernt. - Die
:indeterminate-Pseudoklasse kann auf<progress>-Elemente angewendet werden. Dies ist nicht standardisiert, aber wir hoffen, dass es von anderen Browsern übernommen wird, da es nützlich sein wird. - Der
-moz-win-exclude-glass-Wert wurde zur-moz-appearance-CSS-Eigenschaft hinzugefügt, um in Windows-Systemen undurchsichtige Regionen in Aero Glass-Effekten auszuschließen. - Firefox Bug 658949 änderte, wie das
#-Symbol in Daten-URLs behandelt wird, was CSS-Stylesheets, die ein solches Symbol enthalten, beeinflussen könnte, wenn es nicht escaped ist.
DOM
- Verwendung von Media Queries aus dem Code heraus
-
Sie können nun das Ergebnis einer Media Query-Zeichenfolge programmatisch mit der Methode
window.matchMedia()und der SchnittstelleMediaQueryListtesten. - Touch-Ereignisse
-
Firefox 6 fügt Unterstützung für W3C-Standard-Touch-Ereignisse hinzu; diese erleichtern die Interpretation von einem oder mehreren Berührungen gleichzeitig auf berührungsempfindlichen Oberflächen wie Touchscreens und Trackpads.
- Server-gesendete Ereignisse
-
Server-gesendete Ereignisse ermöglichen es einer Webanwendung, einen Server zu bitten, Ereignisse zu senden, genau wie ein lokal erstelltes DOM-Ereignis.
navigator.securityPolicy, das lange Zeit einen leeren String zurückgegeben hat, wurde komplett entfernt.BlobBuilderwurde jetzt implementiert, momentan allerdings mit Prefix (also müssen SieMozBlobBuilderverwenden).- Die
Document.heightundDocument.widthwurden entfernt. Firefox Bug 585877 - Die Eigenschaften
entitiesundnotationsdesDocumentType-Objekts, die nie implementiert wurden und immernullzurückgaben, wurden entfernt, da sie ohnehin aus der Spezifikation entfernt wurden. - Die
DOMConfiguration-Schnittstelle und diedocument.domConfig-Eigenschaft, die sie verwendeten, wurden beide entfernt; sie wurden nie unterstützt und sind seitdem aus der DOM-Spezifikation entfernt worden. - Das
hashchange-Ereignis umfasst jetzt korrekt die FeldernewURLundoldURL. - Die Methode
abort()derFileReader-Schnittstelle wirft jetzt eine Ausnahme aus, wenn sie verwendet wird, ohne dass ein Dateilesen im Gange ist. - Die Methode
window.postMessage()verwendet nun den strukturierten Klon-Algorithmus, um JavaScript-Objekte anstatt nur Zeichenfolgen von einem Fenster zu einem anderen zu übergeben. - Die API
window.historyverwendet jetzt den strukturierten Klon-Algorithmus, um die Objekte, die Sie an die MethodenpushState()undreplaceState()übergeben, zu serialisieren; dies ermöglicht die Verwendung komplexerer Objekte (einschließlich solcher mit zyklischen Verweisgraphen). - Sie können jetzt erkennen, wann ein Druckauftrag initiiert und abgeschlossen wurde, indem Sie auf die neuen Ereignisse
beforeprintundafterprintlauschen. - Die Eigenschaft
document.strictErrorCheckingwurde entfernt, da sie nie implementiert wurde und aus der DOM-Spezifikation entfernt wurde. - Die standardmäßige
event.defaultPrevented-Eigenschaft wird jetzt unterstützt; Sie sollten diese statt der nicht standardisierten MethodegetPreventDefault()verwenden, um zu erkennen, obevent.preventDefault()auf das Ereignis aufgerufen wurde. - Die Eigenschaft
window.topist jetzt korrekt schreibgeschützt. - DOM-Views, die wir nie dokumentiert haben, wurden entfernt. Dies war ein Implementierungsdetail, das unnötig Dinge verkomplizierte, also wurden sie entfernt. Wenn Ihnen diese Änderung auffällt, machen Sie wahrscheinlich etwas falsch.
- Der Parameter
useCaptureder FunktionaddEventListener()vonEventTargetist jetzt optional, so wie in WebKit (und gemäß der neuesten Spezifikationsversion). - Die Eigenschaft
mozResponseArrayBufferdesXMLHttpRequest-Objekts wurde durch die EigenschaftenresponseTypeundresponseersetzt. - Die Eigenschaft
datasetwurde zur SchnittstelleHTMLElementhinzugefügt, wodurch der Zugriff auf die globalen Attributendata-*eines Elements ermöglicht wird. - Die Schnittstelle
CustomEventwurde implementiert. (siehe Firefox Bug 427537) - Aus Sicherheitsgründen erben
data:- undjavascript:-URLs beim Eingeben in die Adressleiste nicht mehr den Sicherheitskontext der aktuellen Seite; stattdessen wird ein neuer, leerer Sicherheitskontext erstellt. Das bedeutet, dass Skripte, die durch Eingabe vonjavascript:-URLs in die Adressleiste geladen werden, beispielsweise keinen Zugriff auf DOM-Methoden und Ähnliches mehr haben. Diese URLs funktionieren jedoch wie bisher, wenn sie vom Skript verwendet werden.
JavaScript
- In der Vergangenheit war es möglich, den
new-Operator auf mehrere eingebaute Funktionen (eval(),parseInt(),Date.parse(), …) anzuwenden, die dies laut Spezifikation eigentlich nicht erlauben sollten. Dieses Verhalten wird nicht mehr unterstützt. Die Verwendung desnew-Operators auf diese Weise war nie offiziell unterstützt und wurde nicht weit verbreitet praktiziert, daher ist es unwahrscheinlich, dass diese Änderung Sie betrifft. - ECMAScript 2015 WeakMaps wurden als Prototypimplementierung hinzugefügt.
SVG
- Das Attribut
pathLengthwird jetzt unterstützt. - SVG-Muster, -Verläufe und -Filter funktionieren jetzt korrekt, wenn sie aus
data:-URLs geladen werden.
MathML
- Die Implementierung von
<mstyle>wurde korrigiert.
Barrierefreiheit (ARIA)
- Ein Zustandsänderungsereignis wird jetzt korrekt gesendet, wenn sich der Wert von
aria-busyändert. - Ein Attributänderungsereignis wird jetzt korrekt gesendet, wenn
aria-sortauftritt.
Netzwerk
- WebSockets
-
WebSockets wurde auf Protokollversion 07 für Firefox 6 aktualisiert. Zusätzlich wurde das globale
WebSocket-Objekt inMozWebSocketumbenannt, um zu verhindern, dass es fälschlicherweise zur Erkennung der Verfügbarkeit von unpräfixierten WebSockets verwendet wird.
- Das Parsen des
Content-Disposition-Headers wurde korrigiert, um richtig interpretierte ASCII-Zeichen verfolgt von einem Backslash als genau dieses Zeichen selbst zu behandeln. Zuvor wurde dieses Zeichen fälschlicherweise durch einen Unterstrich ("_") ersetzt. - Der Wert des Pfadfeldes von
Set-Cookie-Headern wird jetzt korrekt interpretiert, wenn Anführungszeichen verwendet werden; zuvor wurden sie als Teil der Pfadzeichenfolge und nicht als Begrenzungszeichen behandelt. Diese Änderung kann die Kompatibilität mit einigen Websites betreffen, daher sollten Autoren ihren Code überprüfen. - Der
Upgrade-Anforderungs-Header wird jetzt unterstützt; Sie können ein Upgrade eines HTTP-Kanals auf ein anderes Protokoll anfordern, indem SiensIHttpChannelInternal.HTTPUpgrade()aufrufen.
Andere Änderungen
- Unterstützung für Mikrosummen wurde entfernt; diese wurden nie weit verbreitet verwendet, waren nicht sehr auffindbar, und die Weiterführung der Unterstützung machte Verbesserungen der Places-Architektur (Lesezeichen und Verlauf) schwierig.
- WebGL unterstützt jetzt die
OES_texture_float-Erweiterung. - Das neue Scratchpad-Tool bietet einen praktischen Ort, um mit JavaScript-Code zu experimentieren.
- Die Methode
console.trace()wurde zur Console API hinzugefügt (Firefox Bug 585956).
Änderungen für Mozilla- und Add-on-Entwickler
Für einen Überblick über die Änderungen, die Sie möglicherweise vornehmen müssen, um Ihr Add-on mit Firefox 6 kompatibel zu machen, siehe Aktualisierung von Add-ons für Firefox 6.
Hinweis: Firefox 6 erfordert, dass binäre Komponenten neu kompiliert werden, ebenso wie alle Hauptversionen von Firefox. Siehe Binäre Schnittstellen für Details.
JavaScript-Code-Module
FileUtils.jsm
- Die Methode
openSafeFileOutputStream()öffnet jetzt Dateien mit demDEFER_OPENVerhaltensflag, anstatt zu versuchen, sie sofort zu öffnen.
XPCOMUtils.jsm
- Die neue Methode
importRelative()ermöglicht es Ihnen, ein JavaScript-Code-Modul von einem Pfad zu laden, der relativ zum Pfad eines anderen JavaScript-Code-Moduls ist. Dies erleichtert den Aufbau von Modulen, die voneinander abhängig sind.
XPCOM
nsCOMArray<T>hat jetzt eineRemoveObjectsAt()-Methode zum Entfernen mehrerer Objekte auf einmal aus dem Array.
Verwendung des DOM aus Chrome
- Verwendung der DOM File API im Chrome-Code
-
Obwohl Sie die DOM File API schon immer aus dem Chrome-Code verwenden konnten, unterstützt der
File-Konstruktor jetzt das Angeben einer lokalen Dateipfad-Zeichenfolge, wenn er aus Chrome verwendet wird. Außerdem können Sie die Datei, auf die zugegriffen werden soll, unter Verwendung einesnsIFile-Objekts mit der DOM File API angeben.
Schnittstellenänderungen
nsINavHistoryQueryOptionsunterstützt jetzt die Sortierung in Häufigkeitsreihenfolge unter Verwendung der neuen KonstantenSORT_BY_FREQUENCY_ASCENDINGundSORT_BY_FREQUENCY_DESCENDING.nsIFilePickerhat ein neues AttributnsIFilePicker.addToRecentDocs, das es Ihnen ermöglicht, anzugeben, dass die ausgewählte Datei zur Liste der "zuletzt verwendeten Dokumente" des Benutzers hinzugefügt werden sollte, sofern vorhanden. Dieses Attribut hat keine Wirkung im Privaten Modus.- Methoden von
nsINavBookmarkObservermit Item-ID-Parametern erfordern jetzt auch eine GUID. nsIPrefBranch.clearUserPref()wirft keine Ausnahme mehr, wenn die spezifizierte Präferenz nicht existiert oder keinen benutzerdefinierten Wert hat. Stattdessen tut sie nichts.- Die Schnittstelle
nsIMemoryReporterbietet jetzt Unterstützung für die Angabe der Art des beschriebenen Speichers (gemapped, Heap oder andere). - Das Attribut
stateDatavonnsISHEntrygibt jetzt einnsIStructuredCloneContainerzurück. nsIURIhat ein neues AttributnsIURI.ref, das den Referenzteil (den Teil nach dem "#") der URI zurückgibt. Es hat auch neue MethodennsIURI.cloneIgnoringRef(), die dasnsIURIohne das ref-Mitglied klonen, undnsIURI.equalsExceptRef(), die es mit einem anderennsIURIvergleicht und dabei das ref-Mitglied ignoriert.
Neue Schnittstellen
mozIAsyncFavicons-
Ein neuer Dienst, der Ihnen ermöglicht, asynchron auf den Favicon-Dienst zuzugreifen.
nsIEventSource-
Details folgen.
nsIGSettingsCollection-
Details folgen.
nsIGSettingsService-
Details folgen.
nsIHttpUpgradeListener-
Die Callback-Schnittstelle zum Umgang mit HTTP-Upgrade-Anfragen über die Methode
nsIHttpChannelInternal.HTTPUpgrade(). nsIStructuredCloneContainer-
Ein Container für Objekte, die mit dem strukturierten Klon-Algorithmus serialisiert wurden.
nsITelemetry-
Implementiert Telemetrie-Unterstützung, um die Erfassung von Telemetriedaten zur Darstellung von Histogrammen für Leistungsüberwachungszwecke zu ermöglichen. Siehe Firefox Bug 649502 und Firefox Bug 585196.
nsITimedChannel-
Siehe Firefox Bug 576006.
nsIWebSocketListener-
Siehe Firefox Bug 640003.
nsIWebSocketProtocol-
Siehe Firefox Bug 640003.
Entfernte Schnittstellen
Die folgenden Schnittstellen waren Implementierungsdetails, die nicht mehr benötigt werden:
nsIDOMDocumentEvent(siehe Firefox Bug 655517)nsIDOMDocumentTraversal(siehe Firefox Bug 655514)nsIDOMDocumentRange(siehe Firefox Bug 655513)IWeaveCrypto(siehe Firefox Bug 651596)nsIDOM3DocumentEvent(siehe Firefox Bug 481863)nsIDOMAbstractViewnsILiveTitleNotificationSubjectnsIPlugin(siehe Firefox Bug 637253)nsIPluginInstance(siehe Firefox Bug 637253)nsIHTMLEditRules(siehe Firefox Bug 633750)nsIXSLTProcessorObsolete(siehe Firefox Bug 649534)
Andere Änderungen
- Verwendung von Präferenzen aus Anwendungscode
-
Eine neue statische API steht zur Verfügung, um einfach auf Präferenzen zuzugreifen; dies ist nur für Anwendungscode verfügbar und kann nicht von Add-ons verwendet werden.