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

View in English Always switch to English

Versionshinweise für Entwickler zu Firefox 5

Firefox 5, basierend auf Gecko 5.0, wurde am 21. Juni 2011 veröffentlicht. Dieser Artikel enthält Links zu Informationen über Änderungen, die Entwickler in dieser Version betreffen.

Änderungen für Webentwickler

HTML

Verbesserungen am Canvas

  • Der <canvas> 2D-Zeichnungskontext unterstützt nun die Angabe eines ImageData-Objekts als Eingabe für die createImageData()-Methode; dies erstellt ein neues ImageData-Objekt, das mit denselben Dimensionen wie das angegebene Objekt initialisiert wird, jedoch mit allen Pixeln als transparentes Schwarz voreingestellt. Dies war bereits dokumentiert, aber noch nicht implementiert.
  • Das Angeben von unendlichen Werten beim Hinzufügen von Farbstopps durch einen Aufruf der CanvasGradient-Methode addColorStop() wirft jetzt korrekt INDEX_SIZE_ERR anstelle von SYNTAX_ERR.
  • Die HTMLCanvasElement-Methode toDataURL() konvertiert jetzt die angegebenen MIME-Typen korrekt in Kleinbuchstaben, bevor ein Abgleich erfolgt.
  • getImageData() akzeptiert nun korrekt Rechtecke, die über die Grenzen der Leinwand hinausgehen; Pixel außerhalb der Leinwand werden als transparentes Schwarz zurückgegeben.
  • drawImage() und createImageData() behandeln jetzt negative Argumente gemäß der Spezifikation, indem sie das Rechteck um die entsprechende Achse spiegeln. Wir benötigen einen Artikel über CSS-Größen und wie dies funktioniert.
  • Das Angeben von unendlichen Werten beim Aufrufen von createImageData() wirft nun korrekt eine NOT_SUPPORTED_ERR-Ausnahme.
  • createImageData() und getImageData() geben jetzt korrekt mindestens einen Pixelbildwert zurück, wenn ein Rechteck kleiner als ein Pixel angegeben wird.
  • Beim Aufrufen von createRadialGradient() wirft das Angeben eines negativen Radius nun korrekt INDEX_SIZE_ERR.
  • Das Angeben eines null- oder undefined-Bildes beim Aufrufen von createPattern() oder drawImage() wirft nun korrekt eine TYPE_MISMATCH_ERR-Ausnahme.
  • Das Angeben ungültiger Werte für globalAlpha wirft keine SYNTAX_ERR-Ausnahme mehr; diese werden jetzt korrekt stillschweigend ignoriert.
  • Das Angeben ungültiger Werte beim Aufrufen von translate(), transform(), rect(), clearRect(), fillRect(), strokeRect(), lineTo(), moveTo(), quadraticCurveTo() oder arc() wirft keine Ausnahme mehr; diese Aufrufe werden nun korrekt stillschweigend ignoriert.
  • Das Setzen ungültiger Werte für shadowOffsetX, shadowOffsetY oder shadowBlur wird jetzt stillschweigend ignoriert.
  • Das Setzen ungültiger Werte für rotate oder scale wird jetzt stillschweigend ignoriert.

CSS

CSS-Animationen

Die Unterstützung für CSS-Animationen wurde hinzugefügt, vorerst mit dem -moz- Präfix.

DOM

  • Die Methode modify() des Selection-Objekts wurde so geändert, dass die Granularität der "Wort"-Auswahl keine Leerzeichen mehr am Ende einbezieht; dies macht es konsistenter auf verschiedenen Plattformen und entspricht der Implementierung von WebKit.
  • Die Methoden setTimeout() und setTimeout() werden jetzt so eingestellt, dass sie in inaktiven Tabs nicht mehr als einmal pro Sekunde ausgeführt werden. Zusätzlich werden verschachtelte Timeouts nun auf den kleinsten Wert, der von der HTML5-Spezifikation erlaubt ist, von 4 ms (anstatt der vorherigen 10 ms) geklemmt.
  • Ebenso wird die Methode Window.setInterval() und WorkerGlobalScope.setInterval() auf nicht mehr als ein Intervall pro Sekunde in inaktiven Tabs geklemmt.
  • XMLHttpRequest unterstützt jetzt das loadend-Ereignis für Fortschrittslistener. Dieses wird nach dem Abschluss eines Transfers gesendet (das heißt nach dem abort, error oder load-Ereignis). Sie können dies nutzen, um Aufgaben zu handhaben, die unabhängig vom Erfolg oder Misserfolg eines Transfers durchgeführt werden müssen.
  • Die Methode slice() der Blob- und in der Verlängerung die File-Objekte wurde entfernt und durch eine neue, vorgeschlagene Syntax ersetzt, die sie konsistenter mit den Methoden Array.slice() und String.slice() in JavaScript macht. Diese Methode heißt vorläufig mozSlice().
  • Der Wert von Navigator.language wird jetzt durch den Wert des Accept-Language HTTP-Headers bestimmt.
  • Die Eigenschaft Element.prefix ist nun schreibgeschützt, wie es von der DOM-Spezifikation gefordert ist.
  • Das HTMLVideoElement unterstützt jetzt experimentelle Eigenschaften, um Informationen zu Videowiedergabestatistiken wie Bildraten zu erhalten.

JavaScript

  • Reguläre Ausdrücke sind nicht mehr aufrufbar, als ob sie Funktionen wären; diese Änderung wurde in Abstimmung mit dem WebKit-Team durchgeführt, um die Kompatibilität sicherzustellen (siehe WebKit Fehler 28285). Diese Funktion existierte lange Zeit, wurde aber nie dokumentiert (zumindest nicht hier auf MDC).
  • Die Methode Function.prototype.isGenerator() wird nun unterstützt; damit können Sie feststellen, ob eine Funktion ein Generator ist.
  • Die folgenden reservierten Wörter wurden bislang nur im strengen Modus als reserviert behandelt; jetzt werden sie immer als reserviert behandelt: class, enum, export, extends, import und super.
  • DOM-Dokumente, die im Chrome-Code erstellt wurden, dürfen nicht mehr an gesandboxte Skripte weitergegeben werden.
  • Der JSON-Parser wurde neu geschrieben, um die Geschwindigkeit und Konformität zu verbessern. Dies schließt eine Korrektur für Firefox Fehler 572279 ein.

SVG

  • Das class SVG-Attribut kann jetzt animiert werden.
  • Die folgenden SVG-bezogenen DOM-Schnittstellen, die Listen von Objekten darstellen, sind jetzt indizierbar und können wie Arrays aufgerufen werden; außerdem haben sie eine length-Eigenschaft, die die Anzahl der Elemente in den Listen angibt: SVGLengthList, SVGNumberList, SVGPathSegList und SVGPointList.

HTTP

  • Firefox sendet den Keep-Alive HTTP-Header nicht mehr; wir haben ihn nicht korrekt formatiert, und er war redundant, da wir auch den Connection- oder Proxy-Connection-Header mit dem Wert "keep-alive" gesendet haben.
  • Das HTTP-Transaktionsmodell wurde aktualisiert, um intelligenter beim Wiederverwenden von Verbindungen im persistenten Verbindungspool zu sein; anstatt den Pool als FIFO-Warteschlange zu behandeln, versucht Necko nun, den Pool mit Verbindungen mit dem größten Stau-Fenster (CWND) zuerst zu sortieren. Dies kann die Round-Trip-Zeit (RTT) von HTTP-Transaktionen reduzieren, indem in vielen Fällen das Wachstum der Verbindungsfenster vermieden wird.
  • Firefox handhabt den Content-Disposition HTTP-Antwort-Header jetzt effizienter, wenn sowohl die Parameter filename als auch filename* bereitgestellt werden; es durchsucht alle bereitgestellten Namen und verwendet den filename*-Parameter, wenn einer verfügbar ist, selbst wenn ein filename-Parameter zuerst enthalten ist. Zuvor wurde der erste passende Parameter verwendet, was verhinderte, dass ein geeigneterer Name verwendet wurde. Siehe Firefox Fehler 588781.

MathML

Entwickler-Tools

  • Das Console-Objekt der Webkonsole verfügt jetzt über eine debug()-Methode, die ein Alias für ihre log()-Methode ist; dies verbessert die Kompatibilität mit bestimmten bestehenden Websites.

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

Für einen Leitfaden zum Aktualisieren Ihres Add-Ons für Firefox 5, siehe bitte Add-Ons für Firefox 5 aktualisieren.

Hinweis: Firefox 5 erfordert, dass Binärkomponenten neu kompiliert werden, ebenso wie alle Hauptversionen von Firefox. Einzelheiten finden Sie unter Binary Interfaces.

Änderungen an JavaScript-Code-Modulen

Neue JavaScript-Code-Module

  • Das Dict.jsm-Code-Modul wurde hinzugefügt; es bietet eine API für Wörterbücher von Schlüssel/Wert-Paaren.

NetUtil.jsm

  • Die asyncFetch()-Methode unterstützt jetzt die Angabe der Eingabequelle als nsIInputStream.

Schnittstellenänderungen

  • Die nsIHttpChannelInternal-Schnittstelle hat neue Attribute, die Zugang zu Informationen über die Adressen und Ports der Endpunkte der Kanäle bieten. Diese Informationen sind in erster Linie für Debugging-Zwecke vorgesehen.
  • Die Attribute width und height des <canvas>-Elements werden jetzt im IDL als unsigned Integer anstelle von signed Integern widergespiegelt (siehe HTMLCanvasElement).
  • Die Schnittstellen nsIAppStartup2 und nsIAppStartup_MOZILLA_2_0 wurden in die nsIAppStartup-Schnittstelle zusammengeführt.
  • Die nsIDocShell_MOZILLA_2_0_BRANCH-Schnittstelle wurde in die nsIDocShell-Schnittstelle zusammengeführt.
  • Die nsIFocusManager_MOZILLA_2_0_BRANCH-Schnittstelle wurde in die nsIFocusManager-Schnittstelle zusammengeführt.
  • Die nsIHTMLEditor_MOZILLA_2_0_BRANCH-Schnittstelle wurde in die nsIHTMLEditor-Schnittstelle zusammengeführt.

Neue Schnittstellen

Entfernte Schnittstellen

Die folgenden Schnittstellen waren Implementierungsdetails, die nicht mehr benötigt werden:

Debugging-Hilfen

  • Der neue DebugOnly<T>-Helfer ermöglicht das Deklarieren von Variablen nur für DEBUG-Builds.

JavaScript-API (SpiderMonkey)

Änderungen am Build-System

  • Sie können jetzt Firefox ohne eine mozconfig-Datei bauen; die --enable-application-Einstellung ist jetzt standardmäßig auf "browser" gesetzt. Nach dem Abrufen oder Herunterladen des Codes können Sie configure && make (oder make -f client.mk) verwenden, um Firefox zu bauen.