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
<progress>
Element, das Ihnen erlaubt, eine Fortschrittsanzeige zu erstellen, wird nun unterstützt. - Das Parsen des HTML5
<track>
Elements, das Textspuren für Media-Elemente spezifiziert, wird nun unterstützt. Dieses Element sollte nun 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. - Textfelder der
<form>
Elemente mit dem<input>
Feldtyp unterstützen nicht mehr die XULmaxwidth
Eigenschaft; dies war nie beabsichtigt und verstößt gegen die HTML-Spezifikation. Stattdessen sollten Sie dassize
Attribut verwenden, um die maximale Breite von Eingabefeldern festzulegen. - Die
<canvas>
CanvasRenderingContext2d
EigenschaftenfillStyle
undstrokeStyle
ignorierten früher beliebigen Müll nach einer gültigen Farbdefinition; jetzt wird dies korrekt als Fehler behandelt. Beispielsweise wurde "red blue" als "red" behandelt, wenn 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 DOMdataset
Eigenschaft ermöglicht den Zugriff darauf. - Wenn ein
<textarea>
Element den Fokus erhält, wird der Texteinfügepunkt nun 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 zu setzen, die für Textdekorationen wie Unterstreichungen, Überstreichen und Durchstreichen verwendet wird.
-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, Überstreichen und Durchstreichen. Zu den Stilen gehören Einzelstriche, Doppelstriche, gewellte Linien, gepunktete Linien usw.
-moz-hyphens
-
Diese neue Eigenschaft ermöglicht es Ihnen, zu kontrollieren, wie die Trennung von Wörtern während des Zeilenumbruchs gehandhabt wird.
-moz-orient
-
Eine neue (derzeit Mozilla-spezifische) Eigenschaft, die es Ihnen erlaubt, die vertikale oder horizontale Orientierung bestimmter Elemente (insbesondere
<progress>
) zu kontrollieren. ::-moz-progress-bar
-
Ein Mozilla-spezifisches Pseudo-Element, das es Ihnen erlaubt, den Bereich eines
<progress>
Elements zu stylen, der den abgeschlossenen Teil einer Aufgabe darstellt.
Weitere Änderungen
- Die
@-moz-document
Eigenschaft hat eine neueregexp()
Funktion, die es Ihnen erlaubt, die URL des Dokuments mit einem regulären Ausdruck abzugleichen. - Die
azimuth
CSS-Eigenschaft wird nicht mehr unterstützt, da wir den wenigen Code, den wir für dieaural
Mediengruppe hatten, entfernt haben. Es war nie signifikant implementiert, daher war es sinnvoller, die unordentliche Implementierung vorübergehend zu entfernen, anstatt sie zu reparieren. - In der Vergangenheit wurde die
:hover
Pseudoklasse nicht auf Klassenselektoren angewendet, wenn sich der Browser im Quirks-Modus befand; beispielsweise funktionierte.some-class:hover
nicht. Dieser Fehler wurde behoben. - 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 opake Bereiche in Aero Glass Glanzeffekten auf Windows-Systemen auszuschließen. - Firefox Bug 658949 änderte die Behandlung des Hash-Zeichens (#) in Daten-URLs, was CSS Stylesheets brechen könnte, die ein solches Symbol enthalten, ohne dass es entkommen ist.
DOM
- Medienabfragen im Code verwenden
-
Sie können jetzt das Ergebnis einer Medienabfragezeichenfolge programmatisch mit der
window.matchMedia()
Methode und derMediaQueryList
Schnittstelle testen. - Touch-Ereignisse
-
Firefox 6 fügt Unterstützung für W3C-Standard-Touch-Ereignisse hinzu; diese erleichtern es, ein oder mehrere Berührungen gleichzeitig auf berührungsempfindlichen Oberflächen wie Touchscreens und Trackpads zu interpretieren.
- Server-gesendete Ereignisse
-
Server-gesendete Ereignisse ermöglichen es einer Webanwendung, einen Server zu bitten, Ereignisse genauso wie lokal erstellte DOM-Ereignisse zu senden.
navigator.securityPolicy
, das lange Zeit einen leeren String zurückgegeben hat, wurde endgültig entfernt.BlobBuilder
ist jetzt implementiert, obwohl er derzeit mit einem Präfix versehen ist (Sie müssen alsoMozBlobBuilder
verwenden).- Das
Document.height
undDocument.width
wurden entfernt. Firefox Bug 585877 - Die
DocumentType
Objekteigenschaftenentities
undnotations
, die nie implementiert wurden und immernull
zurückgegeben haben, 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 seitdem aus der DOM-Spezifikation entfernt worden. - Das
hashchange
Ereignis enthält jetzt korrekt dienewURL
undoldURL
Felder. - Die
FileReader
Schnittstelleabort()
Methode wirft jetzt eine Ausnahme, wenn sie verwendet wird, ohne dass ein Dateilesen im Gange ist. - Die
window.postMessage()
Methode verwendet jetzt den strukturierten Klon-Algorithmus, um Ihnen zu ermöglichen, JavaScript-Objekte anstelle von nur Zeichenfolgen von einem Fenster zu einem anderen zu übergeben. - Die
window.history
API verwendet jetzt den strukturierten Klon-Algorithmus, um die Objekte zu serialisieren, die Sie an diepushState()
undreplaceState()
Methoden übergeben; dies ermöglicht es Ihnen, komplexere Objekte (einschließlich solcher, die zykliche Referenzgrafen enthalten) zu verwenden. - Sie können jetzt erkennen, wann ein Druckvorgang initiiert und abgeschlossen wurde, indem Sie die neuen
beforeprint
undafterprint
Ereignisse überwachen. - Die
document.strictErrorChecking
Eigenschaft wurde 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 verwenden, anstelle der nicht standardisiertengetPreventDefault()
Methode, um festzustellen, obevent.preventDefault()
für das Ereignis aufgerufen wurde. - Die
window.top
Eigenschaft ist 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
EventTarget
FunktionaddEventListener()
ParameteruseCapture
ist jetzt optional, wie es in WebKit der Fall ist (und gemäß der neuesten Version der Spezifikation). - Die
mozResponseArrayBuffer
Eigenschaft desXMLHttpRequest
Objekts wurde durch dieresponseType
undresponse
Eigenschaften ersetzt. - Die
dataset
Eigenschaft wurde zurHTMLElement
Schnittstelle hinzugefügt, die den Zugriff auf diedata-*
global attributes eines Elements ermöglicht. - Die
CustomEvent
Schnittstelle wurde implementiert. (siehe Firefox Bug 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. Dies bedeutet, dass Skript geladen durch Eingabe vonjavascript:
URLs in die Adressleiste keinen Zugang mehr zu DOM-Methoden und dergleichen hat, zum Beispiel. Diese URLs funktionieren jedoch weiterhin wie zuvor, wenn sie durch Skript verwendet werden.
JavaScript
- In der Vergangenheit war es möglich, den
new
Operator auf mehrere eingebaute Funktionen (eval()
,parseInt()
,Date.parse()
, …) anzuwenden, die das nicht erlaubt haben sollten, gemäß der Spezifikation. 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 Prototyp-Implementierung hinzugefügt.
SVG
- Das Attribut
pathLength
wird nun 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 auf Protokollversion 07 für Firefox 6 aktualisiert. Außerdem wurde das globale
WebSocket
Objekt inMozWebSocket
umbenannt, um zu verhindern, dass es fälschlicherweise zur Erkennung der Verfügbarkeit von nicht-prefixed WebSockets verwendet wird.
- Das Parsen des
Content-Disposition
Headers wurde korrigiert, um ASCII-Zeichen mit umgekehrtem Schrägstrich als genau dieses Zeichen selbst zu interpretieren. Zuvor wurde dieses Zeichen fälschlicherweise durch einen Unterstrich ("_") ersetzt. - Der Wert des Pfadfeldes auf
Set-Cookie
Headers wird jetzt korrekt interpretiert, wenn Anführungszeichen verwendet werden; zuvor wurden sie als Teil der Pfadzeichenfolge behandelt, anstatt als Trenner. Diese Änderung könnte die Kompatibilität mit einigen Websites beeinflussen, daher sollten Autoren ihren Code überprüfen. - Der
Upgrade
Anfrage-Header wird nun unterstützt; Sie können ein Upgrade eines HTTP-Kanals auf ein anderes Protokoll anfordern, indem SiensIHttpChannelInternal.HTTPUpgrade()
aufrufen.
Weitere Änderungen
- Die Unterstützung für Mikrosummaries wurde entfernt; diese wurden nie weit verbreitet verwendet, waren nicht sehr auffindbar, und ihre fortlaufende Unterstützung erschwerte Verbesserungen der Places (Lesezeichen- und Verlauf) Architektur.
- WebGL unterstützt jetzt die
OES_texture_float
Erweiterung. - Das neue Scratchpad Tool bietet einen praktischen Ort, um mit JavaScript-Code zu experimentieren.
- Die
console.trace()
Methode 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 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 alle Hauptversionen von Firefox. Siehe Binary Interfaces für Details.
JavaScript-Code-Module
FileUtils.jsm
- Die
openSafeFileOutputStream()
Methode öffnet jetzt Dateien mit demDEFER_OPEN
Verhaltensflag, anstatt zu versuchen, sie sofort zu öffnen.
XPCOMUtils.jsm
- Mit der neuen
importRelative()
Methode können Sie ein JavaScript-Code-Modul von einem Pfad aus 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 gleichzeitig aus dem Array.
Verwendung des DOM aus dem Chrome
- Verwendung der DOM-File-API im Chrome-Code
-
Obwohl Sie schon immer die DOM-File-API aus Chrome-Code verwenden konnten, unterstützt der
File
Konstruktor jetzt die Angabe einer lokalen Pfadnamen-Zeichenfolge, wenn er aus Chrome verwendet wird. Außerdem können Sie mit einemnsIFile
Objekt die Datei spezifizieren, auf die mit der DOM-File-API zugegriffen werden soll.
Schnittstellenänderungen
nsINavHistoryQueryOptions
unterstützt jetzt die Sortierung in Häufigkeitsreihenfolge mit den neuenSORT_BY_FREQUENCY_ASCENDING
undSORT_BY_FREQUENCY_DESCENDING
Konstanten.nsIFilePicker
hat ein neuesnsIFilePicker.addToRecentDocs
Attribut, das ermöglicht anzugeben, dass die ausgewählte Datei zur "recent documents" Liste des Benutzers hinzugefügt werden sollte, falls eine vorhanden ist. Dieses Attribut hat keine Auswirkung im privaten Modus.nsINavBookmarkObserver
Methoden mit Element-ID Parametern erfordern jetzt auch eine GUID.nsIPrefBranch.clearUserPref()
wirft keine Ausnahme mehr, wenn die spezifizierte Einstellung nicht existiert oder keinen benutzerdefinierten Wert hat. Stattdessen tut es nichts.- Die
nsIMemoryReporter
Schnittstelle bietet jetzt Unterstützung für die 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()
, welche diensIURI
ohne das ref-Mitglied klont, undnsIURI.equalsExceptRef()
, welche sie mit einer anderennsIURI
vergleicht, indem das ref-Mitglied ignoriert wird.
Neue Schnittstellen
mozIAsyncFavicons
-
Ein neuer Dienst, der es Ihnen ermöglicht, asynchron auf den Favicon-Dienst zuzugreifen.
nsIEventSource
-
Details folgen.
nsIGSettingsCollection
-
Details folgen.
nsIGSettingsService
-
Details folgen.
nsIHttpUpgradeListener
-
Die Callback-Schnittstelle zur Behandlung von HTTP-Upgrade-Anfragen über die
nsIHttpChannelInternal.HTTPUpgrade()
Methode. nsIStructuredCloneContainer
-
Ein Container für Objekte, die unter Verwendung des strukturierten Klon-Algorithmus serialisiert wurden.
nsITelemetry
-
Implementiert Unterstützung für Telemetriedaten, um die Aufzeichnung von Telemetriedaten zu ermöglichen, die verwendet werden können, um Histogramme für Leistungstracking-Zwecke 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)
Weitere Änderungen
- Verwendung von Präferenzen aus Anwendungscode
-
Eine neue statische API ist verfügbar, um Präferenzen leicht zugänglich zu machen; dies steht nur Anwendungscode zur Verfügung und kann nicht von Add-ons verwendet werden.