Firefox 6 Versionshinweise für Entwickler
Firefox 6, basierend auf Gecko 6.0, wurde am 16. August 2011 veröffentlicht. Dieser Artikel enthält Links zu Informationen über Änderungen, die Entwickler in dieser Version betreffen.
Änderungen für Web-Entwickler
>HTML
- Das HTML5-Element
<progress>, mit dem Sie eine Fortschrittsanzeige erstellen können, wird nun unterstützt. - Das Parsen des HTML5-Elements
<track>, das Texttracks für Medienelemente angibt, wird nun unterstützt. Dieses Element sollte jetzt im DOM erscheinen, obwohl sein Verhalten noch nicht implementiert ist. - Das
<iframe>-Element wird nun korrekt von seinem Container abgeschnitten, wenn die Ecken des Containers mit derborder-radius-Eigenschaft abgerundet wurden. - Die Text-Eingabefelder der
<form>-Elemente unterstützen nicht mehr die XUL-Eigenschaftmaxwidth; dies war nie beabsichtigt und verstößt gegen die HTML-Spezifikation. Verwenden Sie stattdessen das Attributsize, um die maximale Breite der Eingabefelder festzulegen. - Die Eigenschaften
fillStyleundstrokeStyledes<canvas>-CanvasRenderingContext2dignorierten früher Müll, der nach einer gültigen Farbdefinition hinzugefügt wurde; jetzt wird dies korrekt als Fehler behandelt. Zum Beispiel wurde "red blue" als Farbe früher als "red" behandelt, obwohl es hätte ignoriert werden sollen. - Die Breite und Höhe von
<canvas>-Elementen kann nun korrekt auf 0px gesetzt werden; zuvor wurden diese willkürlich auf 300px gesetzt, wenn Sie versuchten, dies zu tun. - Unterstützung für die HTML benutzerdefinierten Datenattribute (
data-*) wurde hinzugefügt. Die DOM-Eigenschaftdatasetermöglicht den Zugriff auf sie. - Wenn ein
<textarea>-Element den Fokus erhält, wird der Texteingabepunkt standardmäßig am Anfang des Textes platziert statt am Ende. Dadurch wird 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 wie Unterstreichungen, Überstreichungen und Durchstreichungen verwendet wird.
-moz-text-decoration-line-
Diese neue Eigenschaft ermöglicht es Ihnen, die Art von Textdekorationen festzulegen, die einem Element hinzugefügt werden.
-moz-text-decoration-style-
Diese neue Eigenschaft ermöglicht es Ihnen, den Stil der Textdekorationen festzulegen, wie Unterstreichungen, Überstreichungen und Durchstreichungen. Zu den Stilen gehören Einlinien-, Doppellinien-, Wellenlinien, gepunktete Linien und dergleichen.
-moz-hyphens-
Diese neue Eigenschaft ermöglicht es Ihnen, zu steuern, wie die Silbentrennung von Wörtern während des Zeilenumbruchs gehandhabt wird.
-moz-orient-
Eine neue (derzeit Mozilla-spezifische) Eigenschaft, die es Ihnen ermöglicht, die vertikale oder horizontale Ausrichtung bestimmter Elemente (insbesondere
<progress>) zu steuern. ::-moz-progress-bar-
Ein Mozilla-spezifisches Pseudoelement, das es Ihnen ermöglicht, den Bereich eines
<progress>-Elements zu gestalten, der 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
azimuthCSS-Eigenschaft wird nicht mehr unterstützt, da wir den wenigen Code, den wir für dieauralMediengruppe hatten, entfernt haben. Es war nie signifikant implementiert, daher machte es mehr Sinn, die fehlerhafte Implementierung vorerst zu entfernen, anstatt zu versuchen, sie zu reparieren. - In der Vergangenheit wurde die
:hover-Pseudoklasse nicht auf Klassenselektoren angewendet, wenn sich diese im Quirks-Modus befanden; zum Beispiel funktionierte.some-class:hovernicht. Diese Eigenart 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, weil es nützlich sein wird. - Der
-moz-win-exclude-glass-Wert wurde zur-moz-appearance-CSS-Eigenschaft hinzugefügt, um opake Bereiche in Aero-Glass-Glasur-Effekten auf Windows-Systemen auszuschließen. - Firefox-Fehler 658949 änderte, wie das Rautezeichen (#) in Daten-URLs behandelt wird, was CSS-Stylesheets brechen kann, die ein solches Symbol enthalten, wenn es nicht maskiert ist.
DOM
- Verwenden von Media Queries aus dem Code heraus
-
Sie können jetzt das Ergebnis einer Media-Query-Zeichenfolge programmgesteuert mit der Methode
window.matchMedia()und derMediaQueryList-Schnittstelle testen. - 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 machen es möglich, dass eine Webanwendung einen Server bittet, Ereignisse zu senden, ähnlich wie lokal erstellte DOM-Ereignisse.
navigator.securityPolicy, die seit langem eine leere Zeichenfolge zurückgegeben hat, wurde komplett entfernt.BlobBuilderist jetzt implementiert, obwohl es derzeit noch mit einem Präfix versehen ist (sodass SieMozBlobBuilderverwenden müssen).- Die
Document.heightundDocument.widthwurden entfernt. Firefox-Fehler 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 verwendete, wurden beide entfernt; sie wurden nie unterstützt und sind inzwischen aus der DOM-Spezifikation entfernt worden. - Das
hashchange-Ereignis enthält jetzt korrekt die FeldernewURLundoldURL. - Die
abort()-Methode derFileReader-Schnittstelle wirft jetzt eine Ausnahme, wenn keine Dateilesung im Gange ist, wenn sie verwendet wird. - Die Methode
window.postMessage()verwendet nun den strukturierten Klon-Algorithmus, sodass Sie JavaScript-Objekte statt nur Zeichenfolgen von einem Fenster an ein anderes übergeben können. - Die API
window.historyverwendet jetzt den strukturierten Klon-Algorithmus, um die Objekte zu serialisieren, die Sie an die MethodenpushState()undreplaceState()übergeben; das ermöglicht Ihnen, komplexere Objekte zu verwenden (einschließlich solcher, die zyklische Referenzgraphen enthalten). - Sie können jetzt erkennen, wann ein Druckvorgang gestartet und abgeschlossen wurde, indem Sie auf die neuen Ereignisse
beforeprintundafterprintlauschen. - Die Eigenschaft
document.strictErrorCheckingwurde entfernt, da sie nie implementiert und aus der DOM-Spezifikation entfernt wurde. - Die standardmäßige Eigenschaft
event.defaultPreventedwird jetzt unterstützt; Sie sollten diese anstelle der nicht standardmäßigen MethodegetPreventDefault()verwenden, um zu erkennen, obevent.preventDefault()auf das Ereignis aufgerufen wurde. - Die Eigenschaft
window.topist jetzt ordnungsgemäß schreibgeschützt. - DOM-Ansichten, die wir nie dokumentiert haben, wurden entfernt. Dies war ein bisschen ein Implementierungsdetail, das unnötigerweise Dinge komplizierte, also haben wir es entfernt. Wenn Ihnen diese Änderung auffällt, machen Sie wahrscheinlich etwas falsch.
- Der
useCapture-Parameter der FunktionaddEventListener()desEventTargetist jetzt optional, ebenso wie in WebKit (und entsprechend der neuesten Version der Spezifikation). - Die Eigenschaft
mozResponseArrayBufferdesXMLHttpRequest-Objekts wurde durch die EigenschaftenresponseTypeundresponseersetzt. - Die Eigenschaft
datasetwurde zur SchnittstelleHTMLElementhinzugefügt, sodass Sie auf diedata-*globalen Attribute eines Elements zugreifen können. - Die Schnittstelle
CustomEventwurde implementiert. (siehe Firefox-Fehler 427537) - Aus Sicherheitsgründen erben
data:- undjavascript:-URLs nicht mehr den Sicherheitskontext der aktuellen Seite, wenn der Benutzer sie in die Adressleiste eingibt; stattdessen wird ein neuer, leerer Sicherheitskontext erstellt. Das bedeutet, dass vonjavascript:-URLs, die in die Adressleiste eingegeben werden, geladene Skripte keinen Zugriff mehr auf DOM-Methoden usw. haben. Diese URLs funktionieren jedoch weiterhin wie zuvor, wenn sie von Skripten verwendet werden.
JavaScript
- In der Vergangenheit war es möglich, den
new-Operator auf mehrere eingebaute Funktionen (eval(),parseInt(),Date.parse(), ...) zu verwenden, die dies laut Spezifikation nicht hätten ermöglichen sollen. Dieses Verhalten wird nicht mehr unterstützt. Die Verwendung desnew-Operators auf diese Weise wurde nie offiziell unterstützt und war nicht weit verbreitet, 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 von
data:URLs geladen werden.
MathML
- Die Implementierung von
<mstyle>wurde korrigiert.
Barrierefreiheit (ARIA)
- Ein Zustandsänderungsereignis wird jetzt korrekt gesendet, wenn der Wert von
aria-busygeändert wird. - Ein Attributänderungsereignis wird jetzt korrekt gesendet, wenn
aria-sortauftritt.
Netzwerk
- WebSockets
-
WebSockets wurde für Firefox 6 auf Protokollversion 07 aktualisiert. Zusätzlich wurde das globale
WebSocket-Objekt inMozWebSocketumbenannt, um zu verhindern, dass es fälschlicherweise zum Erkennen der Verfügbarkeit von unpräfixten WebSockets verwendet wird.
- Das Parsen des
Content-Disposition-Headers wurde behoben, um backslash-escaped ASCII-Zeichen als genau dieses Zeichen anzusehen. Zuvor wurde das Zeichen fälschlicherweise durch einen Unterstrich ("_") ersetzt. - Der Wert des Pfadfelds in
Set-Cookie-Headers wird jetzt korrekt interpretiert, wenn Anführungszeichen verwendet werden; zuvor wurden diese als Teil des Pfadstrings betrachtet, anstatt als Trennzeichen. Diese Änderung kann die Kompatibilität mit einigen Websites beeinflussen, daher sollten Autoren ihren Code überprüfen. - Der
Upgrade-Anforderungsheader wird jetzt unterstützt; Sie können ein Upgrade eines HTTP-Kanals zu einem anderen Protokoll anfordern, indem SiensIHttpChannelInternal.HTTPUpgrade()aufrufen.
Andere Änderungen
- Die Unterstützung für Mikrosummen wurde entfernt; diese wurden nie weit verbreitet verwendet, waren nicht sehr auffindbar und die fortgesetzte Unterstützung machte Verbesserungen an der Places-Architektur (Lesezeichen und Verlauf) schwierig.
- WebGL unterstützt jetzt die
OES_texture_float-Erweiterung. - Das neue Werkzeug Scratchpad bietet eine praktische Möglichkeit, mit JavaScript-Code zu experimentieren.
- Die Methode
console.trace()wurde zur Console API hinzugefügt (Firefox-Fehler 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 Aktualisieren von Add-ons für Firefox 6.
Hinweis: Firefox 6 erfordert, dass Binärkomponenten neu kompiliert werden, wie dies bei allen Hauptversionen von Firefox der Fall ist. Siehe Binary Interfaces für Einzelheiten.
JavaScript-Code-Module
FileUtils.jsm
- Die Methode
openSafeFileOutputStream()öffnet nun Dateien mit demDEFER_OPENVerhaltensflagg anstatt zu versuchen, sie sofort zu öffnen.
XPCOMUtils.jsm
- Die neue Methode
importRelative()ermöglicht das Laden eines JavaScript-Code-Moduls von einem Pfad relativ zu dem eines anderen JavaScript-Code-Moduls. Dies erleichtert den Aufbau von Modulen, die voneinander abhängig sind.
XPCOM
nsCOMArray<T>verfügt jetzt über eineRemoveObjectsAt()-Methode zum Entfernen mehrerer Objekte gleichzeitig aus dem Array.
Verwendung des DOM aus Chrome
- Verwendung der DOM File API in Chrome-Code
-
Obwohl Sie die DOM File API immer aus Chrome-Code verwenden konnten, unterstützt der
File-Konstruktor jetzt die Angabe eines lokalen Pfadnamen-Strings, wenn er aus Chrome verwendet wird. Außerdem können Sie die Datei, auf die Sie zugreifen möchten, mit der DOM File API über einnsIFile-Objekt angeben.
Schnittstellenänderungen
nsINavHistoryQueryOptionsunterstützt jetzt die Sortierung in Häufigkeitsreihenfolge mit den neuen KonstantenSORT_BY_FREQUENCY_ASCENDINGundSORT_BY_FREQUENCY_DESCENDING.nsIFilePickerhat ein neues AttributnsIFilePicker.addToRecentDocs, das es Ihnen ermöglicht anzugeben, dass die ausgewählte Datei in die Liste der "zuletzt verwendeten Dokumente" des Benutzers aufgenommen werden soll, sofern vorhanden. Dieses Attribut hat keinen Effekt, wenn der private Browsing-Modus aktiv ist.- Methoden von
nsINavBookmarkObservermit Item-ID-Parametern erfordern jetzt auch eine GUID. nsIPrefBranch.clearUserPref()löst keine Ausnahme mehr aus, wenn die angegebene Einstellung nicht existiert oder keinen benutzerspezifischen Wert hat. Stattdessen wird nichts unternommen.- Die
nsIMemoryReporter-Schnittstelle bietet jetzt Unterstützung dafür, die Art des beschriebenen Speichers anzugeben (zugeordnet, Heap oder anderes). - Das Attribut
stateDatavonnsISHEntrygibt jetzt einennsIStructuredCloneContainerzurück. nsIURIhat ein neues AttributnsIURI.ref, das den Referenzanteil (den Teil nach dem "#") der URI zurückgibt. Es gibt auch neue MethodennsIURI.cloneIgnoringRef(), die diensIURIohne dasref-Mitglied klonen, undnsIURI.equalsExceptRef(), die mit einer anderennsIURIvergleicht, wobei dasref-Mitglied ignoriert wird.
Neue Schnittstellen
mozIAsyncFavicons-
Ein neuer Dienst, der es Ihnen ermöglicht, auf den Favicon-Dienst asynchron zuzugreifen.
nsIEventSource-
Details folgen.
nsIGSettingsCollection-
Details folgen.
nsIGSettingsService-
Details folgen.
nsIHttpUpgradeListener-
Die Callback-Schnittstelle für die Behandlung von HTTP-Upgrade-Anfragen über die Methode
nsIHttpChannelInternal.HTTPUpgrade(). nsIStructuredCloneContainer-
Ein Container für Objekte, die mit dem strukturierten Klon-Algorithmus serialisiert wurden.
nsITelemetry-
Implementiert Telemetrieunterstützung, um das Erfassen von Telemetriedaten zu ermöglichen, die zur Darstellung von Histogrammen für Leistungsüberwachungszwecke verwendet werden. Siehe Firefox-Fehler 649502 und Firefox-Fehler 585196.
nsITimedChannel-
Siehe Firefox-Fehler 576006.
nsIWebSocketListener-
Siehe Firefox-Fehler 640003.
nsIWebSocketProtocol-
Siehe Firefox-Fehler 640003.
Entfernte Schnittstellen
Die folgenden Schnittstellen waren Implementierungsdetails, die nicht mehr benötigt werden:
nsIDOMDocumentEvent(siehe Firefox-Fehler 655517)nsIDOMDocumentTraversal(siehe Firefox-Fehler 655514)nsIDOMDocumentRange(siehe Firefox-Fehler 655513)IWeaveCrypto(siehe Firefox-Fehler 651596)nsIDOM3DocumentEvent(siehe Firefox-Fehler 481863)nsIDOMAbstractViewnsILiveTitleNotificationSubjectnsIPlugin(siehe Firefox-Fehler 637253)nsIPluginInstance(siehe Firefox-Fehler 637253)nsIHTMLEditRules(siehe Firefox-Fehler 633750)nsIXSLTProcessorObsolete(siehe Firefox-Fehler 649534)
Andere Änderungen
- Verwendung von Einstellungen aus Anwendungscode
-
Eine neue statische API steht zur Verfügung, um einfach auf Einstellungen zuzugreifen; dies ist nur für Anwendungscode verfügbar und kann nicht von Add-ons verwendet werden.