Journal Recupérer la liste des onglets ouverts sur Firefox

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes : aucune
13
6
mar.
2025

Un petit journal, à la fois pour garder trace d'une astuce parfois utile, mais aussi pour «appel à commentaires», dès fois qu'on puisse me propose plus élégant.
Note : ce que je propose ci-dessous a été testé sur un unique PC, Linux Fedora, KDE, Firefox 135.0.1

Mon besoin : en ligne de commande, récupérer la liste des onglets ouverts dans Firefox. Idéalement, avec URL et titre.

Comment procéder ?

A priori, cette liste est stockée dans le fichier recovery.jsonlz4
Chez moi, il se trouve dans :
./.mozilla/firefox/quelques-lettres-minusciles.default-release/sessionstore-backups/recovery.jsonlz4

Ah… Apparemment, lz4, on peut s'amuser à le customiser, histoire de ne pas avoir un outil générique pour décompresser tous les fichiers lz4.
Soit… Pour le lz4 de Firefox, on peut récupèrer par exemple dejsonlz4 sur https://github.com/avih/dejsonlz4 , une ligne de commande pour compiler, une exécution (./dejsonlz4 recovery.jsonlz4 recovery.json), et on se retrouve avec un beau recovery.json qui, comme son nom l'indique, contient… du JSON.

Cool, il ne reste plus qu'à utiliser jq :-)
C'est un peu empirique, et si quelqu'un à les spec de ce json que j'ai eu la flemme de chercher, je suis preneur, j'aimerais bien comprendre qu'est ce que c'est que toutes ces données stockées…

En attendant, récupérons la liste attendue :

jq -r '.windows[].tabs[] | [.entries[.index-1].url , .entries[.index-1].title] | @csv '
recovery.json

Et voilà, une belle liste s'affiche dans notre terminal :-)

  • # API dans le cloud

    Posté par  . Évalué à 5 (+3/-0). Dernière modification le 06 mars 2025 à 08:44.

    Tu as essayé ça ?

    curl https://analytics.cloud.firefox.net/rest/users/xate/tabs
    

    Pour ceux d'hier :

    curl https://analytics.cloud.firefox.net/rest/users/xate/tabs?date=yesterday
    

    Tant que tu ne regardes pas du porno (ou, qu'au moins, l'URL et le titre de la page ne parlent que de visite de plombier), c'est bon.

    … bon je déconne. Merci pour le partage. Je suppose que c'est le moyen le plus direct, mais peut-être pas garanti dans le temps. Peut-être qu'une extension serait nécessaire pour ça.

    Intéressant cette subtilité sur lz4.

  • # Remote Debugger Protocol

    Posté par  . Évalué à 2 (+1/-0).

    D'après ce que j'ai lu1, il doit être possible de lister les onglets sur un Firefox ouvert avec le debug distant.

    Je suis allé dans about:config pour modifier ces 3 paramètres :

    devtools.chrome.enabled = true
    devtools.debugger.remote-enabled = true
    devtools.debugger.prompt-connection = false
    

    J'ai arrêté Firefox pour le relancer en passant l'option --start-debugger-server 9222.

    Firefox s'affiche avec une barre d'adresse au fond rouge pour indiquer que le debug distant est actif.

    Je tente de me connecter avec telnet localhost 9222, ça finit sur un timeout.

    Je me serait attendu à pouvoir passer des commandes2, en particulier 31:{"to":"root","type":"listTabs"} qui permettrait d'avoir les onglets comme demandé.

    Bref, je ne dirais pas que c'est un échec.


    1. https://embracethered.com/blog/posts/2020/cookies-on-firefox/  

    2. Commandes commençant par le nombre de caractères suivi de deux-points puis la charge utile en json. Voir le lien 1 pour des exemples et https://firefox-source-docs.mozilla.org/remote/cdp/ pour la référence. 

  • # jq + less = jless

    Posté par  . Évalué à 3 (+1/-0).

    jless permet de maviguer dans un document JSON. yp permet de copier le chemin courant pour le réutiliser dans jq.

  • # lz4 et firefox

    Posté par  (site web personnel) . Évalué à 6 (+3/-0).

    Ah… Apparemment, lz4, on peut s'amuser à le customiser, histoire de ne pas avoir un outil générique pour décompresser tous les fichiers lz4.

    En fait, c'est simplement que l'usage de lz4 par Firefox est antérieur à la création d'un format de fichier:

    https://bugzilla.mozilla.org/show_bug.cgi?id=1209390#c10

    Sans surprise, il y a plus d’énergie dans la communauté pour râler sur les réseaux sociaux que pour proposer des patchs (même si je suppose que la question de la migration doit rendre ça plus complexe que ça a en a l'air)

  • # restore pinned tabs (onglets épinglés)

    Posté par  . Évalué à 3 (+1/-0).

    je viens de perdre tous les onglets épinglés, suite à l'ouverture d'une (ou plusieurs) fenetre de navigation privée et sans les refermer, avant de clore la fenêtre principale.

    Voici comment réouvrir les onglets épinglés, et j'en ai de très nombreux ; la méthode du raccourci clavier est excellente pour satisfaire ce besoin (vu dans les commentaires) : Ctrl+Shift+N.

  • # Avec l'extension Simple Tab Groups

    Posté par  (site web personnel, Mastodon) . Évalué à 1 (+1/-0).

    J'utilise l'extension Simple Tab Groups qui me fait des sauvegardes tous les jours en json dans un répertoire.

    Je peux récupérer mes onglets en cas de crash mais ca peut aussi répondre à ton besoin (voire regarder le code du plugin pour voir comment il s'y prend ?).

    Y.

Envoyer un commentaire

Suivre le flux des commentaires

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