Firefox 3.5 - die Neuerungen im Detail

Mit Firefox 3.5 erfährt Mozillas Browser ein deutlich umfangreicheres Update als zunächst geplant. Neben grundlegenden Veränderungen wie der neuen JavaScript-Engine TraceMonkey halten vor allem neue Webtechnologien Einzug in den Browser. Mozilla stellt dabei vor allem die höhere Geschwindigkeit in den Vordergrund, denn der Zugewinn bei komplexen Webapplikationen ist durchaus spürbar.
Die aus HTML 5 stammenden Neuerungen sind zwar in erster Linie für Entwickler interessant, dürften aber im nächsten Schritt für Nutzer von weitgehender Bedeutung sein. Denn durch Neuerungen wie Offlineressourcen, Web Storage, Web Worker und das Geolocation API wird der Browser immer stärker zu einer Plattform für Applikationen.
Durch die neue Technik laufen Anwendungen wie ein Webmailclient im Browser auch ohne Internetverbindung und es lassen sich Programme realisieren, die Daten ausschließlich lokal verwalten, beispielsweise um die persönlichen Finanzen zu verwalten, ohne die Daten bei Dritten hinterlegen zu müssen. Die schnellere JavaScript-Engine sorgt dafür, dass die Programmlogik mit deutlich höherer Geschwindigkeit ausgeführt wird, wobei Entwickler besonders aufwendige Berechnungen auch gezielt in den Hintergrund verlagern können.
Firefox geht dabei keinen Sonderweg, sondern unterstützt Techniken, die im Rahmen der Entwicklung von HTML 5 entstanden sind und auch in anderen Browsern unterstützt werden. Vor allem die auf WebKit basierenden Browser wie Safari und Chrome sind hier neben Firefox zu nennen.
TraceMonkey sorgt für mehr Geschwindigkeit
Für den Leistungsschub von Firefox 3.5 sorgt vor allem die neue JavaScript-Engine TraceMonkey, ein tracebasierter JIT-Compiler, der JavaScript beschleunigt. Das Konzept der " trace trees(öffnet im neuen Fenster) " wurde von Andreas Gal und Michael Franz an der Universität Kalifornien entwickelt. Der Tracing-Mechanismus(öffnet im neuen Fenster) zeichnet die unterschiedlichen Pfade, die beim Durchlauf einer Schleife auftreten können, während der Laufzeit auf und generiert kompilierten Code, der erneut genutzt werden kann, wenn später ein solcher Pfad wieder erreicht wird.
Auch die native JSON-Unterstützung(öffnet im neuen Fenster) sorgt für mehr Geschwindigkeit. Daten im JSON-Format(öffnet im neuen Fenster) müssen dadurch nicht mehr in JavaScript geparst werden, Firefox bringt dazu nativen Code mit.
JavaScript-Entwickler profitieren vom W3C-definierten Selectors-API(öffnet im neuen Fenster) , das einen schnelleren Zugriff auf DOM-Elemente(öffnet im neuen Fenster) erlaubt. Das Ganze ist wesentlich schneller, als mit einer in JavaScript programmierten Schleife nach entsprechenden Elementen im DOM zu suchen, wie es bisher meist notwendig ist.
Auch das Rendern von Seiten erledigt Firefox 3.5 schneller. Dafür sorgt unter anderem "spekulatives Parsen", das die neue Version der verwendeten Gecko-Engine unterstützt. Zudem unterstützt Firefox 3.5 DNS-Prefetching, das heißt, der Browser kann die DNS-Abfragen für Links in einer Seite schon vorab ausführen. Klickt der Nutzer dann auf einen Link, kann direkt der entsprechende Server angesteuert werden, da dessen IP-Adresse bereits bekannt ist.
Schneller als der Vorgänger, langsamer als Chrome und Safari
In unseren Benchmarks, durchgeführt mit der Preview-Version von Firefox 3.5, zeigte sich der Browser deutlich schneller als sein Vorgänger, konnte aber mit Googles Chrome 2 und Apples Safari 4 nicht ganz mithalten. So erreicht Firefox 3.5 im Vergleich mit Firefox 3.0.11 in Googles V8-Benchmark in der Version 4(öffnet im neuen Fenster) rund 230 mehr Punkte, Peacekeeper(öffnet im neuen Fenster) von Futuremark weist rund 50 Prozent mehr aus und in Domaeo(öffnet im neuen Fenster) schafft der neue rund 70 Prozent mehr Durchläufe als sein Vorgänger. Für den SunSpider 0.9(öffnet im neuen Fenster) benötigt Firefox 3.5 etwas mehr als ein Drittel der Zeit, die Firefox 3.0.11 brauchte.
Chrome 2 und Safari 4 sind allerdings in allen Benchmarks durchweg schneller als Firefox 3.5. Erreicht Mozillas Neuer im V8 auf unserem Testsystem rund 515 Punkte, so kommt Safari 4 auf 3.065 Punkte und Chrome 2 auf 3.641 Punkte. Nicht ganz so deutlich fallen die Unterschiede in den anderen Benchmarks aus: In Peacekeeper erreicht Firefox 3.5 rund 2.400 Punkte, Safari 4 kommt auf 4.435 und Chrome 2 auf 4.070 Punkte. In Dromaeo liegt Safari 4 mit 225 Durchläufen vor Chrome 2 mit 196 Durchläufen, Firefox 3.5 schafft 105. Den SunSpider schafft Chrome 2 mit 455 Millisekunden am schnellsten, Safari 4 benötigt 570 Millisekunden und Firefox 3.5 etwa 800 Millisekunden.
Den Acid-3-Test besteht Firefox 3.5 nicht, erreicht hier aber immerhin 93 Punkte. Erst mit der kommenden Version wollen sich die Mozilla-Entwickler dem Thema widmen.
Audio und Video ohne Plug-ins
Unter dem Schlagwort Open Video trommelt Mozilla für die in Firefox 3.5 vorhandene Unterstützung der Audio- und Videotags aus HTML 5 in Kombination mit den integrierten freien Codecs Ogg Vorbis und Ogg Theora. Damit ist Firefox in der Lage, Audio- und Videodateien im Ogg-Format ohne Plug-ins direkt abzuspielen. Die Steuerung der Wiedergabe erfolgt dabei mittels JavaScript. Wie das Ganze funktioniert, erklärt Mozilla in seinem Entwickler-Wiki(öffnet im neuen Fenster) .
Auch Opera arbeitet an der Unterstützung der entsprechenden Audio- und Videotags in Kombination mit den freien Ogg-Formaten, Apples Safari hingegen setzt auf H.264 als Codec, nutzt aber ebenfalls die in HTML 5 definierten Tags. Mit XiphQT (Xiph QuickTime Components) lassen sich aber auch Ogg-Videos in Safari wiedergeben.
Mit Firefogg(öffnet im neuen Fenster) steht eine Erweiterung für Firefox 3.5 bereit, die Videos beim Upload mit Ogg-Theora codiert. Dabei kommt eine aktuelle Entwicklerversion des Thusnelda-Codecs(öffnet im neuen Fenster) zum Einsatz.
HTML 5 eröffnet neue Möglichkeiten
Neben den Audio- und Videotags beherrscht Firefox noch weitere Neuerungen aus HTML 5, was Webentwickler neue Möglichkeiten gibt und den Browser zu einer ernstzunehmenden Applikationsplattform macht.
So unterstützt Firefox 3.5 Offlineressourcen(öffnet im neuen Fenster) , womit Webapplikationen ein Offlinecache zu Verfügung steht. Objekte können direkt aus dem Cache geladen werden, auch wenn keine Verbindung zum Internet besteht. Ist diese wieder vorhanden, kann der Browser die gespeicherten Objekte aktualisieren.
Darüber hinaus stellt Firefox 3.5 sogenannten Web Storage(öffnet im neuen Fenster) - bei Mozilla als DOM-Storage(öffnet im neuen Fenster) bezeichnet - zur Verfügung, eine lokale Datenbank, in der Applikationen Daten ablegen können. Dabei kommt SQLite zum Einsatz.
Das Canvas-Element unterstützt das Text-API von HTML5(öffnet im neuen Fenster) sowie Schatteneffekte(öffnet im neuen Fenster) .
Web Worker - JavaScript im Hintergrund
Ebenfalls aus HTML 5 stammen die Web Worker(öffnet im neuen Fenster) . Sie bieten Entwicklern die Möglichkeit, JavaScript im Hintergrund auszuführen. Ein solcher Worker kann keine Manipulationen am DOM vornehmen, aber Nachrichten an den aufrufenden Thread schicken, um beispielsweise die Ergebnisse komplexer Berechnungen zurückzuliefern, oder Daten, die von einem Server kommen, weiterzureichen. Für Nutzer hat das klare Vorteile, denn Worker-Threads bremsen das User-Interface nicht aus.
Geolocation API - wenn die Website weiß, wo ich bin
Über das Geolocation API(öffnet im neuen Fenster) , das Firefox 3.5 unterstützt, können Websites Informationen über den Aufenthaltsort des Nutzers abfragen. So lassen sich ortsbezogene Dienste im Browser realisieren, ohne dass der Nutzer seine Position angeben muss. Damit Nutzer darüber nicht ausspioniert werden können, muss der Nutzer jeder einzelnen Website den Zugriff auf seinen Aufenthaltsort explizit genehmigen.
Die Ortsbestimmung erfolgt in der aktuellen Version anhand von WLAN-Access-Points in der Nähe sowie der jeweiligen IP-Adresse. Dabei greift Firefox auf Googles Location Services(öffnet im neuen Fenster) zu, um aus den vorhandenen Daten auf die Position des Nutzers zu schließen und der anfragenden Website die Koordinaten zur Verfügung zu stellen.
Surfen ohne Spuren
Neu in Firefox 3.5 ist auch der Private-Browsing-Modus: Wie bei anderen Browsern kann damit die Speicherung der Surfspuren auf dem eigenen Rechner gezielt unterbunden werden. Es geht dabei nicht um anonymes Surfen, denn auf Seiten des Providers und auf den besuchten Websites hinterlässt der Nutzer weiterhin Spuren. Wird der Modus für privates Surfen aktiviert, erzeugt Firefox temporäre Datenbanken für Cookies und lokalen Speicher, die nach dem Beenden des Private-Modus verworfen werden.
@font-face - mehr Schriften fürs Web
Die Unterstützung von Webfonts(öffnet im neuen Fenster) , die im CSS Fonts Module Level 3 beschrieben sind, bietet vor allem Webdesignern neue Möglichkeiten. Sie können herunterladbare Schriften definieren und in ihren Webseiten verwenden. TrueType- und OpenType-Fonts werden über @font-face(öffnet im neuen Fenster) eingebunden, was auch Safari 3.1, Opera in der kommenden Version 10 und der Internet Explorer seit Version 4.0 unterstützen.
Neue Tabs werden nützlicher
Wird ein neuer, leerer Tab geöffnet, zeigt Firefox 3.5 auf der linken Seite eine Liste der am häufigsten aufgerufenen Einstiegspunkte ins Web. Stellen die entsprechenden Websites RSS-Feeds zur Verfügung, erscheint zudem eine Übersicht der aktuellen Inhalte. Bei Golem.de ist eine Liste der drei zuletzt erschienenen Artikel zu sehen.
Wurde zuvor ein Tab geschlossen, bietet der Browser in der rechten Spalte eines neuen Tabs die Möglichkeit, den zuletzt geschlossenen Tab erneut zu öffnen.
Erweiterte CSS-Unterstützung
Aus CSS 3 stammt die erweiterte Unterstützung von Media-Querys(öffnet im neuen Fenster) . Diese erlauben es, Webseiten gerätespezifisch anzupassen. Je nach den Fähigkeiten eines verwendeten Geräts werden dazu unterschiedliche Style-Sheets verwendet, beispielsweise um auf kleine Displays mit weniger Farben Rücksicht zu nehmen.
Mit Hilfe von CSS-Transforms(öffnet im neuen Fenster) können lineare Transformationen auf HTML-Elemente angewendet werden, um diese beispielsweise zu rotieren oder zu skalieren. Die CSS-Transforms basieren auf einem Vorschlag des WebKit-Teams(öffnet im neuen Fenster) , der mittlerweile als Arbeitsentwurf des W3C ( CSS 2D Transforms Module Level 3(öffnet im neuen Fenster) ) vorliegt. Apple nutzt CSS-Transforms beispielsweise in seinem mobilen Browser Safari, um Animationseffekte hardwarebeschleunigt auszuführen.
Zudem erlaubt es Firefox 3.5, SVG-Effekte auf HTML-Inhalte anzuwenden(öffnet im neuen Fenster) . Dabei wird das Vektorgrafikformat SVG als CSS-Komponente verwendet.
Farbmanagement durch ICC-Profile
Die Version 3.5 erlaubt ein Farbmanagement durch die Unterstützung von ICC-Profilen(öffnet im neuen Fenster) . Die Funktion ist bei 3.5 von Hause aus eingeschaltet. ICC-Profile (International Color Consortium) wurden zwar schon im Firefox 3 unterstützt, doch die Funktion war deaktiviert. Mit ihnen sollen Farben so dargestellt werden, wie sie tatsächlich gemeint waren.
Webapplikationen mit Mausgesten steuern
Mausgesten stellt Firefox 3.5 spezielle DOM-Ereignisse zur Verfügung(öffnet im neuen Fenster) , so dass Webentwickler darauf reagieren können. Dabei werden einfache Gesten wie das Wischen mit dem Finger nach links, rechts, oben und unten ebenso unterstützt wie Gesten zum Vergrößern und Verkleinern sowie Rotieren.
Ajax aus unterschiedlichen Quellen
Innerhalb von Skripten war das Laden von Ressourcen von anderen Quellen als der Domain des Skriptes bislang aus Sicherheitsgründen nur auf Umwegen möglich. In Firefox 3.5 wurden nun die Empfehlungen zu " Access Control for Cross-Site Requests(öffnet im neuen Fenster) " der WHAT WG umgesetzt, so dass Aufrufe über XMLHttpRequest auch über Domaingrenzen möglich sind ( HTTP Access Control(öffnet im neuen Fenster) ), sofern der jeweilige Server dies erlaubt. Wer Ressourcen in dieser Art und Weise nutzen darf, kann in den HTTP-Headern festgelegt werden, wobei sich Firefox 3.5 an diese Vorgaben hält.
Zudem unterstützt Firefox 3.5 die Überwachung von XMLHttpRequest-Datenübertragungen(öffnet im neuen Fenster) und stellt dazu diverse Event-Handler zur Verfügung.
Firefox 3.5 fertig
Mittlerweile steht Firefox 3.5 unter mozilla.com(öffnet im neuen Fenster) zum Download bereit..



