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 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 Fortschrittsleiste 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 <iframe>-Element wird nun korrekt von seinem Container abgeschnitten, wenn die Ecken des Containers mit der Eigenschaft border-radius abgerundet wurden.
  • Textfeld-<input>e in <form>-Elementen unterstützen nicht mehr die XUL-Eigenschaft maxwidth; dies war nie beabsichtigt und verstößt gegen die HTML-Spezifikation. Sie sollten stattdessen das Attribut size verwenden, um die maximale Breite von Eingabefeldern festzulegen.
  • Die Eigenschaften fillStyle und strokeStyle des <canvas>-CanvasRenderingContext2d ignorierten früher unnötige Angaben nach einer gültigen Farbangabe; jetzt wird dies korrekt als Fehler behandelt. Zum Beispiel wurde "red blue" als Farbe früher als "red" interpretiert, obwohl es ignoriert werden sollte.
  • Die Breite und Höhe von <canvas>-Elementen kann jetzt korrekt auf 0px eingestellt 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-Eigenschaft dataset ermöglicht den Zugriff darauf.
  • Wenn ein <textarea>-Element den Fokus erhält, befindet sich der Texteinschubspunkt jetzt standardmäßig am Anfang des Textes anstatt 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 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 von Textdekorationen wie Unterstreichungen, Überstrichen und Durchstreichungen festzulegen. Stile umfassen einfache Striche, doppelte Striche, wellige Linien, gepunktete Linien und dergleichen.

-moz-hyphens

Diese neue Eigenschaft ermöglicht es Ihnen, zu steuern, wie die Trennung von Wörtern beim Zeilenumbruch 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 nun 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 geringen Code, den wir für die aural Medienspezifikationsgruppe hatten, entfernt haben. Sie war nie signifikant implementiert, daher machte es mehr Sinn, die veraltete Implementierung vorläufig zu entfernen, anstatt sie zu reparieren.
  • In der Vergangenheit wurde die :hover Pseudoklasse nicht auf Klassenselektoren im Quirks-Modus angewendet; zum Beispiel funktionierte .some-class:hover nicht. Dieses Problem 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 Regionen in Aero-Glass-Glasur-Effekten auf Windows-Systemen auszuschließen.
  • Firefox Bug 658949 änderte die Behandlung des Hash (#) Symbols in Data-URLs, was CSS-Stile beeinflussen kann, die dieses Symbol enthalten, wenn es nicht entwertet ist.

DOM

Verwenden von Media-Queries aus dem Code

Sie können jetzt das Ergebnis einer Media-Query-Zeichenfolge programmgesteuert mit der Methode window.matchMedia() und der Schnittstelle MediaQueryList testen.

Touch-Ereignisse

Firefox 6 fügt Unterstützung für W3C-Standard-Touch-Ereignisse hinzu; diese machen es einfach, eine 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 zu senden, ähnlich wie ein lokal erstelltes DOM-Ereignis.

  • navigator.securityPolicy, das lange Zeit einen leeren String zurückgegeben hat, wurde vollständig entfernt.
  • BlobBuilder ist nun implementiert, obwohl es vorerst mit einem Präfix versehen ist (Sie müssen also MozBlobBuilder verwenden).
  • Das Document.height und Document.width wurden entfernt. Firefox Bug 585877
  • Die Eigenschaften entities und notations des DocumentType-Objekts, die nie implementiert und immer null zurückgegeben wurden, wurden entfernt, da sie sowieso aus der Spezifikation entfernt wurden.
  • Die Schnittstelle DOMConfiguration und die Eigenschaft document.domConfig, 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 nun korrekt die newURL- und oldURL-Felder.
  • Die abort()-Methode der FileReader-Schnittstelle wirft jetzt eine Ausnahme, wenn sie verwendet wird, wenn kein Dateilesen im Gange ist.
  • Die Methode window.postMessage() verwendet nun den strukturierten Klon-Algorithmus, um Ihnen das Übergeben von JavaScript-Objekten anstelle von nur Strings von einem Fenster zum anderen zu ermöglichen.
  • Die API window.history verwendet nun den strukturierten Klon-Algorithmus, um die Objekte zu serialisieren, die Sie an die Methoden pushState() und replaceState() übergeben; dies ermöglicht die Verwendung komplexerer Objekte (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 und afterprint Ereignisse lauschen.
  • Die Eigenschaft document.strictErrorChecking wurde entfernt, da sie nie implementiert wurde und aus der DOM-Spezifikation entfernt wurde.
  • Die standardisierte event.defaultPrevented Eigenschaft wird nun unterstützt; Sie sollten diese anstelle der nicht standardisierten getPreventDefault() Methode verwenden, um festzustellen, ob event.preventDefault() auf das Ereignis angewendet wurde.
  • Die Eigenschaft window.top ist nun ordnungsgemäß schreibgeschützt.
  • DOM-Views, die wir nie dokumentiert hatten, wurden entfernt. Dies war ein Implementierungsdetail, das unnötigerweise die Dinge verkomplizierte, daher haben wir es entfernt. Wenn Ihnen diese Änderung auffällt, machen Sie wahrscheinlich etwas falsch.
  • Der useCapture Parameter der addEventListener() Funktion für EventTarget ist jetzt optional, wie es in WebKit der Fall ist (und gemäß 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, die den Zugriff auf die data-* globalen Attribute eines Elements ermöglicht.
  • Die Schnittstelle CustomEvent wurde implementiert. (siehe Firefox Bug 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. Dies bedeutet, dass Skripte, die durch die Eingabe von javascript:-URLs in die Adressleiste geladen werden, keinen Zugriff mehr auf DOM-Methoden und dergleichen haben. Diese URLs funktionieren jedoch weiterhin wie gewohnt, wenn sie durch Skripte verwendet werden.

JavaScript

  • In der Vergangenheit war es möglich, den new Operator auf mehrere integrierte Funktionen anzuwenden (eval(), parseInt(), Date.parse(), …), die dies laut Spezifikation nicht erlauben sollten. Dieses Verhalten wird nicht mehr unterstützt. Die Verwendung des new Operands 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 nun korrekt, wenn sie aus data: URLs geladen werden.

MathML

  • Die Implementierung von <mstyle> wurde korrigiert.

Barrierefreiheit (ARIA)

  • Ein Zustandsänderungsereignis wird nun korrekt gesendet, wenn der Wert von aria-busy sich ändert.
  • Ein Attributänderungsereignis wird nun korrekt gesendet, wenn aria-sort auftritt.

Netzwerk

WebSockets

WebSockets wurde in Firefox 6 auf Protokollversion 07 aktualisiert. Zusätzlich wurde das globale WebSocket Objekt in MozWebSocket umbenannt, um eine inkorrekte Verwendung zur Erkennung der Verfügbarkeit von nicht-prefixierten WebSockets zu verhindern.

  • Das Parsen des Content-Disposition Headers wurde korrigiert, um Backslash-escaped ASCII-Zeichen korrekt als das Zeichen selbst zu interpretieren. Zuvor wurde es fälschlicherweise durch ein Unterstrich ("_") ersetzt.
  • Der Wert des Pfadfelds in Set-Cookie Headers wird nun korrekt interpretiert, wenn Anführungszeichen verwendet werden; zuvor wurden sie als Teil des Pfads betrachtet und nicht als Trennzeichen. Diese Änderung kann die Kompatibilität mit einigen Websites beeinträchtigen, 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 Sie nsIHttpChannelInternal.HTTPUpgrade() aufrufen.

Andere Änderungen

  • Die Unterstützung für Mikrosummaries wurde entfernt; diese wurden nie weit verbreitet genutzt, waren nicht sehr bemerkbar und die fortlaufende Unterstützung erschwerte Verbesserungen der Places-Architektur (Lesezeichen und Verlauf).
  • WebGL unterstützt jetzt die OES_texture_float Erweiterung.
  • Das neue Scratchpad Werkzeug bietet einen praktischen Ort, um mit JavaScript-Code zu experimentieren.
  • Die Methode console.trace() wurde zur Console API (Firefox Bug 585956) hinzugefügt.

Änderungen für Mozilla- und Add-on-Entwickler

Für einen Überblick über die Änderungen, die Sie eventuell 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 Hauptversionen von Firefox der Fall ist. Details hierzu finden Sie unter Binary Interfaces.

JavaScript-Code-Module

FileUtils.jsm

  • Die Methode openSafeFileOutputStream() öffnet nun Dateien mit dem DEFER_OPEN Verhaltensflag 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 zum Pfad eines anderen JavaScript-Code-Moduls. Dies erleichtert es, Module zu erstellen, die voneinander abhängen.

XPCOM

Verwendung des DOM aus Chrome

Verwendung der DOM File API in Chrome-Code

Obwohl Sie die DOM File API schon immer aus Chrome-Code verwenden konnten, unterstützt der File-Konstruktor jetzt die Angabe eines lokalen Pfadnamens als String, wenn er aus Chrome verwendet wird. Darüber hinaus können Sie auch die Datei, auf die zugegriffen werden soll, mit der DOM File API unter Verwendung eines nsIFile-Objekts angeben.

Schnittstellenänderungen

  • nsINavHistoryQueryOptions unterstützt nun das Sortieren nach Häufigkeit in aufsteigender Reihenfolge 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 zur "zuletzt verwendeten Dokumenten"-Liste des Benutzers hinzugefügt werden sollte, falls eine solche existiert. Dieses Attribut hat keinen Effekt, wenn Sie im privaten Browsing-Modus sind.
  • nsINavBookmarkObserver-Methoden mit Item-ID-Parametern erfordern nun 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 Schnittstelle nsIMemoryReporter bietet jetzt Unterstützung für die Angabe der Art des beschriebenen Speichers (gemappt, Heap oder anderes).
  • Das Attribut stateData von nsISHEntry gibt jetzt ein nsIStructuredCloneContainer zurück.
  • nsIURI hat ein neues Attribut nsIURI.ref, das den Referenzteil (den Teil nach dem "#") der URI zurückgibt. Es hat auch neue Methoden nsIURI.cloneIgnoringRef(), die die nsIURI ohne das ref-Mitglied klonen, und nsIURI.equalsExceptRef(), die mit einem anderen nsIURI ohne Berücksichtigung des ref-Mitglieds vergleicht.

Neue Schnittstellen

mozIAsyncFavicons

Ein neuer Dienst, der Ihnen ermöglicht, asynchron auf den Favicon-Dienst zuzugreifen.

nsIEventSource

Details folgen.

nsIGSettingsCollection

Details folgen.

nsIGSettingsService

Details folgen.

nsIHttpUpgradeListener

Die Rückrufschnittstelle zur Behandlung von HTTP-Upgrade-Anfragen über die Methode nsIHttpChannelInternal.HTTPUpgrade().

nsIStructuredCloneContainer

Ein Container für Objekte, die unter Verwendung des strukturierten Klon-Algorithmus serialisiert wurden.

nsITelemetry

Implementiert Telemetrieunterstützung, um die Aufzeichnung von Telemetriedaten zu ermöglichen, die zur Darstellung von Histogrammen zur Leistungsüberwachung verwendet werden können. 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:

Andere Änderungen

Verwendung von Voreinstellungen aus Anwendungscode

Eine neue statische API ist verfügbar, um leicht auf Voreinstellungen zuzugreifen; diese ist nur für Anwendungscode verfügbar und kann nicht von Add-ons verwendet werden.