Journal Firefox multi-instance redox

Posté par  .
Étiquettes :
14
26
fév.
2010

J'utilise déjà pas mal le fait que Firefox puisse tourner en même temps sur plusieurs instances. Ceci me permet non seulement de réaliser des tests d'applications avec plusieurs utilisateurs mais également d'avoir une instance avec mes outils de développeur et l'autre plus soft, qui sert pour la navigation normale (ça peut servir aussi à quelqu'un qui aurait deux comptes Gmail par exemple).



Pour lancer une instance Firefox et pouvoir choisir le profil la commande est :



firefox -ProfileManager -no-remote


Ce qui me permet de choisir le profil MmeMichu.



Je peux ouvrir une instance en spécifiant le profil Tartempion directement sur la ligne de commande :



firefox -P tartempion -no-remote


Le -no-remote permet de spécifier à Firefox de ne pas fusionner avec une instance éventuellement lancée.



À noter que à tout moment si j'utilise la commande Firefox la première instance ouverte est utilisée. Ainsi dans notre scénario,

firefox http://linuxfr.org


ouvre la page linuxfr avec le profil MmeMichu.



Problème comment faire pour ouvrir une url dans le profil Tartempion qui est déjà lancée (par exemple quand je clique sur une url dans Thunderbird) ?

firefox -P tartempion http://linuxfr.org


ne fonctionne malheureusement pas ; L'url est ouverte avec le profil MmeMichu.



La solution je l'ai trouvé aujourd'hui : une super commande qui n'est pas citée par --help : la commande -remote, qui permet d'executer une commande sur une instance déjà lancée. Ainsi dans notre cas pour ouvrir l'url dans l'instance Tartempion, je peux faire :



firefox -P tartempion  -remote 'openURL(http://linuxfr.org)'


Pour plus d'info voir https://developer.mozilla.org/en/Command_Line_Options et http://www.mozilla.org/unix/remote.html

  • # disparu

    Posté par  . Évalué à 3.

    Sous windows, firefox plaçait pendant plusieurs années une entrée "profile manager" dans le menu démarrer (hélas disparue aujourd'hui).
    Et avec la suite mozilla, c'était accessible depuis un des menus de l'application.
  • # précision inutile

    Posté par  (site web personnel, Mastodon) . Évalué à 5.

    firefox -ProfileManager -no-remote
    À noter que la casse est cosmétique.
  • # HOME

    Posté par  . Évalué à 2.

    J'avais tenté de le faire en settant des $HOME différents, sauf que ça marche pas entre à cause de glib et gconf :
    - glib n'utilise pas $HOME, il lit le home directement dans /etc/passwd !!! Tout ça pour un raison foireuse : le cas où $HOME pointe sur un répertoire qui n'existe pas.
    - gconf, lui c'est la bibliothèque qui lance un démon dans le dos de l'appli. Mais c'est un démon par uid.

    Bref on avait avant un mécanisme simple pour avoir plusieurs profils sur la plupart des applis, mais vu la complexification de certain framework, c'est plus possible.

    C'était mieux à vent ;)
    • [^] # Re: HOME

      Posté par  (site web personnel) . Évalué à 3.

      Je suis pas certain que glib lise directement /etc/passwd, sinon ça marcherait pas avec du LDAP, par exemple.
      Je supposes que glib s'appuie sur NSS http://en.wikipedia.org/wiki/Name_Service_Switch

      "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

    • [^] # Re: HOME

      Posté par  (Mastodon) . Évalué à 2.

      Ca marche avec plusieurs utilisateurs.
      L'idée c'est de créer deux (ou plus) utilisateurs avec le même uid linux, les fichiers de l'un sont à l'autre et tout, et hop, tu peux avoir FF lancé avec l'un ou l'autre, profils complètement différents, $HOME différentes, tout différent.

      Après pour lancer FF depuis un autre utilisateur, faut faire du sudo/su genre :
      sudo su - dev -c firefox
      Depuis mon compte yth.

      Ca n'a pas l'air complètement simple certes, mais en pratique c'est utile de façon plus générale pour une autre raison : ma femme et moi utilisons les mêmes machines, mais avec des environnements différents.
      Et rapidement j'ai trouvé bien plus simple de nous filer le même uid, plutôt que de me faire chier à gérer des permissions de groupe, et à être régulièrement emmerdé parce qu'on veut accéder depuis son compte à un fichier qui existe sur le mien et qu'il dit « t'as pas les droits dégage ! ».
      « Chuis root j'fais c'que j'veux ! », mais ça il le sait pas si je lui dis pas à chaque fois...

      Bref, le profil c'est tout de même plus élégant, mais limité à FF, cela dit ça fait longtemps que j'utilise aussi deux instances de FF distinctes pour des utilisations différentes, et que c'est très très pratique !


      Yth, ma vie mon oeuvre...
      • [^] # Re: HOME

        Posté par  . Évalué à 2.

        L'idée c'est de créer deux (ou plus) utilisateurs avec le même uid linux, les fichiers de l'un sont à l'autre et tout, et hop, tu peux avoir FF lancé avec l'un ou l'autre, profils complètement différents, $HOME différentes, tout différent.

        Je suis pas sur que çà marche partout : par exemple glib après avoir utilisé le logname pour trouver le home, utilise l'uid en cas d'échec. Donc on exclu en rien les applis vicieuses...

        Et puis quitte à avoir des utilisateurs différents, je m'en fout un peu d'avoir le même uid ou pas. Je peux utiliser les groupes ou acl pour partager les fichiers.
        • [^] # Re: HOME

          Posté par  (Mastodon) . Évalué à 2.

          Bah, c'plus facile de s'assurer que le home existe une bonne fois pour toute, que de vérifier les permissions de groupe de tout ses fichiers régulièrement, ou de changer celui dont on a justement besoin là tout de suite, à chaque fois...
          Mais il n'y a pas besoin d'y avoir le même uid, non, c'est juste qu'avec le même uid, tu peux utiliser certains répertoires en commun aussi, de façon transparente.

          Bref, un utilisateur réel, deux utilisateurs logique, mais un seul uid...

          Yth, pourquoi pas, non ?
  • # Une extension qui aide à cela.

    Posté par  . Évalué à 1.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.