Firefox 6 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 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 Element
<iframe>
wird jetzt korrekt von seinem Container abgeschnitten, wenn die Ecken des Containers mit der Eigenschaftborder-radius
abgerundet wurden. - Textfelder von
<form>
-Elementen unterstützen nicht mehr die XULmaxwidth
-Eigenschaft; dies war nie beabsichtigt und verstößt gegen die HTML-Spezifikation. Stattdessen sollten Sie das Attributsize
verwenden, um die maximale Breite von Eingabefeldern festzulegen. - Die Eigenschaften
fillStyle
undstrokeStyle
des<canvas>
CanvasRenderingContext2d
ignorierten früher Abfälle nach einer gültigen Farbdefinition; jetzt wird dies korrekt als Fehler behandelt. Zum Beispiel wurde "red blue" als Farbe früher als "red" behandelt, obwohl es ignoriert werden sollte. - 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 das versuchten. - Unterstützung für die HTML benutzerdefinierten Datenattribute (
data-*
) wurde hinzugefügt. Die DOM-Eigenschaftdataset
ermöglicht es, auf sie zuzugreifen. - Wenn ein
<textarea>
-Element den Fokus erhält, wird der Texteingabepunkt jetzt standardmäßig am Anfang des Textes platziert, anstatt am Ende. Dies macht das Verhalten von Firefox konsistent mit anderen Browsern.
CSS
-moz-text-decoration-color
-
Diese neue Eigenschaft ermöglicht es Ihnen, die Farbe von Textdekorationen wie Unterstreichungen, Überstrichen und Durchstreichungen festzulegen.
-moz-text-decoration-line
-
Diese neue Eigenschaft ermöglicht es Ihnen, die Art der 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, Überstriche und Durchstreichungen. Zu den Stilen gehören einfache Striche, Doppellinien, gewellte Linien, gepunktete Linien usw.
-moz-hyphens
-
Diese neue Eigenschaft ermöglicht es Ihnen, zu kontrollieren, wie die Trennung von Wörtern beim Zeilenumbruch behandelt wird.
-moz-orient
-
Eine neue (derzeit Mozilla-spezifische) Eigenschaft, mit der Sie die vertikale oder horizontale Ausrichtung bestimmter Elemente (insbesondere
<progress>
) steuern können. ::-moz-progress-bar
-
Ein Mozilla-spezifisches Pseudoelement, mit dem Sie den Bereich eines
<progress>
-Elements gestalten können, der den abgeschlossenen Teil einer Aufgabe darstellt.
Andere Änderungen
- Die
@-moz-document
-Eigenschaft hat eine neueregexp()
-Funktion, mit der Sie die URL des Dokuments mit einem regulären Ausdruck abgleichen können. - Die CSS-Eigenschaft
azimuth
wird nicht mehr unterstützt, da wir den wenigen Code entfernt haben, den wir für dieaural
-Mediengruppe hatten. Sie war nie signifikant implementiert, daher machte es mehr Sinn, die veraltete Implementierung vorerst zu entfernen, anstatt zu versuchen, sie zu reparieren. - In der Vergangenheit wurde die Pseudoklasse
:hover
in der Quirks-Modus nicht auf Klassen-Selektoren angewendet; zum Beispiel funktionierte.some-class:hover
nicht. Diese Eigenheit wurde entfernt. - Die Pseudoklasse
:indeterminate
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 Wert
-moz-win-exclude-glass
wurde der CSS-Eigenschaft-moz-appearance
hinzugefügt, um undurchsichtige Bereiche in Aero Glass-Effekten unter Windows-Systemen auszuschließen. - Firefox Bug 658949 änderte, wie das Hash-Symbol (#) in Daten-URLs behandelt wird, was CSS-Stylesheets, die ein solches Symbol enthalten, beeinträchtigen kann, wenn es nicht entkommen ist.
DOM
- Verwendung von Media Queries im Code
-
Sie können jetzt das Ergebnis einer Media Query-Zeichenkette programmatisch mit der Methode
window.matchMedia()
und der SchnittstelleMediaQueryList
testen. - Touch-Ereignisse
-
Firefox 6 unterstützt die W3C-Standard-Touch-Ereignisse; diese erleichtern die Interpretation eines oder mehrerer gleichzeitig auf touch-sensitiven Oberflächen ausgeführter Berührungen wie Touchscreens und Trackpads.
- Server-gesendete Ereignisse
-
Server-gesendete Ereignisse ermöglichen es einer Webanwendung, einen Server zu bitten, Ereignisse ähnlich wie bei lokal erstellten DOM-Ereignissen zu senden.
navigator.securityPolicy
, das seit langem einen leeren String zurückgegeben hat, wurde vollständig entfernt.BlobBuilder
ist nun implementiert, obwohl es vorerst mit Präfix (sodass SieMozBlobBuilder
verwenden müssen).- Die
Document.height
undDocument.width
wurden entfernt. Firefox Bug 585877 - Die Eigenschaften
entities
undnotations
desDocumentType
-Objekts, die nie implementiert wurden und immernull
zurückgaben, wurden entfernt, da sie ohnehin aus der Spezifikation entfernt wurden. - Das
DOMConfiguration
-Interface und diedocument.domConfig
-Eigenschaft, die es nutzte, wurden beide entfernt; sie wurden nie unterstützt und sind seitdem aus der DOM-Spezifikation gestrichen worden. - Das
hashchange
-Ereignis enthält jetzt korrekt dienewURL
- undoldURL
-Felder. - Die
abort()
-Methode derFileReader
-Schnittstelle wirft nun eine Ausnahme, wenn sie verwendet wird, ohne dass ein Dateilesen im Gange ist. - Die
window.postMessage()
-Methode verwendet jetzt den strukturierten Klon-Algorithmus, um JavaScript-Objekte anstatt nur Strings von einem Fenster zu einem anderen zu übertragen. - Die
window.history
-API verwendet 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 Referenzgraphen enthalten). - Sie können jetzt erkennen, wann ein Druckvorgang begonnen und abgeschlossen wurde, indem Sie auf die neuen Ereignisse
beforeprint
undafterprint
hören. - Die Eigenschaft
document.strictErrorChecking
wurde entfernt, da sie nie implementiert wurde und aus der DOM-Spezifikation entfernt wurde. - Die standardisierte Eigenschaft
event.defaultPrevented
wird jetzt unterstützt; Sie sollten diese anstelle der nicht standardisierten MethodegetPreventDefault()
verwenden, um zu prüfen, obevent.preventDefault()
für das Ereignis aufgerufen wurde. - Die Eigenschaft
window.top
ist jetzt richtig schreibgeschützt. - DOM-Ansichten, die wir nie dokumentiert haben, wurden entfernt. Dies war ein Implementierungsdetail, das unnötig Komplikationen hervorrief, also haben wir es entfernt. Wenn Sie diese Änderung bemerken, machen Sie wahrscheinlich etwas falsch.
- Die
useCapture
-ParameterfunktionaddEventListener()
desEventTarget
ist jetzt optional, wie es auch in WebKit der Fall ist (und gemäß der neuesten Version der Spezifikation). - Die
mozResponseArrayBuffer
-Eigenschaft desXMLHttpRequest
-Objekts wurde durch die EigenschaftenresponseType
undresponse
ersetzt. - Die Eigenschaft
dataset
wurde der SchnittstelleHTMLElement
hinzugefügt und ermöglicht den Zugriff auf die globalen Datenattributedata-*
eines Elements. - Die Schnittstelle
CustomEvent
wurde implementiert. (siehe Firefox Bug 427537) - Aus Sicherheitsgründen erben
data:
- undjavascript:
-URLs beim Eingeben in der Adressleiste nicht mehr den Sicherheitskontext der aktuellen Seite; stattdessen wird ein neuer, leerer Sicherheitskontext erstellt. Das bedeutet, dass Skripte, die durch das Eingeben vonjavascript:
-URLs in der Adressleiste geladen werden, keinen Zugriff mehr auf DOM-Methoden und dergleichen 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()
, …) anzuwenden, die dies nicht erlauben sollten, gemäß der Spezifikation. Dieses Verhalten wird nicht mehr unterstützt. Diese Art der Verwendung desnew
-Operators war nie offiziell unterstützt und wurde nicht weit verbreitet genutzt, daher ist es unwahrscheinlich, dass diese Änderung Sie betrifft. - ECMAScript 2015 WeakMaps wurden als Prototype-Implementierung hinzugefügt.
SVG
- Das Attribut
pathLength
wird 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 sich der Wert von
aria-busy
ändert. - Ein Attributänderungsereignis wird jetzt korrekt gesendet, wenn
aria-sort
eintritt.
Netzwerk
- WebSockets
-
WebSockets wurde für Firefox 6 auf Protokollversion 07 aktualisiert. Darüber hinaus wurde das globale
WebSocket
-Objekt inMozWebSocket
umbenannt, um zu verhindern, dass es fälschlicherweise zur Erkennung der Verfügbarkeit von unpräfixierten WebSockets verwendet wird.
- Das Parsen des Headers
Content-Disposition
wurde korrigiert, um ordnungsgemäß Backslash-escapete ASCII-Zeichen als genau dieses Zeichen selbst zu interpretieren. Zuvor wurde dieses 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 sie als Teil des Pfadnamens behandelt, anstatt als Abgrenzungszeichen. Diese Änderung kann die Kompatibilität mit einigen Websites beeinträchtigen, daher sollten Autoren ihren Code überprüfen. - Der
Upgrade
-Request-Header wird jetzt unterstützt; Sie können ein Upgrade eines HTTP-Kanals auf ein anderes Protokoll anfordern, indem SiensIHttpChannelInternal.HTTPUpgrade()
aufrufen.
Andere Änderungen
- Die Unterstützung für Mikrosummaries wurde entfernt; diese wurden nie weit verbreitet genutzt, waren nicht sehr auffindbar und deren Unterstützung erschwerte Verbesserungen der Places-Architektur (Lesezeichen und Verlauf).
- 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 Aktualisieren von Add-ons für Firefox 6.
Hinweis: Firefox 6 erfordert, dass binäre Komponenten neu kompiliert werden, genauso 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_OPEN
Verhaltensflag, anstatt zu versuchen, sie sofort zu öffnen.
XPCOMUtils.jsm
- Die neue Methode
importRelative()
ermöglicht das Laden eines JavaScript-Code-Moduls aus einem Pfad, der relativ zum Pfad eines anderen JavaScript-Code-Moduls ist. Dies erleichtert den Aufbau von Modulen, die voneinander abhängen.
XPCOM
nsCOMArray<T>
hat jetzt eineRemoveObjectsAt()
-Methode, um mehrere Objekte gleichzeitig aus dem Array zu entfernen.
Verwendung des DOM im Chrome
- Verwendung der DOM File-API in Chrome-Code
-
Obwohl Sie die DOM File-API schon immer im Chrome-Code verwenden konnten, unterstützt der
File
-Konstruktor jetzt die Angabe eines lokalen Pfadnamensstrings, wenn er aus dem Chrome verwendet wird. Außerdem können Sie die Datei, auf die Sie zugreifen möchten, mithilfe der DOM File-API mit einemnsIFile
-Objekt angeben.
Schnittstellenänderungen
nsINavHistoryQueryOptions
unterstützt jetzt das Sortieren in Frequenzreihenfolge mithilfe der neuenSORT_BY_FREQUENCY_ASCENDING
- undSORT_BY_FREQUENCY_DESCENDING
-Konstanten.nsIFilePicker
hat ein neuesnsIFilePicker.addToRecentDocs
-Attribut, mit dem Sie angeben können, dass die ausgewählte Datei zur "recent documents"-Liste des Benutzers hinzugefügt werden soll, falls vorhanden. Dieses Attribut hat im privaten Modus keine Auswirkungen.nsINavBookmarkObserver
-Methoden mit Element-ID-Parametern erfordern jetzt auch eine GUID.nsIPrefBranch.clearUserPref()
wirft keine Ausnahme mehr, wenn die angegebene Präferenz nicht existiert oder keinen benutzerdefinierten Wert hat. Stattdessen tut sie einfach nichts.- Die
nsIMemoryReporter
-Schnittstelle bietet jetzt Unterstützung zur Angabe der Art des beschriebenen Speichers (gemappt, Heap oder andere). - Das
stateData
-Attribut vonnsISHEntry
gibt jetzt einennsIStructuredCloneContainer
zurück. nsIURI
hat ein neuesnsIURI.ref
-Attribut, das den Referenzteil (den Teil nach dem "#") der URI zurückgibt. Es hat auch neue MethodennsIURI.cloneIgnoringRef()
, die dasnsIURI
ohne das Ref-Mitglied klont, undnsIURI.equalsExceptRef()
, die mit einem anderennsIURI
vergleicht und das Ref-Mitglied ignoriert.
Neue Schnittstellen
mozIAsyncFavicons
-
Ein neuer Dienst, der es Ihnen ermöglicht, asynchron auf den Favicon-Dienst zuzugreifen.
nsIEventSource
-
Details stehen aus.
nsIGSettingsCollection
-
Details stehen aus.
nsIGSettingsService
-
Details stehen aus.
nsIHttpUpgradeListener
-
Die Callback-Schnittstelle zur Bearbeitung 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 die Aufzeichnung von Telemetriedaten zu ermöglichen, die verwendet werden, um Histogramme zur Leistungserfassung zu präsentieren. 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)nsIDOMAbstractView
nsILiveTitleNotificationSubject
nsIPlugin
(siehe Firefox Bug 637253)nsIPluginInstance
(siehe Firefox Bug 637253)nsIHTMLEditRules
(siehe Firefox Bug 633750)nsIXSLTProcessorObsolete
(siehe Firefox Bug 649534)
Andere Änderungen
- Verwendung von Einstellungen aus dem Anwendungscode
-
Eine neue statische API ist verfügbar, um einfach auf Einstellungen zuzugreifen; dies ist nur für Anwendungscode verfügbar und kann nicht von Add-ons verwendet werden.