Firefox 4 für Entwickler

  • Adressname der Version: Firefox_4_für_Entwickler
  • Titel der Version: Firefox 4 für Entwickler
  • ID der Version: 286590
  • Erstellt:
  • Autor: fscholz
  • Aktuelle Version? Ja
  • Kommentar 255 words added, 25 words removed

Inhalt der Version

Firefox 4, in der Beta-Version seit Juni 2010 verfügbar, verbessert die Performance, fügt weitere Unterstützung für HTML5 sowie anderen fortschreitenden Technologien hinzu und verbessert die Sicherheit noch weiter. Dieser Artikel liefert Informationen über das anstehende Release von Firefox 4 und welche neuen Funktionen für Webentwickler, Add-on Entwickler sowie Gecko-Entwickler verfügbar sein werden.

Viele der genannten Funktionen können bereits in einem Firefox 4 Beta Release oder in einem Nightly Build getestet werden.

Hinweis: Dieser und viele verweisende Artikel befinden sich im Aufbau. Einige Artikelnamen sind Platzhalter und müssen noch erstellt und übersetzt werden.

Funktionen für Webentwickler

Gecko verwendet nun einen HTML5 Parser, welcher etliche Fehler behebt und die Kompatibilität sowie Performance verbessert.
Es ist nun auch möglich SVG und MathML direkt im HTML Markup zu notieren.

HTML

Der neue HTML5 Parser
Was der neue Parser für Ihre Webseiten bedeutet und wie Sie jetzt SVG und MathML innerhalb Ihrer Inhalte verwenden können.
HTML5 Formulare
Verbesserungen an Webformularen durch neue Attribute und Typen aus HTML5. Neben diesen Änderungen gibt es außerdem neue Typen für das {{ HTMLElement("input") }} Element, Datenvalidierung und vieles mehr.
HTML5 Abschnitte
Die Gecko-Engine unterstützt nun die neuen HTML5 Elemente, die das Dokument in Abschnitte gliedern: {{ HTMLElement("article") }}, {{ HTMLElement("section") }}, {{ HTMLElement("nav") }}, {{ HTMLElement("aside") }}, {{ HTMLElement("hgroup") }}, {{ HTMLElement("header") }} und {{ HTMLElement("footer") }}.
Weitere HTML5 Elemente
Gecko unterstützt nun auch die folgenden neuen HTML5 Elemente: {{ HTMLElement("mark") }}, {{ HTMLElement("figure") }} und  {{ HTMLElement("figcaption") }}.
HTML5 hidden Attribut
Dieses Attribut, welches jedem Element zugewiesen werden kann, wird verwendet, um Inhalte auf einer Webseite zu verstecken, die zur Zeit nicht von Relevanz sind.
WebSockets
Eine Einleitung zur neuen WebSockets API für Echtzeitkommunikation zwischen einer Webanwendung und einem Server.

Sonstige HTML Änderungen

  • {{ HTMLElement("textarea") }} Elemente sind nun standardmäßig vergrößerbar. Die {{ cssxref("resize") }} CSS Eigenschaft kann benutzt werden, um dies abzuschalten.
  • canvas.getContext und canvas.toDataURL werfen keine Exceptions mehr aus, wenn sie mit unbekannten Argumenten aufgerufen worden sind.
  • canvas2dcontext.lineCap und canvas2dcontext.lineJoin werfen keine Exception mehr aus, wenn sie auf einen unbekannten Wert gesetzt werden.
  • canvas2dcontext.globalCompositeOperation wirft keine Exception mehr aus, wenn ein unbekannter Wert gesetzt wurde und unterstützt nicht länger den nicht-standardisierten Wert darker .
  • Die Unterstützung für das veraltete {{ HTMLElement("spacer") }} Element, welches in keinem Browser vorhanden ist, wurde entfernt.

CSS

CSS Transitions
CSS Transitions werden in Firefox 4 unterstützt.
Berechnete Werte in CSS
Unterstützung für berechnete Werte über calc() ist in Arbeit. Siehe {{ bug(363249) }}.
Gruppierung von Selektoren
Der Selektor {{ cssxref(":-moz-any") }} wurde hinzugefügt, um Selektoren zu gruppieren und Kombinatoren zu zerlegen.
Unterstützung von Ausschnitten in Hintergrundbildern
Die {{ cssxref("-moz-image-rect") }} CSS Eigenschaft ermöglicht es Ausschnitte von Bildern als Hintergrundbild zu verwenden.
CSS Touch Eigenschaften
Unterstützung für Touch Eigenschaften wurde hinzugefügt. Details folgen noch.
Verwendung von beliebigen Elementen als CSS Hintergrund
Es kann nun die {{ cssxref("-moz-element") }} CSS Funktion sowie die {{ domxref("document.mozSetImageElement()") }} DOM Funktion verwendet werden, um beliebige HTML Elemente als Hintergrund zu verwenden.
Datenschutz beim :visited Selektor
Es gab Änderungen am :visited Selektor, welcher nun nicht mehr dazu missbraucht werden kann, Informationen über besuchte Links preis zu geben. Die Änderungen betreffen einige Webanwendungen.

Sonstige CSS Änderungen

  • Die {{ cssxref("text-shadow") }} Eigenschaft beschränkt den Unschärfe-Radius auf 300px aus Gründen der Performance.
  • Die {{ cssxref(":-moz-window-inactive") }} Pseudoklasse wurde implementiert.
  • Die {{ cssxref("-moz-tab-size") }} Eigenschaft lässt Sie die Breite eines Tabzeichens (U+0009) festlegen, wenn der Text gerendert wird.
  • Die CSS3 {{ cssxref("resize") }} Eigenschaft wurde implementiert.
  • Die-moz-background-size Eigenschaft wurde zum endgültigen {{ cssxref("background-size") }} Namen geändert; -moz-background-size wird nicht länger unterstützt.
  • Die {{ cssxref("overflow") }} Eigenschaft wird nicht länger auf Table-group Elemente (<thead>, <tbody>, und <tfoot>) angewendet.
  • Der {{ cssxref(":-moz-focusring") }} Pseudo-Selektor lässt das Aussehen eines Elements festlegen, wenn Gecko der Meinung ist, dass das Element über den Fokus verfügt.
  • Die {{ cssxref("-moz-element") }} CSS Funktion ermöglicht die Verwendung eines beliebigen Elements als Hintergrund für {{ cssxref("background-image") }} und {{ cssxref("background") }}.
  • Die {{ cssxref("-moz-appearance") }} Eigenschaft unterstützt nun den Wert -moz-win-borderless-glass, welches dem Element ein rahmenloses »Aero Glass« Aussehen zuweist.
  • Die Pseudo-Klassen {{ cssxref(":valid") }} und {{ cssxref(":invalid") }} werden nun automatisch zur Validierung von {{ HTMLElement("input") }} Feldern angewendet.
  • Die {{ cssxref(":required") }} Pseudo-Klasse wird nun automatisch allen {{ HTMLElement("input") }} Feldern zugewiesen, die über das required Attribut verfügen. Die Pseudo-Klasse {{ cssxref(":optional") }} wird auf alle anderen Felder angwendet.
  • Die {{ cssxref(":-moz-placeholder") }} Pseudo-Klasse wurde hinzugefügt, damit Sie Placeholder-Texte in Formularfelder anpassen können.
  • Die Pseudo-Klasse {{ cssxref(":-moz-handler-crashed") }} wurde hinzugefügt. Dies wird auf Elemente, deren Plugins abgestürzt sind, angewendet.

Grafik und Video

WebGL
Der WebGL Standard wird nun von Firefox unterstützt.
Leistung von Grafiken und Videos optimieren
Tipps und Tricks zur Optimierung der Performance von Grafiken und Videos in Firefox 4.
Unterstützung von WebM Videos
Das neue offene WebM Videoformat wird nun von Gecko 2.0 unterstützt.
SMIL Animation
Unterstützung von SMIL Animationen in SVG ist nun verfügbar. Siehe {{ bug(482402) }}.
SVG als images und CSS Backgrounds verwenden
Sie können nun SVG in ein {{ htmlelement("img") }} Element einsetzen, genau wie in Hintergrundbildern in CSS. Siehe {{ bug(272288) }}, {{ bug(276431) }} und {{ bug(231179) }}. Hinweis: Diese Funktion ist zur Zeit noch nicht implementiert. Die Unterstützung ist ab Firefox 4 Beta 5 geplant.
Das buffered Attribut für Medien
Das buffered Attribut für {{ htmlelement("video") }} und {{ htmlelement("audio") }} Elemente wird nun unterstützt und lässt Sie bestimmen, welche Bereiche einer Mediendatei zwischengespeichert werden sollen. Die TimeRanges DOM Schnittstelle wurde für diesen Zweck ebenfalls neu implementiert.
Das preload Attribut
Das preload Attribut aus der HTML5 Spezifikation wurde implementiert und ersetzt das vorherige (und nicht länger unterstützte) autobuffer Attribut. Das betrifft die Elemente {{ HTMLElement("video") }} und {{ HTMLElement("audio") }} sowie das {{ interface("nsIDOMHTMLMediaElement") }} Interface.
Raw Videocodec
Unterstützung für das OggYUV raw Videoformat wurde zur Verwendung im {{ HTMLElement("video") }} Element implementiert.

DOM

Grenzen von Rechtecken beziehen
Das Range Objekt verfügt nun über die Methoden getClientRects() und getBoundingClientRect(). Siehe {{ bug(396392) }}.
Maus-Events auf beliebigen Elementen erfassen
Unterstützung für vom Internet Explorer stammende APIs: setCapture() und releaseCapture(). Siehe {{ bug(503943) }}.
Änderungen am Browserverlauf vornehmen
Der bestehende Verlauf, durch das {{ domxref("window.history") }} Objekt verfügbar, unterstützt nun die neuen HTML5 pushState() und replaceState() Methoden.
Touch und Multi-Touch Events
Unterstützung für Touch und Multi-Touch Events wurde hinzugefügt.
Animationen mit MozBeforePaint
Ein neues Event wurde hinzugefügt, welches, in Verbindung mit der {{ domxref("window.mozRequestAnimationFrame()") }} Method und der {{ domxref("window.mozAnimationStartTime") }} Eigenschaft, eine Möglichkeit bereitstellt, Animationen zu erstellen, die mit einer anderen synchron sind.

Sonstige DOM Änderungen

  • Das Wrapping eines {{ HTMLElement("textarea") }} Elements kann nun über das DOM wrap Attribut gesteuert werden. {{ bug(41464) }}
  • DOM {{ domxref("file") }} Objekte bieten nun eine url Eigenschaft an.
  • DOM {{ domxref("file") }} Objekte verfügen nun über eine click() Methode. (Noch nicht erledigt, siehe {{ bug(36619) }}.)
  • FormData für XMLHttpRequest.
  • Die {{ domxref("element.isContentEditable") }} Eigenschaft wurde implementiert.
  • Die mozSourceNode Eigenschaft wurde dem DragTransfer Objekt hinzugefügt.
  • Die selection.modify() Methode wurde dem {{ domxref("Selection") }} Objekt hinzugefügt. Damit können Sie die aktuelle Textauswahl einfach überschreiben oder die Cursor-Position im Browserfenster verändern.
  • Unterstützung des window.directories Objekts und der directories Funktion für {{ domxref("window.open") }}, welche in keinem anderen Browser unterstützt werden, wurden entfernt. Verwenden Sie personalbar stattdessen. {{ Bug(474058) }}
  • Die {{ domxref("event.mozInputSource") }} Eigenschaft wurde zur den DOM Benutzerschnittstellen Events hinzugefügt; diese nicht-standardisierte Eigenschaft, lässt Sie den Typen des Geräts feststellen von dem das Event kommt.
  • Das {{ domxref("document.onreadystatechange") }} Event wurde implementiert.
  • Die {{ domxref("document.createElement") }} Methode akzeptiert nicht weiter < und > um den Tagnamen im Quirksmode.
  • Die Eigenschaft {{ domxref("window.mozPaintCount") }} wurde hinzugefügt. Dadurch können Sie erfahren, wie oft ein Dokument gezeichnet wurde. Das kann nützlich sein, wenn Sie die Performance Ihrer Webanwendung testen möchten.
  • Der Sprachkürzel wurde von {{ domxref("window.navigator.appVersion") }} und {{ domxref("window.navigator.userAgent") }} entfernt. Verwenden Sie {{ domxref("window.navigator.language") }} oder deb Accept-Language Header stattdessen. {{ Bug(572656) }}.
  • Die Eigenschaften {{ domxref("document.height") }} und {{ domxref("document.width") }} wurden entfernt {{ Bug(585877) }}.

Sicherheit

Einleitung zur Content Security Policy
Content Security Policy (CSP) ist ein Mozilla Entwurf, welcher dazu dienen soll, von Webdesignern und Serveradministratoren festlegen zu lassen, wie ihre Webseiten interagieren. Das Ziel ist Attacken zu entdecken und zu entschärfen, darunter auch Cross-Site Scripting und Dateninjektionsattacken.
HTTP Strict Transport Security
HTTP Strict Transport Security ist ein Sicherheitsmechanismus, welcher Webseiten dazu befähigt, dem Browser mitzuteilen, dass nur über HTTPS kommuniziert werden darf, statt über über HTTP.
Der X-FRAME-OPTIONS Response Header
Der X-FRAME-OPTIONS HTTP Response Header, welcher vom Internet Explorer 8 eingeführt wurde, wird nun auch vom Firefox unterstützt. Das erlaubt Seiten anzugeben, ob die Seiten Frames verwenden dürfen oder nicht, und wenn, ob die Frames von der gleichen Herkunft stammen müssen.
Änderungen am User-Agent String
Damit der Betrag am Datengehalt, welcher über HTTP Anfragen gesendet wird, verringert wird, wurden die Sprachkürzel vom User-Agent String entfernt.

JavaScript

Einen Überblick über die Änderungen, die in JavaScript 1.8.5 implementiert wurden, siehe Neu in JavaScript 1.8.5. JavaScript wird in Firefox 4 einige zusätzliche Funktionen des ECMAScript 5 Standards implementieren.

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

Für hilfreiche Tipps zur Aktualisierung von bestehenden Erweiterungen für Firefox 4, siehe Erweiterungen für Firefox 4 aktualisieren.

JavaScript Codemodule

Services.jsm
Das Services.jsm Codemodul stellt Methoden zur Verfügung, die es sehr einfach machen, Referenzen zu gemeinsam-verwendeten Diensten, wie dem Präferenzendienst oder dem Window Mediator herzustellen.
JS-ctypes API
Die JS-ctypes API ermöglicht es C-kompatible fremde Bibliotheksfunktionen aufzurufen ohne XPCOM zu benutzen.
Add-ons Manager
Der neue Add-ons Manager bietet Informationen über installierte Add-ons, unterstützt die Verwaltung und bietet Wege zu Installation und Deinstallation von Add-ons.
Codemodule von chrome: URLs laden
Sie können JavaScript Codmodule über chrome: URLs laden, sogar innerhalb von JAR Dateien.
DownloadLastDir.jsm
Das DownloadLastDir.jsm Codemodul stellt die globale Variable gDownloadLastDir zur Verfügung, welche einen String enthält, den Sie benutzen können, um herauszufinden, wie der Pfad heißt in dem der letzte Download stattgefunden hat. Dieses Modul bewältigt Probleme, die durch Downloads im privaten Modus entstehen können.

Sonstige Änderungen an Codemodulen
Edit section

  • Das NetUtil.jsm Codemodul bietet nun die Methode readInputStreamToString() an, welche Ihnen ermöglicht, beliebige Bytes eines Streams in einen String einzulesen (sogar wenn der Stream Leerstellen enthält).

DOM Änderungen

{{ domxref("ChromeWorker") }}
Ein neuer Worker-Typ für privilegierten Code. Dinge wie js-ctypes lassen sich von Workers in Erweiterungs- und Anwendungscode verwenden.
Touch Events
Unterstützung von (nicht-standardisierten) Touch-Events wurde hinzugefügt. Das ermöglicht Ihnen mehrere Fingerbewegungen auf einem Touch-Screen zur gleichen Zeit zu erfassen.

XUL

Änderungen am tabbrowser Element

Mehre Änderungen wurden am {{ XULElem("tabbrowser") }} Element vorgenommen, die Erweiterungen, die mit Tabs arbeiten, betreffen.

  • TabClose/TabSelect/TabOpen Events gehören nicht länger zum {{ XULElem("tabbrowser") }} Element (gBrowser). Event-Listener für diese Ereignisse sollten zu gBrowser.tabContainer hinzugefügt werden als direkt zu gBrowser.
  • Das Tab-Kontextmenü ist nicht länger ein anonymes Kindelement des {{ XULElem("tabbrowser") }} Elements. Es kann daher direkt mit XUL Overlays überlagert werden. Es kann außerdem direkt in JavaScript über gBrowser.tabContextMenu erreicht werden. Siehe in diesem Blogpost(engl.) für weitere Details.
  • Die neue Eigenschaft {{ XULProp("visibleTabs") }} wurde hinzugefügt, um einen Array der aktuell sichtbaren Tabs zu erhalten. Dadurch lässt sich ermitteln, welcher Tab im aktuellen Tab-Set sichtbar ist. Das wird zum Beispiel von Firefox Panorama genutzt.
  • Die Methode {{ XULMeth2("showOnlyTheseTabs") }} wurde hinzugefügt. Diese wird von Firefox Panorama verwendet.
  • Die Methode {{ XULMeth2("getIcon") }} wurde hinzugefügt, welche Ihnen das Favicon des Tabs liefert ohne das {{ XULElem("browser") }} Element verwenden zu müssen.
  • Die Eigenschaft {{ XULProp("tabbrowser.tabs") }} wurde hinzugefügt, welche Ihnen eine Liste der Tabs in einem {{ XULElem("tabbrowser") }} Element liefert.

Fernbetrieb von XUL entfernt

Entferntes XUL wird nicht länger unterstützt . Das betrifft XUL Dokumente, die über HTTP ausgeliefert werden.

Sonstige XUL Änderungen

  • Das {{ xulattr("readonly") }} Attribute funktioniert nun korrekt in Feldern.
  • Das {{ xulelem("resizer") }} Element lässt Sie nun das {{ xulattr("element") }} Attribut dazu verwenden, um ein Element als größenveränderbar festzulegen.
  • Das "active" Attribut wirkt nicht mehr auf aktive XUL Fenster. Stattdessen sollten Sie die neue {{ cssxref(":-moz-window-inactive") }} Pseudoklasse verwenden, um unterschiedliche Styles anzuwenden.
  • Das {{ xulattr("emptytext") }} Attribut ist nicht mehr erwünscht (deprecated). Sie sollten {{ xulattr("placeholder") }} stattdessen benutzen.
  • Das {{ xulelem("popup") }} Element wird nicht weiter unterstützt. Sie sollten {{ xulelem("menupopup") }} stattdessen verwenden.
  • Das {{ xulelem("window") }} Element bietet nun das {{ xulattr("accelerated") }} Attribut an. Fall true ist es dem Hardware-Layer-Manager gestattet das Fenster zu beschleunigen.
  • Das {{ xulelem("stack") }} Element unterstützt nun die Attribute {{ xulattr("bottom") }} und {{ xulattr("right") }}.
  • Das {{ xulattr("alternatingbackground") }} Attribut für {{ xulelem("tree") }} Elements wird nicht länger unterstützt. Sie können die {{ cssxref(":-moz-tree-row") }} Pseudo-Klasse stattdessen verwenden.
  • Die Overflow-Button der Lesezeichenleiste mit chevronPopup ist nicht länger anonym und hat eine Id von PlacesChevron.
  • Das {{ xulelem("tabs") }} Element hat nun die Eigenschaft {{ xulprop("tabbox") }}, welches die alte _tabbox Eigenschaft ersetzt, welche nun veraltet ist (und niemals dokumentiert war).
  • XUL {{ xulelem("window") }} Elemente verfügen nun über das {{ xulattr("drawintitlebar") }} Attribut. Falls true, ist die Titelleiste im Bereich des Fensters enthalten und es wird gestattet in der Titelleiste zu zeichnen.

Storage

Sonstige Storage API Änderungen

  • Die {{ interface("mozIStorageBindingParamsArray") }} Schnittstelle hat nun ein Längenattribut, das die Anzahl der {{ interface("mozIStorageBindingParams") }} Objekte im Array angibt.
  • {{ ifandmethod("mozIStorageStatement", "bindParameters") }} gibt nun einen Fehler aus, wenn der festgelegte {{ interface("mozIStorageBindingParamsArray") }} leer ist.
  • Die Methode mozIStorageConnection.clone() wurde hinzugefügt, welche eine bestehende Datenbankverbindung klonen lässt.
  • Die Methode mozIStorageConnection.asyncClose() wurde hinzugefügt, welche eine bestehende Datenbankverbindung asynchron klonen lässt. Sie können ein Callback definieren, um hingewiesen zu werden, wenn die Close-Operation fertig ist.
  • Die Methode mozIStorageConnection.setGrowthIncrement() wurde hinzugefügt, welche Ihnen erlaubt einen Betrag festzulegen, welcher angibt um wie viel eine Datenbankdatei größer werden darf, um Fragmentierungen in SQLite zu reduzieren.
  • Der SQLITE_CONSTRAINT Fehler wird nun als NS_ERROR_STORAGE_CONSTRAINT statt eines NS_ERROR_FAILURE ausgegeben.

XPCOM

XPCOM Änderungen in Gecko 2.0
Details über Änderungen an XPCOM in Firefox 4.
Components.utils.getGlobalForObject()
Diese neue Methode gibt das globale Objekt, mit welchem ein Objekt assoziiert ist, zurück. Das ersetzt ein Verwendungszweck für das jetzt entfernte __parent__.

PlacesEdit section

  • Places Query-Ergebnisse können nun von mehreren Observern beobachtet werden und die Queries können asynchron ausgeführt werden. Das bedeutet, dass es einige Änderungen an den Schnittstellen nsINavHistoryResult, nsINavHistoryQueryOptions, und nsINavHistoryContainerResultNode gibt. Außerdem wurde das nsINavHistoryResultViewer Interface zu nsINavHistoryResultObserver umbenannt.
  • Einige neue Hinweise wurden hinzugefügt, um dem Browser das Verfolgen des Beenden-Prozesses des Places-Services besser zu ermöglichen. Daher sind die meisten Hinweise nur für den internen Gebrauch gedacht, aber der Hinweis places-connection-closed ist verfügbar, um festzustellen wann der Places-Dienst das Beenden fertiggestellt hat.

Interface ÄnderungenEdit section

  • Die Schnittstellen nsIDocShell und nsIWebBrowser verfügen nun über das neue Attribut isActive, welches verwendet wird, um Optimierungen an Code-Pfaden, die zur Zeit nicht sichtbar sind, zu ermöglichen.

Memory Management

Fehlerfreie Speicherzuordnung
Mozilla stellt nur fehlerfreie Speicherzuordnungen zur Verfügung, die garantiert nicht null zurückgeben. Sie sollten diesen Artikel lesen, um zu lernen wie dies funktioniert und wie man explizit fehlbare oder unfehlbare Speicherzuordnung gestattet.

Weitere Änderungen

Gopher Unterstützung entfernt
Das Gopher Protokoll wird nicht länger nativ unterstützt. Unterstützung kann über die OverbiteFF Erweiterung erreicht werden.
Standardplugin entfernt
Das Standardplugin wurde entfernt. Der Ordner für Anwendungsplugins wurde außerdem entfernt. Unterstützung von Installationen über dieses Verzeichnis existiert aber immer noch. Siehe {{ bug(533891) }}.
Erweiterungsmananger durch AddonManager ersetzt
nsIExtensionManager wurde durch den AddonManager ersetzt. Da es keinen Weg gibt den Installationsort von einer gegebenen Erweiterungs-ID zu bekommen, ist der beste Workaround den Verzeichnisdienst zu verwenden, um das Profilverzeichnis zu finden und dann "extensions" anzuhängen (obwohl dies nicht Erweiterung beachtet, die sich außerhalb des Profilverzeichnisses befinden).

Siehe auch

{{ languages( { "en": "en/Firefox_4_for_developers", "ja": "ja/Firefox_4_for_developers", "zh-tw": "zh_tw/Firefox_4_for_developers"} ) }}

Quelltext der Version

<p>Firefox 4, in der Beta-Version seit Juni 2010 verfügbar, verbessert die Performance, fügt weitere Unterstützung für HTML5 sowie anderen fortschreitenden Technologien hinzu und verbessert die Sicherheit noch weiter. Dieser Artikel liefert Informationen über das anstehende Release von Firefox 4 und welche neuen Funktionen für Webentwickler, Add-on Entwickler sowie Gecko-Entwickler verfügbar sein werden.</p>
<p>Viele der genannten Funktionen können bereits in einem <a class=" external" href="http://www.mozilla.com/en-US/firefox/beta/" title="http://www.mozilla.com/en-US/firefox/beta/">Firefox 4 Beta</a> Release oder in einem <a class=" external" href="http://nightly.mozilla.org/" title="http://nightly.mozilla.org/">Nightly Build</a> getestet werden.</p>
<div class="note"><strong>Hinweis:</strong> Dieser und viele verweisende Artikel befinden sich im Aufbau. Einige Artikelnamen sind Platzhalter und müssen noch erstellt und übersetzt werden.</div>
<h2 id="Funktionen_f.C3.BCr_Webentwickler">Funktionen für Webentwickler</h2>
<p>Gecko verwendet nun einen <a href="/de/HTML/HTML5" title="de/HTML/HTML5">HTML5</a> Parser, welcher etliche Fehler behebt und die Kompatibilität sowie Performance verbessert. <br>
Es ist nun auch möglich <a href="/de/SVG" title="de/SVG">SVG</a> und <a href="/de/MathML" title="de/MathML">MathML</a> direkt im HTML Markup zu notieren.</p>
<h3 id="HTML">HTML</h3>
<dl> <dt><a href="/de/HTML/HTML5/HTML5_Parser" title="de/HTML/HTML5/HTML5 Parser">Der neue HTML5 Parser</a></dt> <dd>Was der neue Parser für Ihre Webseiten bedeutet und wie Sie jetzt SVG und MathML innerhalb Ihrer Inhalte verwenden können.</dd> <dt><a href="/de/HTML/HTML5/HTML5_Formulare" title="de/HTML/HTML5/HTML5 Formulare">HTML5 Formulare</a></dt> <dd>Verbesserungen an Webformularen durch neue Attribute und Typen aus HTML5. Neben diesen Änderungen gibt es außerdem neue Typen für das {{ HTMLElement("input") }} Element, Datenvalidierung und vieles mehr.</dd> <dt><a href="/de/Abschnitte_und_Gliederungen_eines_HTML5_Dokuments" title="de/Abschnitte und Gliederungen eines HTML5 Dokuments">HTML5 Abschnitte</a></dt> <dd>Die Gecko-Engine unterstützt nun die neuen HTML5 Elemente, die das Dokument in Abschnitte gliedern: {{ HTMLElement("article") }}, {{ HTMLElement("section") }}, {{ HTMLElement("nav") }}, {{ HTMLElement("aside") }}, {{ HTMLElement("hgroup") }}, {{ HTMLElement("header") }} und {{ HTMLElement("footer") }}.</dd> <dt>Weitere HTML5 Elemente</dt> <dd>Gecko unterstützt nun auch die folgenden neuen HTML5 Elemente: {{ HTMLElement("mark") }}, {{ HTMLElement("figure") }} und  {{ HTMLElement("figcaption") }}.</dd> <dt><a href="/de/HTML/Globale_Attribute#attr-hidden" title="de/HTML/Globale_Attribute#attr-hidden">HTML5 hidden Attribut</a></dt> <dd>Dieses Attribut, welches jedem Element zugewiesen werden kann, wird verwendet, um Inhalte auf einer Webseite zu verstecken, die zur Zeit nicht von Relevanz sind.</dd> <dt>WebSockets</dt> <dd>Eine Einleitung zur neuen WebSockets API für Echtzeitkommunikation zwischen einer Webanwendung und einem Server.</dd>
</dl>
<h4 id="Sonstige_HTML_.C3.84nderungen">Sonstige HTML Änderungen</h4>
<ul> <li>{{ HTMLElement("textarea") }} Elemente sind nun standardmäßig vergrößerbar. Die {{ cssxref("resize") }} CSS Eigenschaft kann benutzt werden, um dies abzuschalten.</li> <li><code>canvas.getContext</code> und <code>canvas.toDataURL</code> werfen keine Exceptions mehr aus, wenn sie mit unbekannten Argumenten aufgerufen worden sind.</li> <li><code>canvas2dcontext.lineCap</code> und <code>canvas2dcontext.lineJoin</code> werfen keine Exception mehr aus, wenn sie auf einen unbekannten Wert gesetzt werden.</li> <li><code>canvas2dcontext.globalCompositeOperation</code> wirft keine Exception mehr aus, wenn ein unbekannter Wert gesetzt wurde und unterstützt nicht länger den nicht-standardisierten Wert <code>darker</code> .</li> <li>Die Unterstützung für das veraltete {{ HTMLElement("spacer") }} Element, welches in keinem Browser vorhanden ist, wurde entfernt.</li>
</ul>
<h3 id="CSS">CSS</h3>
<dl> <dt><a href="/de/CSS/CSS_Transitions" title="de/CSS/CSS Transitions">CSS Transitions</a></dt> <dd>CSS Transitions werden in Firefox 4 unterstützt.</dd> <dt>Berechnete Werte in CSS</dt> <dd>Unterstützung für berechnete Werte über <code>calc()</code> ist in Arbeit. Siehe {{ bug(363249) }}.</dd> <dt>Gruppierung von Selektoren</dt> <dd>Der Selektor {{ cssxref(":-moz-any") }} wurde hinzugefügt, um Selektoren zu gruppieren und Kombinatoren zu zerlegen.</dd> <dt>Unterstützung von Ausschnitten in Hintergrundbildern</dt> <dd>Die {{ cssxref("-moz-image-rect") }} CSS Eigenschaft ermöglicht es Ausschnitte von Bildern als Hintergrundbild zu verwenden.</dd> <dt>CSS Touch Eigenschaften</dt> <dd>Unterstützung für Touch Eigenschaften wurde hinzugefügt. Details folgen noch.</dd> <dt>Verwendung von beliebigen Elementen als CSS Hintergrund</dt> <dd>Es kann nun die {{ cssxref("-moz-element") }} CSS Funktion sowie die {{ domxref("document.mozSetImageElement()") }} DOM Funktion verwendet werden, um beliebige HTML Elemente als Hintergrund zu verwenden.</dd> <dt><a href="/de/CSS/Datenschutz_beim_:visited_Selektor" title="de/CSS/Datenschutz beim :visited Selektor">Datenschutz beim :visited Selektor</a></dt> <dd>Es gab Änderungen am <code>:visited</code> Selektor, welcher nun nicht mehr dazu missbraucht werden kann, Informationen über besuchte Links preis zu geben. Die Änderungen betreffen einige Webanwendungen.</dd>
</dl>
<h4 id="Sonstige_CSS_.C3.84nderungen">Sonstige CSS Änderungen</h4>
<ul> <li>Die {{ cssxref("text-shadow") }} Eigenschaft beschränkt den Unschärfe-Radius auf 300px aus Gründen der Performance.</li> <li>Die {{ cssxref(":-moz-window-inactive") }} Pseudoklasse wurde implementiert.</li> <li>Die {{ cssxref("-moz-tab-size") }} Eigenschaft lässt Sie die Breite eines Tabzeichens (U+0009) festlegen, wenn der Text gerendert wird.</li> <li>Die CSS3 {{ cssxref("resize") }} Eigenschaft wurde implementiert.</li> <li>Die<code>-moz-background-size </code>Eigenschaft wurde zum endgültigen {{ cssxref("background-size") }} Namen geändert; <code>-moz-background-size</code> wird nicht länger unterstützt.</li> <li>Die {{ cssxref("overflow") }} Eigenschaft wird nicht länger auf Table-group Elemente (<code>&lt;thead&gt;</code>, <code>&lt;tbody&gt;</code>, und <code>&lt;tfoot&gt;</code>) angewendet.</li> <li>Der {{ cssxref(":-moz-focusring") }} Pseudo-Selektor lässt das Aussehen eines Elements festlegen, wenn Gecko der Meinung ist, dass das Element über den Fokus verfügt.</li> <li>Die {{ cssxref("-moz-element") }} CSS Funktion ermöglicht die Verwendung eines beliebigen Elements als Hintergrund für {{ cssxref("background-image") }} und {{ cssxref("background") }}.</li> <li>Die {{ cssxref("-moz-appearance") }} Eigenschaft unterstützt nun den Wert <code>-moz-win-borderless-glass</code>, welches dem Element ein rahmenloses »Aero Glass« Aussehen zuweist.</li> <li>Die Pseudo-Klassen {{ cssxref(":valid") }} und {{ cssxref(":invalid") }} werden nun automatisch zur Validierung von {{ HTMLElement("input") }} Feldern angewendet.</li> <li>Die {{ cssxref(":required") }} Pseudo-Klasse wird nun automatisch allen {{ HTMLElement("input") }} Feldern zugewiesen, die über das <code>required</code> Attribut verfügen. Die Pseudo-Klasse {{ cssxref(":optional") }} wird auf alle anderen Felder angwendet.</li> <li>Die {{ cssxref(":-moz-placeholder") }} Pseudo-Klasse wurde hinzugefügt, damit Sie Placeholder-Texte in Formularfelder anpassen können.</li> <li>Die Pseudo-Klasse {{ cssxref(":-moz-handler-crashed") }} wurde hinzugefügt. Dies wird auf Elemente, deren Plugins abgestürzt sind, angewendet.</li>
</ul>
<h3 id="Grafik_und_Video">Grafik und Video</h3>
<dl> <dt> </dt><dt><a href="/de/WebGL" title="de/WebGL">WebGL</a></dt> <dd>Der WebGL Standard wird nun von Firefox unterstützt.</dd> <dt>Leistung von Grafiken und Videos optimieren</dt> <dd>Tipps und Tricks zur Optimierung der Performance von Grafiken und Videos in Firefox 4.</dd> <dt><a href="/de/Unterstützte_Medienformate_der_Audio_und_Video_Elemente#WebM" title="de/Unterstützte Medienformate der Audio und Video Elemente#WebM">Unterstützung von WebM Videos</a></dt> <dd>Das neue offene <a class=" external" href="http://www.webmproject.org/" title="http://www.webmproject.org/">WebM</a> Videoformat wird nun von Gecko 2.0 unterstützt.</dd> <dt>SMIL Animation</dt> <dd>Unterstützung von SMIL Animationen in SVG ist nun verfügbar. Siehe {{ bug(482402) }}.</dd> <dt>SVG als images und CSS Backgrounds verwenden</dt> <dd>Sie können nun SVG in ein {{ htmlelement("img") }} Element einsetzen, genau wie in Hintergrundbildern in CSS. Siehe {{ bug(272288) }}, {{ bug(276431) }} und {{ bug(231179) }}. Hinweis: Diese Funktion ist zur Zeit noch nicht implementiert. Die Unterstützung ist ab Firefox 4 Beta 5 geplant.</dd> <dt>Das <code>buffered</code> Attribut für Medien</dt> <dd>Das <code>buffered</code> Attribut für {{ htmlelement("video") }} und {{ htmlelement("audio") }} Elemente wird nun unterstützt und lässt Sie bestimmen, welche Bereiche einer Mediendatei zwischengespeichert werden sollen. Die <a href="/de/DOM/TimeRanges" title="de/DOM/TimeRanges"><code>TimeRanges</code></a> DOM Schnittstelle wurde für diesen Zweck ebenfalls neu implementiert.</dd> <dt>Das <code>preload</code> Attribut</dt> <dd>Das <code>preload</code> Attribut aus der HTML5 Spezifikation wurde implementiert und ersetzt das vorherige (und nicht länger unterstützte) <code>autobuffer</code> Attribut. Das betrifft die Elemente {{ HTMLElement("video") }} und {{ HTMLElement("audio") }} sowie das {{ interface("nsIDOMHTMLMediaElement") }} Interface.</dd> <dt>Raw Videocodec</dt> <dd>Unterstützung für das <a class=" external" href="http://wiki.xiph.org/OggYUV">OggYUV</a> raw Videoformat wurde zur Verwendung im {{ HTMLElement("video") }} Element implementiert.</dd>
</dl>
<h3 id="DOM">DOM</h3>
<dl> <dt>Grenzen von Rechtecken beziehen</dt> <dd>Das Range Objekt verfügt nun über die Methoden <code>getClientRects()</code> und <code>getBoundingClientRect()</code>. Siehe {{ bug(396392) }}.</dd> <dt>Maus-Events auf beliebigen Elementen erfassen</dt> <dd>Unterstützung für vom Internet Explorer stammende APIs: <code>setCapture()</code> und <code>releaseCapture()</code>. Siehe {{ bug(503943) }}.</dd> <dt><a href="/de/DOM/Änderungen_am_Browserverlauf_vornehmen" title="de/DOM/Änderungen am Browserverlauf vornehmen">Änderungen am Browserverlauf vornehmen</a></dt> <dd>Der bestehende Verlauf, durch das {{ domxref("window.history") }} Objekt verfügbar, unterstützt nun die neuen HTML5 <code>pushState()</code> und <code>replaceState()</code> Methoden.</dd> <dt>Touch und Multi-Touch Events</dt> <dd>Unterstützung für Touch und Multi-Touch Events wurde hinzugefügt.</dd> <dt><a href="/de/DOM/Animationen_mit_MozBeforePaint" title="de/DOM/Animationen_mit_MozBeforePaint">Animationen mit MozBeforePaint</a></dt> <dd>Ein neues Event wurde hinzugefügt, welches, in Verbindung mit der {{ domxref("window.mozRequestAnimationFrame()") }} Method und der {{ domxref("window.mozAnimationStartTime") }} Eigenschaft, eine Möglichkeit bereitstellt, Animationen zu erstellen, die mit einer anderen synchron sind.</dd>
</dl>
<h4 id="Sonstige_DOM_.C3.84nderungen">Sonstige DOM Änderungen</h4>
<ul> <li>Das Wrapping eines {{ HTMLElement("textarea") }} Elements kann nun über das DOM <code>wrap</code> Attribut gesteuert werden. {{ bug(41464) }}</li> <li>DOM {{ domxref("file") }} Objekte bieten nun eine <code>url</code> Eigenschaft an.</li> <li>DOM {{ domxref("file") }} Objekte verfügen nun über eine <code><span style="font-family: Verdana,Tahoma,sans-serif;">c</span>lick()</code> Methode. (Noch nicht erledigt, siehe {{ bug(36619) }}.)</li> <li><a href="/de/XMLHttpRequest/Verwendung_con_XMLHttpRequest#FormData_Objekte_verwenden" title="de/XMLHttpRequest/Verwendung con XMLHttpRequest#FormData Objekte verwenden">FormData</a> für XMLHttpRequest.</li> <li>Die {{ domxref("element.isContentEditable") }} Eigenschaft wurde implementiert.</li> <li>Die <a href="/de/DragDrop/DataTransfer#mozSourceNode" title="de/DragDrop/DataTransfer#mozSourceNode"><code>mozSourceNode</code></a> Eigenschaft wurde dem <a href="/de/DragDrop/DataTransfer" title="de/DragDrop/DataTransfer"><code>DragTransfer</code></a> Objekt hinzugefügt.</li> <li>Die <a href="/de/DOM/Selection/modify" title="de/DOM/Selection/modify"><code>selection.modify()</code></a> Methode wurde dem {{ domxref("Selection") }} Objekt hinzugefügt. Damit können Sie die aktuelle Textauswahl einfach überschreiben oder die Cursor-Position im Browserfenster verändern.</li> <li>Unterstützung des <code>window.directories</code> Objekts und der <code>directories</code> Funktion für {{ domxref("window.open") }}, welche in keinem anderen Browser unterstützt werden, wurden entfernt. Verwenden Sie <code>personalbar</code> stattdessen. {{ Bug(474058) }}</li> <li>Die {{ domxref("event.mozInputSource") }} Eigenschaft wurde zur den DOM Benutzerschnittstellen Events hinzugefügt; diese nicht-standardisierte Eigenschaft, lässt Sie den Typen des Geräts feststellen von dem das Event kommt.</li> <li>Das {{ domxref("document.onreadystatechange") }} Event wurde implementiert.</li> <li>Die {{ domxref("document.createElement") }} Methode akzeptiert nicht weiter <code>&lt;</code> und <code>&gt;</code> um den Tagnamen im Quirksmode.</li> <li>Die Eigenschaft {{ domxref("window.mozPaintCount") }} wurde hinzugefügt. Dadurch können Sie erfahren, wie oft ein Dokument gezeichnet wurde. Das kann nützlich sein, wenn Sie die Performance Ihrer Webanwendung testen möchten.</li> <li>Der Sprachkürzel wurde von {{ domxref("window.navigator.appVersion") }} und {{ domxref("window.navigator.userAgent") }} entfernt. Verwenden Sie {{ domxref("window.navigator.language") }} oder deb <a href="/de/Content_negotiation" title="de/Content negotiation">Accept-Language Header</a> stattdessen. {{ Bug(572656) }}.</li> <li>Die Eigenschaften {{ domxref("document.height") }} und {{ domxref("document.width") }} wurden entfernt {{ Bug(585877) }}.</li>
</ul>
<h3 id="Sicherheit">Sicherheit</h3>
<dl> <dt><a href="/de/Einleitung_zur_Content_Security_Policy" title="de/Einleitung zur Content Security Policy">Einleitung zur Content Security Policy</a></dt> <dd>Content Security Policy (CSP) ist ein Mozilla Entwurf, welcher dazu dienen soll, von Webdesignern und Serveradministratoren festlegen zu lassen, wie ihre Webseiten interagieren. Das Ziel ist Attacken zu entdecken und zu entschärfen, darunter auch Cross-Site Scripting und Dateninjektionsattacken.</dd> <dt><a href="/de/Sicherheit/HTTP_Strict_Transport_Security" title="de/Sicherheit/HTTP_Strict_Transport_Security">HTTP Strict Transport Security</a></dt> <dd>HTTP Strict Transport Security ist ein Sicherheitsmechanismus, welcher Webseiten dazu befähigt, dem Browser mitzuteilen, dass nur über HTTPS kommuniziert werden darf, statt über über HTTP.</dd> <dt><a href="/de/Der_X-FRAME-OPTIONS_Response_Header" title="de/Der_X-FRAME-OPTIONS_Response_Header">Der X-FRAME-OPTIONS Response Header</a></dt> <dd>Der X-FRAME-OPTIONS HTTP Response Header, welcher vom Internet Explorer 8 eingeführt wurde, wird nun auch vom Firefox unterstützt. Das erlaubt Seiten anzugeben, ob die Seiten Frames verwenden dürfen oder nicht, und wenn, ob die Frames von der gleichen Herkunft stammen müssen.</dd> <dt>Änderungen am <a href="/de/User-Agent_Strings" title="de/User-Agent Strings">User-Agent String</a></dt> <dd>Damit <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=572650">der Betrag am Datengehalt, welcher über HTTP Anfragen gesendet wird, verringert wird</a>, wurden die Sprachkürzel vom User-Agent String entfernt.</dd>
</dl>
<h3 id="JavaScript">JavaScript</h3>
<p>Einen Überblick über die Änderungen, die in JavaScript 1.8.5 implementiert wurden, siehe <a href="/de/JavaScript/Neu_in_JavaScript/1.8.5" title="de/JavaScript/Neu in JavaScript/1.8.5">Neu in JavaScript 1.8.5</a>. JavaScript wird in Firefox 4 einige zusätzliche Funktionen des ECMAScript 5 Standards implementieren.</p>
<h2 id=".C3.84nderungen_f.C3.BCr_Mozilla-_und_Add-on-Entwickler">Änderungen für Mozilla- und Add-on-Entwickler</h2>
<p>Für hilfreiche Tipps zur Aktualisierung von bestehenden Erweiterungen für Firefox 4, siehe <a href="/de/Erweiterungen/Erweiterungen_für_Firefox_4_aktualisieren" title="de/Erweiterungen/Erweiterungen für Firefox 4 aktualisieren">Erweiterungen für Firefox 4 aktualisieren</a>.</p>
<h3 id="JavaScript_Codemodule">JavaScript Codemodule</h3>
<dl> <dt><a href="/de/JavaScript/Codemodule/Services.jsm" title="de/JavaScript/Codemodule/Services.jsm">Services.jsm</a></dt> <dd>Das <code>Services.jsm</code> Codemodul stellt Methoden zur Verfügung, die es sehr einfach machen, Referenzen zu gemeinsam-verwendeten Diensten, wie dem Präferenzendienst oder dem Window Mediator herzustellen.</dd>
</dl>
<dl> <dt><a href="/de/JavaScript/Codemodule/ctypes.jsm" title="de/JavaScript/Codemodule/ctypes.jsm">JS-ctypes API</a></dt> <dd>Die JS-ctypes API ermöglicht es C-kompatible fremde Bibliotheksfunktionen aufzurufen ohne XPCOM zu benutzen.</dd> <dt><a href="/de/Addons/Add-on_Manager" title="de/Addons/Add-on Manager">Add-ons Manager</a></dt> <dd>Der neue Add-ons Manager bietet Informationen über installierte Add-ons, unterstützt die Verwaltung und bietet Wege zu Installation und Deinstallation von Add-ons.</dd> <dt><a href="/de/JavaScript/Codemodule/Verwendung#Das_Codemodul_finden" title="de/JavaScript/Codemodule/Verwendung#Das Codemodul finden">Codemodule von chrome: URLs laden</a></dt> <dd>Sie können JavaScript Codmodule über <strong>chrome:</strong> URLs laden, sogar innerhalb von JAR Dateien.</dd> <dt>DownloadLastDir.jsm</dt> <dd>Das <a href="/de/JavaScript/Codemodule/DownloadLastDir.jsm" rel="internal" title="de/JavaScript/Codemodule/DownloadLastDir.jsm"><code>DownloadLastDir.jsm</code></a> Codemodul stellt die globale Variable <code>gDownloadLastDir</code> zur Verfügung, welche einen String enthält, den Sie benutzen können, um herauszufinden, wie der Pfad heißt in dem der letzte Download stattgefunden hat. Dieses Modul bewältigt Probleme, die durch Downloads im privaten Modus entstehen können.</dd>
</dl>
<div id="section_13">
<h4 class="editable" id="Sonstige_.C3.84nderungen_an_Codemodulen

"><span>Sonstige Änderungen an Codemodulen</span>
<div class="editIcon"><a href="../../../../en/Firefox_4_for_developers#" style="visibility: hidden;" title="Edit section"><span class="icon"><img alt="Edit section" class="sectionedit" src="../../../../skins/common/icons/icon-trans.gif"></span></a></div>
</h4>
<ul> <li>Das <code>NetUtil.jsm</code> Codemodul bietet nun die Methode <a href="/en/JavaScript/Codemodule/NetUtil.jsm#readInputStreamToString%28%29" rel="internal" title="en/JavaScript/Codemodule/NetUtil.jsm#readInputStreamToString()"><code>readInputStreamToString()</code></a> an, welche Ihnen ermöglicht, beliebige Bytes eines Streams in einen String einzulesen (sogar wenn der Stream Leerstellen enthält).</li>
</ul>
</div>
<dl> <h3 id="DOM_.C3.84nderungen">DOM Änderungen</h3> <dl> <dt>{{ domxref("ChromeWorker") }}</dt> <dd>Ein neuer Worker-Typ für privilegierten Code. Dinge wie <a href="/de/js-ctypes" title="de/js-ctypes">js-ctypes</a> lassen sich von Workers in Erweiterungs- und Anwendungscode verwenden.</dd> <dt><a href="/de/DOM/Touch_Events" title="de/DOM/Touch_Events">Touch Events</a></dt> <dd>Unterstützung von (nicht-standardisierten) Touch-Events wurde hinzugefügt. Das ermöglicht Ihnen mehrere Fingerbewegungen auf einem Touch-Screen zur gleichen Zeit zu erfassen.</dd> </dl> <h3 id="XUL">XUL</h3> <h4 id=".C3.84nderungen_am_tabbrowser_Element">Änderungen am tabbrowser Element</h4> <p>Mehre Änderungen wurden am {{ XULElem("tabbrowser") }} Element vorgenommen, die Erweiterungen, die mit Tabs arbeiten, betreffen.</p> <ul> <li>TabClose/TabSelect/TabOpen Events gehören nicht länger zum {{ XULElem("tabbrowser") }} Element (gBrowser). Event-Listener für diese Ereignisse sollten zu gBrowser.tabContainer hinzugefügt werden als direkt zu gBrowser.</li> <li>Das Tab-Kontextmenü ist nicht länger ein anonymes Kindelement des {{ XULElem("tabbrowser") }} Elements. Es kann daher direkt mit <a href="/de/XUL_Overlays" title="de/XUL Overlays">XUL Overlays</a> überlagert werden. Es kann außerdem direkt in JavaScript über gBrowser.tabContextMenu erreicht werden. Siehe in <a class=" external" href="http://www.gavinsharp.com/blog/2010/03/31/accessingmodifying-the-firefox-tab-context-menu-from-extensions/" title="http://www.gavinsharp.com/blog/2010/03/31/accessingmodifying-the-firefox-tab-context-menu-from-extensions/">diesem Blogpost</a>(engl.) für weitere Details.</li> <li>Die neue Eigenschaft {{ XULProp("visibleTabs") }} wurde hinzugefügt, um einen Array der aktuell sichtbaren Tabs zu erhalten. Dadurch lässt sich ermitteln, welcher Tab im aktuellen Tab-Set sichtbar ist. Das wird zum Beispiel von Firefox Panorama genutzt.</li> <li>Die Methode {{ XULMeth2("showOnlyTheseTabs") }} wurde hinzugefügt. Diese wird von Firefox Panorama verwendet.</li> <li>Die Methode {{ XULMeth2("getIcon") }} wurde hinzugefügt, welche Ihnen das Favicon des Tabs liefert ohne das {{ XULElem("browser") }} Element verwenden zu müssen.</li> <li>Die Eigenschaft {{ XULProp("tabbrowser.tabs") }} wurde hinzugefügt, welche Ihnen eine Liste der Tabs in einem {{ XULElem("tabbrowser") }} Element liefert.</li> </ul> <h4 id="Fernbetrieb_von_XUL_entfernt">Fernbetrieb von XUL entfernt</h4> <p>Entferntes XUL wird nicht länger unterstützt . Das betrifft XUL Dokumente, die über HTTP ausgeliefert werden.</p> <h4 id="Sonstige_XUL_.C3.84nderungen">Sonstige XUL Änderungen</h4> <ul> <li>Das {{ xulattr("readonly") }} Attribute funktioniert nun korrekt in Feldern.</li> <li>Das {{ xulelem("resizer") }} Element lässt Sie nun das {{ xulattr("element") }} Attribut dazu verwenden, um ein Element als größenveränderbar festzulegen.</li> <li>Das "active" Attribut wirkt nicht mehr auf aktive XUL Fenster. Stattdessen sollten Sie die neue {{ cssxref(":-moz-window-inactive") }} Pseudoklasse verwenden, um unterschiedliche Styles anzuwenden.</li> <li>Das {{ xulattr("emptytext") }} Attribut ist nicht mehr erwünscht (deprecated). Sie sollten {{ xulattr("placeholder") }} stattdessen benutzen.</li> <li>Das {{ xulelem("popup") }} Element wird nicht weiter unterstützt. Sie sollten {{ xulelem("menupopup") }} stattdessen verwenden.</li> <li>Das {{ xulelem("window") }} Element bietet nun das {{ xulattr("accelerated") }} Attribut an. Fall <code>true</code> ist es dem Hardware-Layer-Manager gestattet das Fenster zu beschleunigen.</li> <li>Das {{ xulelem("stack") }} Element unterstützt nun die Attribute {{ xulattr("bottom") }} und {{ xulattr("right") }}.</li> <li>Das {{ xulattr("alternatingbackground") }} Attribut für {{ xulelem("tree") }} Elements wird nicht länger unterstützt. Sie können die {{ cssxref(":-moz-tree-row") }} Pseudo-Klasse stattdessen verwenden.</li> <li>Die Overflow-Button der Lesezeichenleiste mit chevronPopup ist nicht länger anonym und hat eine Id von PlacesChevron.</li> <li>Das {{ xulelem("tabs") }} Element hat nun die Eigenschaft {{ xulprop("tabbox") }}, welches die alte <code>_tabbox</code> Eigenschaft ersetzt, welche nun veraltet ist (und niemals dokumentiert war).</li> <li>XUL {{ xulelem("window") }} Elemente verfügen nun über das {{ xulattr("drawintitlebar") }} Attribut. Falls <code>true</code>, ist die Titelleiste im Bereich des Fensters enthalten und es wird gestattet in der Titelleiste zu zeichnen.</li> </ul> <h3 id="Storage">Storage</h3> <h4 id="Sonstige_Storage_API_.C3.84nderungen">Sonstige Storage API Änderungen</h4> <ul> <li>Die {{ interface("mozIStorageBindingParamsArray") }} Schnittstelle hat nun ein Längenattribut, das die Anzahl der {{ interface("mozIStorageBindingParams") }} Objekte im Array angibt.</li> <li>{{ ifandmethod("mozIStorageStatement", "bindParameters") }} gibt nun einen Fehler aus, wenn der festgelegte {{ interface("mozIStorageBindingParamsArray") }} leer ist.</li> <li>Die Methode <code><a href="/de/mozIStorageConnection#clone%28%29" rel="custom nofollow" title="de/mozIStorageConnection#clone()">mozIStorageConnection.clone()</a></code> wurde hinzugefügt, welche eine bestehende Datenbankverbindung klonen lässt.</li> <li>Die Methode <code><a href="/de/mozIStorageConnection#asyncClose%28%29" rel="custom nofollow" title="de/mozIStorageConnection#asyncClose()">mozIStorageConnection.asyncClose()</a></code> wurde hinzugefügt, welche eine bestehende Datenbankverbindung asynchron klonen lässt. Sie können ein Callback definieren, um hingewiesen zu werden, wenn die Close-Operation fertig ist.</li> <li>Die Methode <code><a href="/de/mozIStorageConnection#setGrowthIncrement%28%29" rel="custom nofollow" title="de/mozIStorageConnection#setGrowthIncrement()">mozIStorageConnection.setGrowthIncrement()</a></code> wurde hinzugefügt, welche Ihnen erlaubt einen Betrag festzulegen, welcher angibt um wie viel eine Datenbankdatei größer werden darf, um Fragmentierungen in SQLite zu reduzieren.</li> <li>Der <code>SQLITE_CONSTRAINT</code> Fehler wird nun als <code>NS_ERROR_STORAGE_CONSTRAINT</code> statt eines <code>NS_ERROR_FAILURE</code> ausgegeben.</li> </ul> <h3 id="XPCOM">XPCOM</h3> <dl> <dt><a href="/de/XPCOM/XPCOM_Änderungen_in_Gecko_2.0" title="de/XPCOM/XPCOM Änderungen in Gecko 2.0">XPCOM Änderungen in Gecko 2.0</a></dt> <dd>Details über Änderungen an XPCOM in Firefox 4.</dd> <dt><a href="/de/Components.utils.getGlobalForObject" title="de/Components.utils.getGlobalForObject">Components.utils.getGlobalForObject()</a></dt> <dd>Diese neue Methode gibt das globale Objekt, mit welchem ein Objekt assoziiert ist, zurück. Das ersetzt ein Verwendungszweck für das jetzt entfernte <code>__parent__</code>.</dd> </dl> <h3 class="editable" id="Places"><span>Places</span><a href="/../../../../en/Firefox_4_for_developers#" style="visibility: hidden;" title="Edit section"><span class="icon"><img alt="Edit section" class="sectionedit" src="../../../../skins/common/icons/icon-trans.gif"></span></a></h3> <ul> <li>Places Query-Ergebnisse können nun von mehreren Observern beobachtet werden und die Queries können asynchron ausgeführt werden. Das bedeutet, dass es einige Änderungen an den Schnittstellen <code><a href="/de/nsINavHistoryResult" rel="custom nofollow" title="de/nsINavHistoryResult">nsINavHistoryResult</a></code>, <code><a href="/de/nsINavHistoryQueryOptions" rel="custom nofollow" title="de/nsINavHistoryQueryOptions">nsINavHistoryQueryOptions</a></code>, und <code><a href="/de/nsINavHistoryContainerResultNode" rel="custom nofollow" title="de/nsINavHistoryContainerResultNode">nsINavHistoryContainerResultNode</a></code> gibt. Außerdem wurde das <code><a href="/de/nsINavHistoryResultViewer" rel="custom nofollow" title="de/nsINavHistoryResultViewer">nsINavHistoryResultViewer</a></code> Interface zu <code><a href="/de/nsINavHistoryResultObserver" rel="custom nofollow" title="de/nsINavHistoryResultObserver">nsINavHistoryResultObserver</a></code> umbenannt.</li> <li>Einige <a href="/de/Observer_Hinweise#Notifications#Places" rel="internal" title="de/Observer Hinweise#Notifications#Places">neue Hinweise</a> wurden hinzugefügt, um dem Browser das Verfolgen des Beenden-Prozesses des Places-Services besser zu ermöglichen. Daher sind die meisten Hinweise nur für den internen Gebrauch gedacht, aber der Hinweis <code>places-connection-closed</code> ist verfügbar, um festzustellen wann der Places-Dienst das Beenden fertiggestellt hat.</li> </ul> <h3 class="editable" id="Interface_.C3.84nderungen"><span>Interface Änderungen</span><a href="/../../../../en/Firefox_4_for_developers#" style="visibility: hidden;" title="Edit section"><span class="icon"><img alt="Edit section" class="sectionedit" src="../../../../skins/common/icons/icon-trans.gif"></span></a></h3> <ul> <li>Die Schnittstellen <code><a href="/de/XPCOM_Interface_Referenz/nsIDocShell" rel="custom nofollow" title="de/XPCOM Interface Referenz/nsIDocShell">nsIDocShell</a></code> und <code><a href="/de/XPCOM_Interface_Referenz/nsIWebBrowser" rel="custom nofollow" title="de/XPCOM Interface Referenz/nsIWebBrowser">nsIWebBrowser</a></code> verfügen nun über das neue Attribut <code>isActive</code>, welches verwendet wird, um Optimierungen an Code-Pfaden, die zur Zeit nicht sichtbar sind, zu ermöglichen.</li> </ul> <h3 id="Memory_Management">Memory Management</h3> <dl> <dt><a href="/de/Fehlerfreie_Speicherzuordnung" title="de/Fehlerfreie Speicherzuordnung">Fehlerfreie Speicherzuordnung</a></dt> <dd>Mozilla stellt nur fehlerfreie Speicherzuordnungen zur Verfügung, die garantiert nicht null zurückgeben. Sie sollten diesen Artikel lesen, um zu lernen wie dies funktioniert und wie man explizit fehlbare oder unfehlbare Speicherzuordnung gestattet.</dd> </dl> <h2 id="Weitere_.C3.84nderungen">Weitere Änderungen</h2> <dl> <dt>Gopher Unterstützung entfernt</dt> <dd>Das Gopher Protokoll wird nicht länger nativ unterstützt. Unterstützung kann über die <a class=" link-https" href="https://addons.mozilla.org/addon/7685/">OverbiteFF</a> Erweiterung erreicht werden.</dd> <dt>Standardplugin entfernt</dt> <dd>Das Standardplugin wurde entfernt. Der Ordner für Anwendungsplugins wurde außerdem entfernt. Unterstützung von Installationen über dieses Verzeichnis existiert aber immer noch. Siehe {{ bug(533891) }}.</dd> <dt>Erweiterungsmananger durch AddonManager ersetzt</dt> <dd><a href="/de/XPCOM_Interface_Referenz/nsIExtensionManager" title="de/XPCOM Interface Referenz/nsIExtensionManager">nsIExtensionManager</a> wurde durch den <a href="/de/Addons/Add-on_Manager/AddonManager" title="de/Addons/Add-on Manager/AddonManager">AddonManager</a> ersetzt. Da es keinen Weg gibt den Installationsort von einer gegebenen Erweiterungs-ID zu bekommen, ist der beste Workaround den Verzeichnisdienst zu verwenden, um das Profilverzeichnis zu finden und dann "extensions" anzuhängen (obwohl dies nicht Erweiterung beachtet, die sich außerhalb des Profilverzeichnisses befinden).</dd> </dl> <h2 id="Siehe_auch">Siehe auch</h2> <ul> <li><a href="/de/Firefox_3.6_für_Entwickler" title="de/Firefox 3.6 für Entwickler">Firefox 3.6 für Entwickler<br> </a></li> <li><a class="internal" href="/de/Firefox_3.5_für_Entwickler" title="de/Firefox 3.5 für Entwickler">Firefox 3.5 für Entwickler</a></li> <li><a class="internal" href="/de/Firefox_3_für_Entwickler" title="de/Firefox 3 für Entwickler">Firefox 3 für Entwickler</a></li> <li><a class="internal" href="/de/Firefox_2_für_Entwickler" title="de/Firefox 2 für Entwickler">Firefox 2 für Entwickler</a></li> <li><a class="internal" href="/de/Firefox_1.5_für_Entwickler" title="de/Firefox 1.5 für Entwickler">Firefox 1.5 für Entwickler</a></li> </ul> <p>{{ languages( { "en": "en/Firefox_4_for_developers", "ja": "ja/Firefox_4_for_developers", "zh-tw": "zh_tw/Firefox_4_for_developers"} ) }}</p></dl>
Zu dieser Version zurücksetzen