Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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 der border-radius-Eigenschaft abgerundet wurden.
  • Die Text-Eingabefelder der <form>-Elemente unterstützen nicht mehr die XUL-Eigenschaft maxwidth; dies war nie beabsichtigt und verstößt gegen die HTML-Spezifikation. Verwenden Sie stattdessen das Attribut size, um die maximale Breite der Eingabefelder festzulegen.
  • Die Eigenschaften fillStyle und strokeStyle des <canvas>-CanvasRenderingContext2d ignorierten 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-Eigenschaft dataset ermö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 neue regexp()-Funktion, die es Ihnen ermöglicht, 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 die aural Mediengruppe 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:hover nicht. 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 der MediaQueryList-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.
  • BlobBuilder ist jetzt implementiert, obwohl es derzeit noch mit einem Präfix versehen ist (sodass Sie MozBlobBuilder verwenden müssen).
  • Die Document.height und Document.width wurden entfernt. Firefox-Fehler 585877
  • Die Eigenschaften entities und notations des DocumentType-Objekts, die nie implementiert wurden und immer null zurückgaben, wurden entfernt, da sie ohnehin aus der Spezifikation entfernt wurden.
  • Die DOMConfiguration-Schnittstelle und die document.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 Felder newURL und oldURL.
  • Die abort()-Methode der FileReader-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.history verwendet jetzt den strukturierten Klon-Algorithmus, um die Objekte zu serialisieren, die Sie an die Methoden pushState() und replaceState() ü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 beforeprint und afterprint lauschen.
  • Die Eigenschaft document.strictErrorChecking wurde entfernt, da sie nie implementiert und aus der DOM-Spezifikation entfernt wurde.
  • Die standardmäßige Eigenschaft event.defaultPrevented wird jetzt unterstützt; Sie sollten diese anstelle der nicht standardmäßigen Methode getPreventDefault() verwenden, um zu erkennen, ob event.preventDefault() auf das Ereignis aufgerufen wurde.
  • Die Eigenschaft window.top ist 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 Funktion addEventListener() des EventTarget ist jetzt optional, ebenso wie in WebKit (und entsprechend der neuesten Version der Spezifikation).
  • Die Eigenschaft mozResponseArrayBuffer des XMLHttpRequest-Objekts wurde durch die Eigenschaften responseType und response ersetzt.
  • Die Eigenschaft dataset wurde zur Schnittstelle HTMLElement hinzugefügt, sodass Sie auf die data-* globalen Attribute eines Elements zugreifen können.
  • Die Schnittstelle CustomEvent wurde implementiert. (siehe Firefox-Fehler 427537)
  • Aus Sicherheitsgründen erben data:- und javascript:-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 von javascript:-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 des new-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 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 der Wert von aria-busy geändert wird.
  • 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 in MozWebSocket umbenannt, 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 Sie nsIHttpChannelInternal.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 dem DEFER_OPEN Verhaltensflagg 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

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 ein nsIFile-Objekt angeben.

Schnittstellenänderungen

  • nsINavHistoryQueryOptions unterstützt jetzt die Sortierung in Häufigkeitsreihenfolge mit den neuen Konstanten SORT_BY_FREQUENCY_ASCENDING und SORT_BY_FREQUENCY_DESCENDING.
  • nsIFilePicker hat ein neues Attribut nsIFilePicker.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 nsINavBookmarkObserver mit 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 stateData von nsISHEntry gibt jetzt einen nsIStructuredCloneContainer zurück.
  • nsIURI hat ein neues Attribut nsIURI.ref, das den Referenzanteil (den Teil nach dem "#") der URI zurückgibt. Es gibt auch neue Methoden nsIURI.cloneIgnoringRef(), die die nsIURI ohne das ref-Mitglied klonen, und nsIURI.equalsExceptRef(), die mit einer anderen nsIURI vergleicht, wobei das ref-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:

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.