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.
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";
}
Code language: PHP (php)
Histoire de faire les choses proprement, on :
copie sessionstore.bak
sur le bureau
copie le script dans un nouveau fichier sur le bureau, intitulé url.pl
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.
Recherchez-vous un expert WordPress ou WooCommerce sur qui vous pouvez compter? Ne cherchez plus.
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
Bonjour et merci pour cette solution. Est-ce qu’elle fonctionne avec les versions récentes de Firefox? A+