lundi 15 septembre 2008

Firefox 3 : le problème sqlite

upgrade Firefox 3
Au moment où Mozilla me tanne pour que je passe à Firefox 3, je n'ai toujours pas trouvé de solution satisfaisante au problème né du nouveau format de fichier des marque-pages de Firefox 3, en l'occurrence le format sqlite, lequel ne permet pas le fichier unique de marque-pages pour différents profils.

De ce fait, et nonobstant les nombreuses améliorations proposées par Firefox 3, je continue à surfer par défaut sous Firefox 2.

Sous Firefox 2, les marque-pages sont au format html, ce qui permet facilement de n'avoir qu'un fichier unique bookmarks.html quel que soit le profil utilisé. Ceci est extrêmement pratique lorsqu'on utilise plusieurs profils pour des tests ou avec des configs différentes. De plus, cela facilite la sauvegarde automatique éventuelle des marque-pages, puisqu'il n'y a qu'un seul fichier à gérer.

En ce qui me concerne, mon fichier de marque-pages, constitué au fil des ans, contient près de 7000 liens, donc j'y tiens, et pas question d'avoir à le manipuler manuellement à chaque changement de profil.. Et bien sous Firefox 3, c'est pourtant ce que je suis obligé de faire, avec en prime quelques autres complications plutôt désagréables, tout ceci à cause de Places, le système de gestion couplé "historique + marque-pages" introduit dans Firefox 3, et qui fonctionne donc sous format sqlite. Le problème étant que sous ce format il est impossible d'utiliser en local un seul fichier de bookmarks sous différents profils puisqu'on ne peut choisir l'emplacement du fichier places.sqlite sur son disque dur.

Beaucoup d'utilisateurs avancés se sont plaints de cette régression, notamment sur les forums US de mozillaZine, et un rapport de bug [en] a même été ouvert sur Bugzilla. Il suffit de lire la discussion de ce rapport pour s'apercevoir que les MozDevs bottent allègrement en touche, en arguant de l'impossibilité technique de la chose, ce qui me paraît pour le moins surprenant sachant que l'on peut par contre externaliser le fichier en l'hébergeant online via l'extension Foxmarks ou encore (et surtout ?) via Weaves, le projet de données en ligne actuellement développé par Mozilla. La MozFo voudrait nous obliger à lui confier nos marque-pages qu'elle ne s'y prendrait pas autrement ! Inutile de préciser que, comme beaucoup, je me refuse à envoyer sur le Web la globalité de mes liens et de mes empreintes numériques (forums et logins, flux RSS, historique et autres choix persos). Je considère donc ce nouveau format comme une régression rédhibitoire, dès lors qu'il m'empêche d'utiliser rationnellement des profils différents sous Firefox 3, alors que c'est si simple et si pratique sous Firefox 2.

Et que l'on ne vienne pas me dire qu'il est possible d'exporter / importer les bookmarks d'un profil à un autre, car si l'export en html se fait bien (via la préférence "browser.bookmarks.autoExportHTML" [en]), l'import ne se fait qu'à la première utilisation du profil sous Firefox 3, ou alors en ajout du fichier existant (auquel cas : 14.000 liens, bonjour le classement..). Quant à la restauration, elle n'accepte que les fichiers au format json, nouveau format de sauvegarde des marque-pages de Firefox 3, et comme elle n'est pas automatisable, elle oblige à se souvenir du dernier profil utilisé sous Firefox 3 pour restaurer le fichier le plus récent, ce qui n'est ni pratique, ni fiable.

Ce système Places [en], soit disant plus solide aux crashs (bof !) et offrant une meilleure interaction avec l'historique et la fonction de suggestion dans la barre d'Url (re-bof !) avait déjà été testé dans les premières versions alpha de Firefox 2 mais heureusement vite abandonné à l'époque. Cette fois il semble hélas solidement implanté dans Firefox 3. Le mieux est parfois l'ennemi du bien, surtout quand il est pire..

D'autant plus que l'apparition des fichiers sqlite (bookmarks, urlclassifier3.sqlite pour le filtre anti malveillance, etc..) dans les profils Firefox 3 a un autre effet pervers particulièrement agaçant : la lenteur de démarrage de Firefox 3. Là où Firefox 2 (avec mes 7000 marque-pages au format html) démarre sans problème en quelques secondes, Firefox 3, avec les mêmes bookmarks au format squlite met plus d'une minute à démarrer, ce format n'étant semble-t-il pas très aimé de mon antivirus (Kaspersky 7). Très énervant..

De même, et s'il est vrai que Firefox 3 s'est nettement amélioré en terme de gestion de la mémoire par rapport à Firefox 2, il semble que cela se fasse en partie au prix d'un processus de nettoyage (XPCOM cycle collector [en]) qui sollicite très (trop) fréquemment le disque dur ainsi que l'antivirus, lequel, au passage, "gèle" Firefox 3 quelques instants, le temps de vérifier l'opération !

Enfin, dernière goutte d'eau dans le vase de mon agacement, et que j'ai évoquée au début de ce billet : alors que la maintenance de Firefox 2 a été officiellement annoncée comme assurée jusqu'à mi-décembre, Mozilla a activé depuis fin Août le module sollicitant les utilisateurs de Firefox 2 à faire de suite l'upgrade vers Firefox 3. Cette requête quasi comminatoire s'impose-t-elle d'ores et déjà, ou bien est-ce juste pour faire acte de présence au moment où Internet Explorer 8 présente ses nouveautés, ou bien encore pour tenter d'amortir le choc de la sortie concomitante de Google Chrome ?

En tout cas, pour l'instant et jusqu'à ce qu'une solution satisfaisante soit trouvée à la localisation forcée de ce foutu fichier places.sqlite (extension, code user.js ou autre) ainsi qu'au problème de lenteur de démarrage, je reste donc et malheureusement sous Firefox 2 ! Et si la question ne se pose pas pour l'internaute qui migre et découvre Firefox (auquel cas Firefox 3 sera bien entendu choisi), il me semble que parmi les utilisateurs actuels de Firefox 2, je ne suis pas le seul à râler et/ou à faire ce choix qui n'est pas vraiment très glorieux pour Firefox.

A l'heure où IE 8 et Google Chrome montrent clairement leurs ambitions (sans oublier Flock, de plus en plus performant), il serait bon que Mozilla (et notamment avec le futur Firefox Shiretoko) règle ces problèmes et resserre les rangs de ses utilisateurs, plutôt que de risquer de les clairsemer en leur tirant des balles dans le pied..


12 commentaires:

JC a dit…

Pour la sauvegarde des marques-pages, il suffit d'utiliser Mozbackup dans sa dernière version et aucun soucis.

Gabuzo38 a dit…

Bonjour JC,

Le problème ne se pose pas au niveau de la sauvegarde des fichiers de marque-pages, qui est désormais correctement automatisée par Firefox lui-même, au format html sous Firefox 2 ou json sous Firefox 3, et ceci pour (et dans) chaque profil utilisé.

Le problème c'est l'impossibilité d'assigner une adresse externe fixe à un unique fichier places.sqlite pour tout profil Firefox 3, alors que cette manip est très simple à réaliser sous Firefox 2 (via le fichier user.js de chaque profil concerné). Quand je parle d'adresse externe fixe, il s'agit d'une adresse en local, mais en dehors du profil concerné, et sous Windows.

Pour Mozbackup, je ne l'utilise pas, mais par contre, via UltraBackup ou Cobian Backup, je fais une sauvegarde automatique quotidienne sur DD externe de tous mes fichiers et dossiers importants, parmi lesquels figure bien sûr mon fichier de marque-pages Firefox 2 ;)

Trent a dit…

Tu ne peux pas faire un lien symbolique avec Jonction ou un autre programme de ce genre ? Ainsi, tout tes places.sqlite pourront être au même endroit non ? :)

Voir Créer un lien symbolique sous Windows sur Zebulon.fr.

Gabuzo38 a dit…

Oui, effectivement, je pourrais, à condition de tourner sous Linux ou Vista, ce qui n'est pas le cas. Je pourrais aussi faire du "copier/coller" du fichier places.sqlite d'un profil à l'autre, soit manuellement, soit via une application. Mais il s'agit de manips externes, et j'attends mieux de Firefox que la nécéssité de ces bidouillages de geek. Je pense - et j'espère - qu'une extension dédiée viendra prochainement pallier au laxisme des MozDevs sur ce point.

Jean-François Noël a dit…

Voilà l'article qui confirme clairement ce que je cherchais à savoir depuis des mois. Donc l'utilisation d'un seul fichier bookmarks en local pour 2 profils Firefox est actuellement impossible sous Firefox 3. Quelle régression importante! Moi qui utilisait 2 profils (surtout pour les settings de la connexion réseau au bureau) de façon tout à fait fluide, voilà que lorsque je sauve un bookmark au travail, il n'apparaît pas dans mes bookmark à la maison...vraiment poche...

Gabuzo38 a dit…

Bonjour Jean-François,

Oui, ce problème de marque-pages sous Firefox 3 est bien enquiquinant, et n'a toujours pas, à ma connaissance, de solution automatique satisfaisante à ce jour.
Ceci étant, si tu n'as que 2 profils, tu peux faire un import manuel d'un profil à l'autre à chaque début de session : Menu "Marque-pages" => "Organiser" => "Importation et sauvegarde" => "Restaurer" => "Choisir un fichier", et aller chercher le dernier fichier .json dans le répertoire "bookmarkbackups" du dernier profil utilisé, puisque à chaque fermeture de Firefox 3, un fichier de sauvegarde " bookmarks-aaaa-mm-jj.json "est créé automatiquement.

PS : les photos sur ton blog sont superbes !

Jean-François Noël a dit…

Bonjour gabuzo,

Merci pour le conseil. Actuellement, la solution la plus simple que j'ai trouvée (qui ne m'oblige pas à réimporter à chaque fois mes bookmarks) est d'utiliser Foxmarks et d'automatiser le tout à la fermeture du browser.

En passant, est-ce le même problème pour les extensions? Ou peut-on utiliser le même dossier pour 2 profils et ainsi avoir les mêmes extensions?

Enfin, merci pour mon blog! Je suis le tien assez assidument!

Gabuzo38 a dit…

Oui, pour une synchronisation externalisée, Foxmarks est une des solutions disponibles. Mais moi ce qui m'intéresse, c'est une solution en local, car j'ai une confiance limitée quant à la sécurité des données en ligne..

Pour les extensions, le principe est que chaque profil peut et doit avoir les siennes. Mais il est effectivement possible d'installer globalement une extension pour tous les profils, qui sera alors activée quel que soit le profil utilisé (y compris les nouveaux profils).
Sinon, avec FEBE, il est très facile de sauvegarder les extensions d'un profil (en un ou plusieurs fichiers xpi) et de pouvoir ainsi les réinstaller rapidement (et donc en tout ou partie) dans un autre profil.

Anonyme a dit…

Bjr,

Merci pour ces infos que je cherchais... et le problème n'est toujours pas réglé avec la version 3.6...

C'est un vrai calvaire de faire le tri dans les marques pages. De plus, AM-Deadlink est toujours incapable de modifier la base *.sqilte, donc pas de tri possible sur les liens morts...

Pas cool...

Anonyme a dit…

À force de chercher, j'ai fini par trouver une procédure longue, mais qui fonctionne :
- activer la procédure d'export dans "bookmarkrs.html",
- faire une copie du fichier,
- travailler avec AM-DeadLink pour supprimer les liens morts et rectifier les URL sur ce fichier,
- réimporter "bookmarrs.html" par la gestion des marques pages,
- supprimer tous les anciens marque-pages (facile, si on a pris la peine de les mettres dans un dossier racine)...
Pas très simple, mais la base des marques pages "sqlite" est à nouveau propre...

Gabuzo38 a dit…

Bonjour "Anonyme"

Oui, nous en sommes à la version 3.6 et effectivement le problème (unique fichier marque-pages en local pour plusieurs profils) reste entier, même si, avec FEBE, il est possible d'automatiser une synchronisation locale entre plusieurs profils. Et je pense que, pour les raisons évoquées dans mon billet, il ne sera jamais résolu, du moins par les Moz'Devs.

Par contre, pour vérifier et nettoyer les marque-pages au format sqlite, il existe une extension qui fait ça très bien : CheckPlaces. Marque-pages invalides ou doublons sont décelés, et peuvent être supprimés directement via l'interface de l'extension. Bien pratique quand le fichier contient plusieurs milliers de liens !

Anonyme a dit…

Génial ! Merci Gabuzo... CheckPlaces est l'outil que je cherchais. Il est perfectible, mais c'est déjà très bien.