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. - Die Analyse des HTML5-Elements
<track>
, das Texte für Medienelemente angibt, wird jetzt unterstützt. Dieses Element sollte jetzt 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 mit der Eigenschaftborder-radius
abgerundet wurden. - Text-Eingabefelder von
<form>
-Elementen unterstützen nicht mehr die XUL-Eigenschaftmaxwidth
; dies war nie beabsichtigt und verstößt gegen die HTML-Spezifikation. Sie sollten stattdessen das Attributsize
verwenden, um die maximale Breite der Eingabefelder festzulegen. - Die Eigenschaften
fillStyle
undstrokeStyle
des<canvas>
CanvasRenderingContext2d
haben zuvor unbeachteten Müll nach einer gültigen Farbdefinition ignoriert; jetzt wird dies korrekt als Fehler behandelt. Zum Beispiel wurde "red blue" als Farbe früher als "red" behandelt, während es hätte ignoriert werden sollen. - Die Breite und Höhe von
<canvas>
-Elementen kann jetzt korrekt auf 0px gesetzt werden; zuvor wurden diese willkürlich auf 300px gesetzt, wenn Sie dies versucht haben. - Unterstützung für die HTML benutzerdefinierten Datenattribute (
data-*
) wurde hinzugefügt. Die DOM-Eigenschaftdataset
ermöglicht den Zugriff darauf. - Wenn ein
<textarea>
-Element den Fokus erhält, wird der Texteingabepunkt standardmäßig am Anfang des Textes und nicht am Ende platziert. 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 Textverzierungen wie Unterstrichen, Oberstrichen und Durchstreichungen festzulegen.
-moz-text-decoration-line
-
Diese neue Eigenschaft ermöglicht es Ihnen, die Art der zu einem Element hinzugefügten Textverzierungen festzulegen.
-moz-text-decoration-style
-
Diese neue Eigenschaft ermöglicht es Ihnen, den Stil von Textverzierungen wie Unterstrichen, Oberstrichen und Durchstreichungen festzulegen. Stile umfassen Einfachstriche, Doppelstriche, gewellte Linien, gepunktete Linien usw.
-moz-hyphens
-
Diese neue Eigenschaft ermöglicht es Ihnen zu steuern, wie die Trennung 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 zu steuern (insbesondere
<progress>
). ::-moz-progress-bar
-
Ein Mozilla-spezifisches Pseudoelement, das es Ihnen ermöglicht, den Bereich eines
<progress>
-Elements zu stylen, der den abgeschlossenen Teil einer Aufgabe repräsentiert.
Weitere Ä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. Es war nie wesentlich implementiert, daher war es sinnvoller, die veraltete Implementierung vorerst zu entfernen, anstatt sie zu überarbeiten. - In der Vergangenheit wurde die
:hover
-Pseudoklasse nicht auf Klassenselektoren angewendet, wenn der Quirks-Modus aktiv war; beispielsweise funktionierte.some-class:hover
nicht. Diese Besonderheit 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 Wert
-moz-win-exclude-glass
wurde der CSS-Eigenschaft-moz-appearance
hinzugefügt, um opake Regionen bei Aero Glass-Effekten auf Windows-Systemen auszuschließen. - Firefox Bug 658949 hat die Behandlung des Hash-Symbols (#) in Daten-URLs geändert, was CSS-Stylesheets, die ein solches Symbol enthalten, brechen kann, wenn es nicht entkommen ist.
DOM
- Verwenden von Media-Queries im Code
-
Sie können jetzt das Ergebnis einer Media-Query-Zeichenfolge programmgesteuert mit der Methode
window.matchMedia()
und der SchnittstelleMediaQueryList
testen. - Touch-Events
-
Firefox 6 unterstützt die W3C-Standard-Touch-Events; diese erleichtern die Interpretation von einem oder mehreren Berührungen gleichzeitig auf berührungsempfindlichen Oberflächen wie Touchscreens und Trackpads.
- Server-sent Events
-
Mit Server-sent Events kann eine Webanwendung den Server bitten, Events zu senden, ebenso wie jedes lokal erstellte DOM-Event.
navigator.securityPolicy
, das seit langer Zeit einen leeren String zurückgab, wurde vollständig entfernt.BlobBuilder
ist jetzt implementiert, auch wenn es vorerst mit Präfix versehen ist (Sie müssenMozBlobBuilder
verwenden).- Die
Document.height
undDocument.width
wurden entfernt. Firefox Bug 585877 - Die
entities
- undnotations
-Eigenschaften desDocumentType
-Objekts, die nie implementiert wurden und immernull
zurückgaben, wurden entfernt, da sie auch aus der Spezifikation entfernt wurden. - Die
DOMConfiguration
-Schnittstelle und diedocument.domConfig
-Eigenschaft, die diese verwendete, wurden beide entfernt; sie wurden nie unterstützt und sind seitdem aus der DOM-Spezifikation entfernt worden. - Das
hashchange
-Event enthält jetzt korrekt dienewURL
- undoldURL
-Felder. - Die
abort()
-Methode derFileReader
-Schnittstelle wirft jetzt eine Ausnahme, wenn sie verwendet wird, wenn kein Filenachricht im Gange ist. - Die Methode
window.postMessage()
verwendet jetzt den strukturierten Klon-Algorithmus, um Ihnen das Übertragen von JavaScript-Objekten anstelle von nur Strings von einem Fenster zu einem anderen zu ermöglichen. - Die API
window.history
verwendet jetzt den strukturierten Klon-Algorithmus, um die Objekte, die Sie an die MethodenpushState()
undreplaceState()
übergeben, zu serialisieren; dies erlaubt Ihnen, komplexere Objekte zu verwenden (einschließlich solcher, die zyklische Referenzgraphen enthalten). - Sie können jetzt erkennen, wann ein Druckvorgang initiiert und abgeschlossen wurde, indem Sie auf die neuen
beforeprint
- undafterprint
-Events hören. - Die Eigenschaft
document.strictErrorChecking
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-standardisierten MethodegetPreventDefault()
, um festzustellen, obevent.preventDefault()
auf das Ereignis angewendet wurde. - Die Eigenschaft
window.top
ist jetzt ordnungsgemäß schreibgeschützt. - DOM-Ansichten, die wir nie dokumentiert haben, wurden entfernt. Dies war ein Detail der Implementierung, das die Dinge unnötig komplizierte, also haben wir es entfernt. Wenn Sie diese Änderung bemerken, machen Sie wahrscheinlich etwas falsch.
- Die
EventTarget
-FunktionaddEventListener()
hat jetzt einen optionalenuseCapture
-Parameter, wie es in WebKit der Fall ist (und gemäß der neuesten Version der Spezifikation). - Die Eigenschaft
mozResponseArrayBuffer
desXMLHttpRequest
-Objekts wurde durch die EigenschaftenresponseType
undresponse
ersetzt. - Die
dataset
-Eigenschaft wurde zurHTMLElement
-Schnittstelle hinzugefügt, was den Zugriff auf die globalendata-*
Attribute eines Elements ermöglicht. - Die
CustomEvent
-Schnittstelle wurde implementiert. (siehe Firefox Bug 427537) - Aus Sicherheitsgründen erben
data:
- undjavascript:
-URLs nicht länger den Sicherheitskontext der aktuellen Seite, wenn der Benutzer sie in der Adressleiste eingibt; stattdessen wird ein neuer, leerer Sicherheitskontext erstellt. Dies bedeutet, dass das Skript, das durch Eingabe vonjavascript:
-URLs in der Adressleiste geladen wird, keinen Zugriff mehr auf DOM-Methoden und dergleichen hat. Diese URLs funktionieren jedoch weiterhin wie zuvor, 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 laut 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, daher ist es unwahrscheinlich, dass diese Änderung Sie betrifft. - ECMAScript 2015 WeakMaps wurden als Prototyp-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
auftritt.
Netzwerk
- WebSockets
-
WebSockets wurde für Firefox 6 auf Protokollversion 07 aktualisiert. Zusätzlich wurde das globale
WebSocket
-Objekt inMozWebSocket
umbenannt, um zu verhindern, dass es fälschlicherweise zur Erkennung von unpräfigierten WebSockets verwendet wird.
- Die Analyse des
Content-Disposition
-Headers wurde korrigiert, um ASCII-Zeichen, die mit einem Backslash entkommen sind, korrekt als genau dieses Zeichen zu interpretieren. Zuvor wurde dieses Zeichen fälschlicherweise durch einen Unterstrich ("_") ersetzt. - Der Wert des Pfadfeldes bei
Set-Cookie
-Headers wird jetzt korrekt interpretiert, wenn Anführungszeichen verwendet werden; zuvor wurden sie als Teil der Pfadzeichenfolge behandelt, anstatt als Trennzeichen. Diese Änderung kann die Kompatibilität mit einigen Websites beeinträchtigen, daher sollten Autoren ihren Code überprüfen. - Der
Upgrade
-Anforderungsheader wird jetzt 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 Mikrosummen wurde entfernt; diese wurden nie weit verbreitet genutzt, waren nicht sehr auffindbar, und die Unterstützung machte Verbesserungen für die Places (Lesezeichen- und Verlauf) Architektur 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 Erweiterungsentwickler
Für einen Überblick über die Änderungen, die Sie möglicherweise vornehmen müssen, um Ihre Erweiterung kompatibel mit Firefox 6 zu machen, siehe Aktualisieren 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 Binary Interfaces für Details.
JavaScript-Code-Module
FileUtils.jsm
- Die Methode
openSafeFileOutputStream()
öffnet Dateien jetzt mit demDEFER_OPEN
Verhaltensflag anstelle des sofortigen Öffnens.
XPCOMUtils.jsm
- Die neue Methode
importRelative()
ermöglicht das Laden eines JavaScript-Code-Moduls aus einem Pfad relativ zu dem Pfad eines anderen JavaScript-Code-Moduls. Dies erleichtert den Aufbau von Modulen, die voneinander abhängen.
XPCOM
nsCOMArray<T>
hat jetzt eineRemoveObjectsAt()
Methode zum Entfernen mehrerer Objekte auf einmal aus dem Array.
Verwendung des DOM von Chrome
- Verwendung der DOM File API im Chrome-Code
-
Obwohl Sie die DOM File API schon immer vom Chrome-Code aus verwenden konnten, unterstützt der
File
-Konstruktor jetzt die Angabe eines lokalen Pfadnamen-Strings, wenn er von Chrome aus verwendet wird. Zusätzlich können Sie auch die Datei, auf die Sie mit der DOM File API zugreifen möchten, mit einemnsIFile
-Objekt angeben.
Schnittstellenänderungen
nsINavHistoryQueryOptions
unterstützt jetzt das Sortieren in Frequenzreihenfolge mit den neuen KonstantenSORT_BY_FREQUENCY_ASCENDING
undSORT_BY_FREQUENCY_DESCENDING
.nsIFilePicker
hat ein neuesnsIFilePicker.addToRecentDocs
-Attribut, das Ihnen angibt, dass die ausgewählte Datei der Liste der "zuletzt verwendeten Dokumente" des Benutzers hinzugefügt werden soll, sofern vorhanden. Dieses Attribut hat keine Wirkung im privaten Browsing-Modus.- Methoden von
nsINavBookmarkObserver
mit Element-ID-Parametern erfordern jetzt auch eine GUID. nsIPrefBranch.clearUserPref()
wirft keine Ausnahme mehr, wenn die angegebene Voreinstellung 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 einnsIStructuredCloneContainer
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 diensIURI
ohne dasref
-Mitglied klonen undnsIURI.equalsExceptRef()
, die mit einer anderennsIURI
vergleicht, dasref
-Mitglied ignorierend.
Neue Schnittstellen
mozIAsyncFavicons
-
Ein neuer Dienst, der Ihnen asynchronen Zugriff auf den Favicon-Dienst bietet.
nsIEventSource
-
Details werden folgen.
nsIGSettingsCollection
-
Details werden folgen.
nsIGSettingsService
-
Details werden folgen.
nsIHttpUpgradeListener
-
Die Rückrufschnittstelle zum Handling von HTTP-Upgraderequests über die Methode
nsIHttpChannelInternal.HTTPUpgrade()
. nsIStructuredCloneContainer
-
Ein Container für Objekte, die mit dem strukturierten Klon-Algorithmus serialisiert wurden.
nsITelemetry
-
Implementiert Telemetrieunterstützung zur Aufzeichnung von Telemetriedaten, um Histogramme für die 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)
Weitere Änderungen
- Verwendung von Voreinstellungen aus Anwendungs-Code
-
Eine neue statische API steht zur Verfügung, um Voreinstellungen einfach abzurufen; dies ist nur für Anwendungs-Code verfügbar und kann nicht von Erweiterungen verwendet werden.