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 Fortschrittsanzeige erstellen können, wird nun unterstützt. - Die Analyse des HTML5-Elements
<track>, das Textspuren für Medienelemente spezifiziert, wird nun unterstützt. Dieses Element sollte nun im DOM erscheinen, obwohl sein Verhalten noch nicht implementiert ist. - Das
<iframe>-Element wird jetzt korrekt von seinem Container abgeschnitten, wenn die Ecken des Containers mithilfe der Eigenschaftborder-radiusabgerundet wurden. - Die Texteingabefelder von
<form>-Elementen unterstützen nicht mehr die XUL-Eigenschaftmaxwidth; dies war nie beabsichtigt und verstößt gegen die HTML-Spezifikation. Stattdessen sollten Sie das Attributsizeverwenden, um die maximale Breite der Eingabefelder festzulegen. - Die Eigenschaften
fillStyleundstrokeStyledes<canvas>-ObjektsCanvasRenderingContext2dhaben früher Müll ignoriert, der nach einer gültigen Farbbeschreibung vorhanden war; jetzt wird dies korrekt als Fehler behandelt. Beispielsweise wurde "red blue" als Farbe früher als "red" behandelt, sollte aber ignoriert werden. - Die Breite und Höhe von
<canvas>-Elementen kann jetzt ordnungsgemäß auf 0px eingestellt werden; vorher wurden diese willkürlich auf 300px festgelegt, wenn Sie dies versucht haben. - 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 Texteinfügepunkt nun standardmäßig an den Anfang des Textes statt an das Ende gesetzt. Dies macht das Verhalten von Firefox konsistent mit anderen Browsern.
CSS
-moz-text-decoration-color-
Diese neue Eigenschaft ermöglicht es, die von Textdekorationen verwendete Farbe wie Unterstreichungen, Überstreichungen und Durchstreichungen festzulegen.
-moz-text-decoration-line-
Diese neue Eigenschaft ermöglicht es, die Art der dem Element hinzugefügten Textdekorationen festzulegen.
-moz-text-decoration-style-
Diese neue Eigenschaft ermöglicht es, den Stil von Textdekorationen wie Unterstreichungen, Überstreichungen und Durchstreichungen festzulegen. Die Stile umfassen einstrichige, doppelte Striche, Wellenlinien, Punktlinien usw.
-moz-hyphens-
Diese neue Eigenschaft ermöglicht es, die Silbentrennung von Wörtern beim Zeilenumbruch zu steuern.
-moz-orient-
Eine neue (derzeit Mozilla-spezifische) Eigenschaft, die es ermöglicht, die vertikale oder horizontale Ausrichtung bestimmter Elemente (insbesondere
<progress>) zu steuern. ::-moz-progress-bar-
Ein Mozilla-spezifisches Pseudoelement, das es ermöglicht, den Bereich eines
<progress>-Elements zu stylen, der den abgeschlossenen Teil einer Aufgabe darstellt.
Andere Änderungen
- Die Eigenschaft
@-moz-documenthat eine neueregexp()-Funktion, die es ermöglicht, die URL des Dokuments mit einem regulären Ausdruck abzugleichen. - Die CSS-Eigenschaft
azimuthwird nicht mehr unterstützt, da wir den geringen Code, den wir für dieauralMediengruppe hatten, entfernt haben. Sie wurde nie signifikant implementiert, daher machte es mehr Sinn, die veraltete Implementierung vorübergehend zu entfernen, als zu versuchen, sie zu reparieren. - In der Vergangenheit wurde die
:hoverPseudoklasse nicht auf Klassenselektoren angewendet, wenn der Quirks-Modus aktiviert war; zum Beispiel funktionierte.some-class:hovernicht. Diese Eigenheit wurde entfernt. - Die
:indeterminatePseudoklasse kann auf<progress>Elemente angewendet werden. Dies ist nicht standardmäßig, aber wir hoffen, dass es von anderen Browsern übernommen wird, da es nützlich sein wird. - Der Wert
-moz-win-exclude-glasswurde zur-moz-appearanceCSS-Eigenschaft hinzugefügt, um opake Bereiche in Aero Glass-Effekten auf Windows-Systemen auszuschließen. - Firefox-Fehler 658949 hat geändert, wie das Hash (#)-Symbol in Daten-URLs behandelt wird, was CSS-Stylesheets, die ein solches Symbol enthalten, beeinträchtigen kann, wenn es nicht maskiert wird.
DOM
- Verwendung von Medienabfragen aus Code
-
Sie können jetzt das Ergebnis einer Medienabfragezeichenfolge programmgesteuert mit der Methode
window.matchMedia()und derMediaQueryListSchnittstelle testen. - Touch-Ereignisse
-
Firefox 6 fügt Unterstützung für W3C Standard-Touch-Ereignisse hinzu; diese machen es einfach, ein oder mehrere Berührungen gleichzeitig auf berührungsempfindlichen Oberflächen wie Touchscreens und Trackpads zu interpretieren.
- Vom Server gesendete Ereignisse
-
Vom Server gesendete Ereignisse machen es möglich, dass eine Webanwendung den Server anweist, Ereignisse zu senden, genau wie lokal erstellte DOM-Ereignisse.
navigator.securityPolicy, das schon lange einen leeren String zurückgegeben hat, wurde vollständig entfernt.BlobBuilderist jetzt implementiert, obwohl es vorerst mit einem Präfix (daher müssen SieMozBlobBuilderverwenden) versehen ist.Document.heightundDocument.widthwurden entfernt. Firefox-Fehler 585877- Die Eigenschaften
entitiesundnotationsdesDocumentType-Objekts, die nie implementiert und immernullzurückgegeben wurden, wurden entfernt, da sie auch aus der Spezifikation entfernt wurden. - Die
DOMConfigurationSchnittstelle und die sie verwendende Eigenschaftdocument.domConfigwurden beide entfernt; sie wurden nie unterstützt und sind seitdem aus der DOM-Spezifikation entfernt worden. - Das
hashchange-Ereignis enthält jetzt korrekt die FeldernewURLundoldURL. - Die Methode
abort()derFileReader-Schnittstelle löst jetzt eine Ausnahme aus, wenn sie verwendet wird, während kein Dateilesevorgang im Gange ist. - Die Methode
window.postMessage()verwendet jetzt den strukturierten Klon-Algorithmus, um JavaScript-Objekte anstelle von nur Zeichenfolgen von einem Fenster zu einem anderen zu übertragen. - Die API
window.historyverwendet jetzt den strukturierten Klon-Algorithmus, um die Objekte zu serialisieren, die Sie an die MethodenpushState()undreplaceState()übergeben; dies ermöglicht die Verwendung komplexerer Objekte (einschließlich solcher, die zyklische Grafen von Referenzen enthalten). - Sie können jetzt erkunden, wann Druckanforderungen initiiert und abgeschlossen werden, indem Sie auf die neuen Ereignisse
beforeprintundafterprinthören. - Die Eigenschaft
document.strictErrorCheckingwurde entfernt, da sie nie implementiert wurde 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()für das Ereignis aufgerufen wurde. - Die Eigenschaft
window.topist jetzt korrekt schreibgeschützt. - DOM-Ansichten, die wir nie dokumentiert haben, wurden entfernt. Dies war ein wenig Implementierungsdetail, das die Dinge unnötig verkomplizierte, also haben wir es entfernt. Wenn Sie diese Änderung bemerken, machen Sie wahrscheinlich etwas falsch.
- Die Funktion
addEventListener()desEventTarget-Ziels hat jetzt einen optionalen ParameteruseCapture, wie es bei WebKit der Fall ist (und gemäß der neuesten Version der Spezifikation). - Die Eigenschaft
mozResponseArrayBufferdesXMLHttpRequest-Objekts wurde durch die EigenschaftenresponseTypeundresponseersetzt. - Die Eigenschaft
datasetwurde zur SchnittstelleHTMLElementhinzugefügt, was den Zugriff auf die globalen Attributedata-*eines Elements ermöglicht. - 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 beispielsweise, dass Skripte, die durch Eingabe vonjavascript:-URLs in die Adressleiste geladen werden, keinen Zugriff mehr auf DOM-Methoden haben. Diese URLs funktionieren jedoch nach wie vor wie bisher, wenn sie durch Skripte verwendet werden.
JavaScript
- In der Vergangenheit war es möglich, den
new-Operator bei mehreren eingebauten Funktionen (eval(),parseInt(),Date.parse(), …) zu verwenden, die dies gemäß der Spezifikation nicht hätten erlauben 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, so dass es unwahrscheinlich ist, dass Sie von dieser Änderung betroffen sind. - ECMAScript 2015 WeakMaps wurden als Prototyp-Implementierung 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
aria-busyändert. - Ein Attributänderungsereignis wird jetzt korrekt gesendet, wenn
aria-sortauftritt.
Netzwerke
- WebSockets
-
WebSockets wurde auf Protokollversion 07 für Firefox 6 aktualisiert. Außerdem wurde das globale
WebSocket-Objekt inMozWebSocketumbenannt, um zu verhindern, dass es fälschlicherweise zur Erkennung der Verfügbarkeit nicht präfixierter WebSockets verwendet wird.
- Das Parsing des
Content-Disposition-Headers wurde korrigiert, um ASCII-Zeichen, die durch Rückwärtsschrägstriche maskiert sind, korrekt als genau dieses Zeichen zu interpretieren. Bisher wurde dieses Zeichen fälschlicherweise durch einen Unterstrich ("_") ersetzt. - Der Wert des Pfadfeldes in
Set-Cookie-Headern wird jetzt korrekt interpretiert, wenn Anführungszeichen verwendet werden; zuvor wurden sie als Teil der Pfadzeichenfolge behandelt, anstatt als Begrenzungszeichen. Diese Änderung kann die Kompatibilität mit einigen Websites beeinflussen, daher sollten Autoren ihren Code überprüfen. - Der
UpgradeAnforderungs-Header wird jetzt unterstützt; Sie können ein Upgrade eines HTTP-Kanals auf ein anderes Protokoll anfordern, indem SiensIHttpChannelInternal.HTTPUpgrade()aufrufen.
Weitere Änderungen
- Unterstützung für Mikrozusammenfassungen wurde entfernt; diese wurden nie umfangreich genutzt, waren nicht sehr auffindbar und die weitere Unterstützung machte Verbesserungen an der Architektur von Places (Lesezeichen und Historie) schwierig.
- WebGL unterstützt jetzt die
OES_texture_floatErweiterung. - Das neue Scratchpad Tool ist ein praktischer Ort, um mit JavaScript-Code zu experimentieren.
- Die Methode
console.trace()wurde zur Konsolen-API hinzugefügt (Firefox-Fehler 585956).
Änderungen für Mozilla- und Add-on-Entwickler
Für einen Überblick über die Änderungen, die Sie 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äre Komponenten neu kompiliert werden, wie es bei allen wichtigen Firefox-Versionen der Fall ist. Siehe Binäre Schnittstellen für Details.
JavaScript-Code-Module
FileUtils.jsm
- Die Methode
openSafeFileOutputStream()öffnet Dateien jetzt mit demDEFER_OPENVerhaltens-Flag, anstatt zu versuchen, sie sofort zu öffnen.
XPCOMUtils.jsm
- Die neue Methode
importRelative()ermöglicht es, ein JavaScript-Code-Modul aus einem Pfad relativ zum Pfad eines anderen JavaScript-Code-Moduls zu laden. Dadurch wird es einfacher, Module zu erstellen, die voneinander abhängig sind.
XPCOM
nsCOMArray<T>hat jetzt eine MethodeRemoveObjectsAt()zum Entfernen mehrerer Objekte auf einmal aus dem Array.
Verwendung des DOM von Chrome
- Verwendung der DOM-Datei-API in Chrome-Code
-
Obwohl Sie die DOM-Datei-API immer schon aus dem Chrome-Code verwenden konnten, unterstützt der
File-Konstruktor nun die Angabe eines lokalen Pfadnamen-Strings, wenn er aus dem Chrome verwendet wird. Darüber hinaus können Sie die Datei, auf die zugegriffen werden soll, auch mit einemnsIFile-Objekt unter Verwendung der DOM-Datei-API angeben.
Schnittstellenänderungen
nsINavHistoryQueryOptionsunterstützt jetzt das Sortieren in Häufigkeitsreihenfolge mit den neuen KonstantenSORT_BY_FREQUENCY_ASCENDINGundSORT_BY_FREQUENCY_DESCENDING.nsIFilePickerhat ein neues AttributnsIFilePicker.addToRecentDocs, mit dem Sie angeben können, dass die ausgewählte Datei zur Liste der "zuletzt verwendeten Dokumente" des Benutzers hinzugefügt werden sollte, sofern eine solche Liste vorhanden ist. Dieses Attribut hat keine Wirkung im privaten Modus.- Methoden von
nsINavBookmarkObservermit Artikel-ID-Parametern erfordern jetzt auch eine GUID. nsIPrefBranch.clearUserPref()wirft keine Ausnahme mehr, wenn die angegebene Voreinstellung nicht existiert oder keinen vom Benutzer festgelegten Wert hat. Stattdessen passiert nichts.- Die Schnittstelle
nsIMemoryReporterunterstützt jetzt die Angabe der Art des beschriebenen Speichers (gemappt, Heap oder anderes). - Das Attribut
stateDatavonnsISHEntrygibt jetzt einennsIStructuredCloneContainerzurück. nsIURIhat ein neuesnsIURI.refAttribut, das den Referenzteil (den Teil nach dem "#") der URI zurückgibt. Es gibt auch neue MethodennsIURI.cloneIgnoringRef(), die diensIURIohne das ref-Mitglied klont undnsIURI.equalsExceptRef(), die es ermöglicht, mit einer anderennsIURIohne Beachtung des ref-Mitgliedes zu vergleichen.
Neue Schnittstellen
mozIAsyncFavicons-
Ein neuer Dienst, der es ermöglicht, asynchron auf den Favicon-Dienst zuzugreifen.
nsIEventSource-
Details folgen.
nsIGSettingsCollection-
Details folgen.
nsIGSettingsService-
Details folgen.
nsIHttpUpgradeListener-
Die Callback-Schnittstelle zur Bearbeitung von HTTP-Upgrade-Anforderungen über die Methode
nsIHttpChannelInternal.HTTPUpgrade(). nsIStructuredCloneContainer-
Ein Container für Objekte, die mit dem strukturierten Klon-Algorithmus serialisiert wurden.
nsITelemetry-
Implementiert Telemetrieunterstützung, um die Aufzeichnung von Telemetriedaten zu ermöglichen, die zur Darstellung von Histogrammen für Leistungszwecke 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)
Weitere Änderungen
- Verwendung von Voreinstellungen aus Anwendungscode
-
Eine neue statische API ist verfügbar, um leicht auf Voreinstellungen zuzugreifen; dies ist nur für Anwendungscode verfügbar und kann nicht von Add-ons verwendet werden.