Celles et ceux qui sont déjà venu(e)s chez moi savent que j’ai une utilisation de FireFox peu conventionnelle : quasiment 70+ onglets toujours ouverts en permanence et une liste de bookmarks qui rappelerait presque ce que Google indexe quotidiennement.

A chaque fois que je ferme le navigateur, il ferme les 70 onglets. Et les rouvre au démarrage suivant. Et aujourd’hui, au redémarrage : plus aucun onglet, juste la page de démarrage. Bref, mon Firefox s’est planté et a perdu toute ma liste d’onglets ouverts. Et il est impossible de restaurer l’ancienne session.

Suivez le guide, tout n’est pas perdu.

Etape 1 : trouver le fichier sessionstore.bak

Après avoir constaté qu’il n’était pas possible de restaurer les onglets depuis le navigateur, je me suis rendu dans mon répertoire utilisateur de Firefox. Chez moi, sous Ubuntu, cela correspond à /home/USER/.mozilla/firefox/XXXXXXXX.default (où USER est votre nom de session et XXXXXXXX une chaine alphanumérique aléatoire).

Dans ce répertoire, vous trouverez 2 fichiers intéressants pour notre manoeuvre :

  • le fichier sessionstore.js contient la session actuelle donc vidée de ses onglets. Nous en faisons une copie quand même.
  • le fichier sessionstore.bak contient la ou les sessions précédentes, le fichier étant créé après un plantage du navigateur. Il peut contenir plusieurs dizaines de session. Chez moi, il fait 973 Ko, ce qui est plutôt énorme. Nous en faisons une copie également.

Normalement, les deux fichiers sont lisibles avec un éditeur de texte. Evidemment, comme pour nous compliquer la tâche, il s’avère que mon fichier sessionstore.bak est corrompu et totalement illisible.

Il va falloir remonter nos manches.

A lire :  Site preview using different browsers

Etape 2 : lecture du fichier et extraction des URL avec PERL

Nous allons utiliser un script écrit en Perl pour lire et extraire chacune des URLs contenues dans le fichier. Si on peut retrouver toute la liste des URLs, il sera aisé de les relancer dans le navigateur.

Voici le script, écrit par codecrumb :

#!/usr/bin/perl
my @array;

open(FILE,"sessionstore.bak");

for () {
   (@array) = split(/,{/,$_);
}

# extract everything that looks like a url
for $line (@array) {
   my $f;
   
   ($f) = ($line =~ /"url":"([^"]*)"/);

   print "$f \n";
}

Histoire de faire les choses proprement, on :

  1. copie sessionstore.bak sur le bureau
  2. copie le script dans un nouveau fichier sur le bureau, intitulé url.pl
  3. lance la commande suivante dans le terminal :
    perl url.pl 

Le script se lance et va vous sortir toutes les URLs précédemment visitées, sans réel ordre précis. Enormément d’URLs concernent les réseaux sociaux. A chaque fois qu’un appel vers un script Facebook ou Twitter apparaît sur une page, il apparaît également dans le fichier.

Il faudra donc analyser les lignes pour retrouver ce que vous cherchez mais vous récupérerez l’essentiel de vos onglets.

Si vous avez trouvé une faute d’orthographe, veuillez nous en informer en sélectionnant le texte en question et en appuyant sur Ctrl + Entrée .

Articles en rapport:

Matt
Author

Matt est formateur, développeur expert WordPress et WooCommerce, et administrateur réseau chez Codeable.

2 Comments

  1. Avatar

    Bonjour et merci pour cette solution. Est-ce qu’elle fonctionne avec les versions récentes de Firefox? A+

  2. Avatar

    salut et merci pour ces explications!
    je suis à l’étape 2, »copie le script dans un nouveau fichier sur le bureau, intitulé url.pl »
    (je suis nul,je n’y connais rien dans tout ca, je suis tombé sur ton site car j’ai perdu tout mes onglets d’un coup, firefox à redémarrer tout seul sans me les restaurer)
    bref je crois avoir fait tout correctement jusque la, quand tu dis copier le script dans un nouveau fichier, le fichier= je peux prendre le bloc note?
    si oui j’enregistre et ensuite je dois « lancer la commande suivante dans le terminal » : perl url.pl
    c’est quoi le terminal ? bref désolé pour ces questions de débutant. merci

Écrire un commentaire

Rapport de faute d’orthographe

Le texte suivant sera envoyé à nos rédacteurs :