Mozilla Firefox 3.7 Alpha 3

2 semaines après la sortie de l'alpha 2, Mozilla nous offre une nouvelle "Developer Preview", une alpha 3 numérotée 3.7 comme ses prédécesseurs. Au programme, amélioration de performances, implémentation de Direct2D/DirectWrite (désactivé par défaut) et une stabilisation de la gestion multi-processus pour les plug-ins.

Voici d'ailleurs en résumé, toutes les nouveautés :

New Features and Changes

Gecko 1.9.3 alpha introduces new features which can be tested by using this Mozilla Developer Preview. Many of these features are still in development, and while they will likely appear in some future version of Mozilla Firefox, some may be in earlier releases than others.

Alpha 3: 17-March-2010
PerformanceAn experimental Direct2D rendering backend on Windows is available, turned off by default. For information and instructions on enabling this experimental feature, see Bas Shouten's post.
JavaScriptSignificant API improvements are available for JS-ctypes, a foreign function interface for extensions. ctypes.jsm now supports complex types including structures, pointers, and arrays. See Dan Witte's post for more information.
StabilityMozilla now uses an infallible allocator: if a request for memory cannot be fulfilled, the allocator aborts. This allows for simplification of the Mozilla code, as well as preventing a class of security errors with unchecked null pointers. See bug 441324 for details.
PluginsAdditional fixes for multi-process plugins:

 

  • crash and hang fixes;
  • the Foxit Reader and Octoshape plugins work correctly;
  • Performance improvements in the delivery of network streams.

We are interested in feedback on any bugs or missing capabilities in these new features. Some of the changes will affect web and platform compatibility. For detailed information about compatibility changes in Gecko 1.9.3, please read Upcoming Firefox features for developers.

Consulter les notes de version de Mozilla Firefox 3.7 Alpha 3

Télécharger Mozilla Firefox 3.7 Alpha 3 pour Windows 2000 et +
Télécharger Mozilla Firefox 3.7 Alpha 3 pour MacOS X 10.5 et +
Télécharger Mozilla Firefox 3.7 Alpha 3 pour Unix/Linux

Mozilla Firefox 3.7 Alpha 2

Et voici une nouvelle version alpha de la prochaine version de Firefox. On ne sait toujours pas laquelle, mais elle est pour l'instant numérotée 3.7 et libellée "Developper Preview". Sur cette alpha, les développeurs du navigateur ont réalisé quelques avancées dans le domaine de la gestion multi-processus des plugins, ainsi que dans le domaine du HTML5/CSS/DOM/WebGL et Javascript.

Voici d'ailleurs en résumé, toutes les nouveautés :

New Features and Changes

Gecko 1.9.3 Alpha 2 introduces new features which can be tested by using this Mozilla Developer Preview. Many of these features are still in development, and while they will likely appear in some future version of Mozilla Firefox, some may be in earlier releases than others.

PluginsOn Windows and Linux, plugins (such as Flash and Silverlight) are now isolated from Firefox. Plugin crashes will not kill Firefox itself, and unresponsive plugins are automatically restarted.
SecurityThe SSL security system has been changed to fix a renegotiation flaw. For technical details, see the newsgroup posting announcing the change.
PerformanceLink history lookup is now performed asynchronously on a thread. This results in less I/O during page load and improves overall browser responsiveness.
PerformanceLoading the HTML5 specification no longer causes very long browser pauses. See bug 526394 for details.
JavaScriptThe JavaScript engine has many improvements: string handling is improved, faster closures, and some support for fast tracing and JIT of recursive functions.
PerformanceStrings are not copied between the main DOM code and web workers, improving performance for threaded JavaScript which moves large pieces of data between threads.
HTMLThe placeholder attribute for <input> and <textarea> is now supported.
User InterfaceThe stop and reload buttons have been merged when they are adjacent on the toolbar. See bug 343396 for details.
SVGSupport for SMIL Animation in SVG. Support for animating some SVG attributes is still under development and the animateMotion element isn't supported yet.
StabilityCrash reports from plugin processes are now submitted automatically. Crash report submission can be disabled in Firefox preferences (Advanced / General / Submit crash reports).
PerformanceRepainting HTML in SVG <foreignObject> is faster. See bug 541188 for details.
CSSSupport for CSS Transitions. This support is not quite complete: support for animation of transforms and gradients has not yet been implemented.
WebGLSupport for WebGL, which is disabled by default but can be enabled by changing a preference. See this blog post and this blog post for more details.
DOMSupport for the getClientRects and getBoundingClientRect methods on Range objects. See bug 396392 for details.
DOMSupport for the setCapture and releaseCapture methods on DOM elements. See bug 503943 for details.
HTMLSupport for the HTML5 History.pushState() and History.replaceState() methods and the popstate event. See bug 500328 for details.
CSSSupport for the -moz-image-rect() value for background-image. See bug 113577 for more details.

We are interested in feedback on any bugs or missing capabilities in these new features. Some of the changes will affect web and platform compatibility. For detailed information about compatibility changes in Gecko 1.9.3, please read Upcoming Firefox features for developers.

Consulter les notes de version de Mozilla Firefox 3.7 Alpha 2

Télécharger Mozilla Firefox 3.7 Alpha 2 pour Windows 2000 et +
Télécharger Mozilla Firefox 3.7 Alpha 2 pour MacOS X 10.5 et +
Télécharger Mozilla Firefox 3.7 Alpha 2 pour Unix/Linux

La prochaine alpha de cette "version 3.7" sera verra implémentée des premières fonctions Direct2D/DirectWrite. En effet, cette fonction qui utilise la carte graphique pour le rendu des page web est déjà intégrée aux nightlies de Minefield 3.7a3pre en mettant la valeur gfx.font_rendering.directwrite.enabled sur true.

Télécharger la dernière nightly de Minefield 3.7a3pre pour Windows, MacOS X et Linux

Electrolysis : Un processus par onglet pour Mozilla Firefox 3.7

Maintenant que Firefox 3.6 est en cours de stabilisation (avec une 5ème bêta prévue dans quelques jours), la branche 3.7 a reçu une grosse mise à jour de fichiers afin d'y implémenter des fonctions de séparation des processus, cette nouveauté permet aux développeurs de Mozilla de s'aligner sur leurs concurrents Microsoft et Google car il ne s'agit ni plus ni moins que des fonction "Out-Of-Process-Plugins" et "Electrolysis".

L'actuelle implémentation d'Electrolysis sur les nightlies d'aujourd'hui ne permettent pas encore d'avoir un processus par onglet car non stabilisé, mais, on peut déjà tester la séparation des plugins qui, elle, est totalement fonctionnelle.

La marche à suivre est simple, mais attention ! Il est préférable de tester ceci dans un profil différent (tuto ici) de celui de votre version actuelle :

  1. Ouvrez Firefox 3.7 (ou Minefield)
  2. Tapez about:config dans la barre d'adresse
  3. Dans le champ de filtrage, tapez "ipc", il ne restera alors que deux résultats
  4. Pour activer la séparation du processus des plugins, il faut mettre la valeur "true" à la pref dom.ipc.plugins.enabled (à peu près stable)
  5. Pour activer la fonction "Un processus par onglet", il faut mettre la valeur "true" à la pref dom.ipc.tabs.enabled (très instable)
  6. Redémarrez Minefield

Ainsi, en allant par exemple sur Youtube, le plugin Flash Player s'exécutera dans le processus mozilla-runtime.exe que vous pourrez voir dans le gestionnaire des tâches dans l'onglet Processus.

Si par hasard vous aviez eu envie de tester le processus-par-onglet et que finalement Firefox ne démarre plus, il est possible de remettre la valeur false à dom.ipc.tabs.enabled en éditant le fichier pref.js situé dans le dossier du profil que vous avez créé (ou pas) à l'emplacement C:\Utilisateurs\<nom d'utilisateur>\AppData\Roaming\Mozilla\Firefox\Profiles\<nom aléatoire du profil>\ (sur Vista/7) ou C:\Documents and Settings\<nom d'utilisateur>\Application Data\Mozilla\Firefox\Profiles\<nom aléatoire du profil>\ (pour 2000 et XP), ou encore /home/<nom d'utilisateur>/.mozilla/Firefox/<nom aléatoire du profil>/ (pour Unix/Linux) et ~/Library/Application Support/Firefox/<nom aléatoire du profil>/ (Pour MacOS X) en supprimant la ligne qui contient la préférence incriminée.

Naturellement, tout ceci reste à être stabilisé, vous remarquerez une bonne augmentation de l'utilisation de la RAM par Firefox, mais cela reviendra à la normale au fur et à mesure du développement.

Télécharger Mozilla Firefox 3.7a1pre (Minefield) incluant Electrolysis pour Linux 32 bits, Linux 64 bits, MacOS X et Windows (ces liens pointeront uniquement vers la build du 15 décembre 2009 !)

Pour suivre l'évolution, un tour sur la page des navigateurs ou la fonction de mise à jour auto. de Minefield.

Internet Explorer 9 carburera bientôt au Direct2D ? Firefox aussi !

Lors du sommet du PDC'09, Microsoft avait annoncé quelques nouveautés majeures pour la nouvelle version 9 d'Internet Explorer. L'une de ces nouveautés était le remplacement de la vieillissante GDI+ par une API plus récente, celle de DirectX 11, j'ai nommé Direct2D.

Contrairement à GDI+ qui exploite le processeur pour l'affichage des pages web, Direct2D utilise la carte graphique. Et le résultat est là, les performances graphiques sont en hausse notamment sur des sites graphiquement lourds tels que les sites de cartographique de Google, Yahoo ou Bing.

Mais chez Mozilla, on ne chôme pas ! En effet un ingénieur, Bas Shouten, a proposé le 10 novembre (et donc bien avant l'annonce de Microsoft) via la rédaction d'un bug sur Bugzilla (bug n°527707) la possible implémentation de fonctions Direct2D dans l'API d'affichage de pages web de Mozilla, Cairo. Et pour démontrer qu'il est réellement possible d'implémenter ces fonctions dans Firefox, il a compilé le résultat dans une pré-alpha de Firefox 3.7 qu'il est possible de tester en téléchargeant le fichier firefox-3.7a1pre.en-US.win32.d2d.zip.

Après quelques tests, il a rassemblé tous les résultats sous forme de graphique :

Les résultats montre ainsi qu'il est bel et bien possible un jour d'avoir un navigateur non-Microsoft boosté par la carte graphique afin d'avoir des performances accrues en matière d'affichage.

Si vous aussi vous voulez tester cette build Direct2D, n'oubliez pas de votre créer un profil de test car bien que l'implémentation fonctionne, elle reste tout du moins instable car basé sur un navigateur instable. Pour ce faire voici la marche à suivre :

  1. Télécharger la build du 20 Décembre 2009 de Firefox 3.7a1pre D2D
  2. Décompressez-la dans un dossier
  3. Dans l'invit "Exécuter" de Windows, tapez "firefox -p" pour ouvrir le gestionnaire de profils de Firefox.
  4. Créer un nouveau profil (par ex. "Test")
  5. Rendez-vous dans le dossier de Firefox D2D, et créez un raccourci de firefox.exe, faites un clic droit puis Propriétés.
  6. Dans le champ "Cible :" de l'onglet Raccourci, ajoutez après firefox.exe ' -no-remote -p "Test" ' pour que le résultat donne par exemple : "D:\Mozilla Firefox\Minefield 3.7 D2D\firefox.exe" -no-remote -p "Test"
  7. Validez et exécutez Firefox D2D en parallèle de votre installation principale de Firefox.
  8. Testez le navigateur D2D avec Google Maps, Bing Maps ou Yahoo Maps ou encore photos.svg ou d'autres sites pour constater les différences de performances entre les deux versions de Firefox

Attention, il ne faut pas oublier que cette build D2D ne fonctionnera pas sur Windows XP ! Il vous faudra impérativement Windows 7 ou Windows Vista SP2 avec les dernières mises à jour installés !

Naturellement, beaucoup de travail reste à faire et dans tout cela, il faut que les développeurs se concertent pour décider de l'implémentation finale de cette fonction dans une version ultérieure de Firefox.

NB : La fonction -no-remote de Firefox permet d'exécuter plusieurs instances différence de Firefox. Par exemple pour exécuter Firefox 3.5.5 et la 3.6 bêta 3 en même temps. Mais avant tout, il est nécessaire de créer deux profils bien distincts pour chaque version de Firefox.

Et le projet Firefox 3.7 est né !

Depuis que Firefox 3.5 est sorti, la fondation Mozilla s'attarde maintenant sur la version 3.6 (nom de code Namoroka) dont la 1ère alpha est sortie il y a quelques jours. Cette version 3.6 s'occupera d'améliorer les performances du navigateur notamment au niveau du démarrage du navigateur ainsi qu'au niveau du moteur Javascript Tracemonkey.

Cependant, Firefox 3.6 ayant un développement bien plus court que son ancêtre 3.5 (la sortie est prévue fin Octobre 2009), les développeurs ont (aujourd'hui) séparé en deux le code de la Unstable pour créer la Testing (version 3.6) et la Unstable (version 3.7).

Firefox 3.7 qui lui s'attardera sur une nouvelle interface utilisateur bénéficiera également de quelques améliorations niveau vitesse d'exécution et est prévu au lancement pour le 1er trimestre 2010 (aux alentours de fin Janvier). Ainsi ce sont des projets bien définis pour préparer l'arrivée de la version 4.0, qui lui sera une réécriture complète du navigateur.

Les 1ères nightlies de Firefox 3.7 seront normalement disponibles demain en anglais aux alentours de 15h pour les versions Mac et Linux et 16-17h pour la version Windows dans ce dossier et dans toutes les autres langues plus tard dans la soirée dans celui-ci.

Attention ! Ce sont des versions instables, elles peuvent être inutilisable de temps en temps et peuvent casser votre profil. Créez en un nouveau à l'aide de la commande "firefox -p" sous Windows ( "firefox -Profilemanager" sous Linux et Mac)