Archives For Session Store

Di strada da quell’articolo del 2011 se n’è fatta tanta, e anche Mozilla ha modificato il comportamento del suo Session Restore integrato nel browser. In realtà le cose sono state modificate nel 2014, ma non ho mai avuto la reale necessità di cambiare il comportamento di SessionStoreBackup, almeno fino a oggi.

Firefox: disabilitare scansione antivirus nel download manager integrato

Perché proprio oggi?

Perché se anche tu utilizzi le versioni non stabili del browser Mozilla (le Nightly), ti sarai già accorto che di tanto in tanto qualcosa di spiacevole può accadere. Tutto risolvibile, sia chiaro, ma bisogna stare accorti, sempre pronti sul pezzo e con le dovute armi a propria disposizione per evitare di perdere dati che ci servono, ai quali teniamo particolarmente, come (nel mio caso) le tab aperte di sessione in sessione. Io utilizzo –da sempre– l’opzione che riapre ciò che ho lasciato aperto l’ultima volta che ho utilizzato il browser, delegando così un compito importante al file sessionstore.js, solitamente presente nella cartella del profilo (ormai dovresti saperlo), ma che può corrompersi ed essere sovrascritto, facendoti perdere così la tua sessione di navigazione salvata.

Per ovviare al problema, il mio SessionStoreBackup ha sempre lavorato portando a casa il risultato, ma l’ho modificato per tenere al sicuro il file di recovery previsto da Mozilla (recovery.js), così da evitare di incorrere in possibili rogne. Dato che l’ho riaperto, ho guardato sotto al cofano e deciso di cambiare metodo, di non salvarne più copie, ma di tenerne sempre una, quella più aggiornata, confrontandola di volta in volta con quella che vive nella cartella del profilo di Firefox, quella vera, quella creata dal browser (e non clonata da me).

Questo è il “nuovo” script (il solito in realtà, ma un po’ rivisto):

Rimane invariato il modo di dichiarare il nome della cartella del tuo profilo (devi sostituire TUOPROFILO.default in riga 5 con ciò che trovi accedendo a about:support, quindi facendo clic sul pulsante Apri cartella vicino la voce Cartella del profilo). Da quella riga in poi, non c’è più bisogno di toccare alcunché, il piccolo batch farà tutto il resto. Ricorda poi che il software può essere lanciato manualmente con il classico doppio clic o (decisamente consigliato) programmato tramite le operazioni pianificate di Windows, così da “potertene dimenticare“.

Fallo girare ogni ora circa, così da tenere sempre aggiornato il tuo recovery.js, tornerà parecchio utile quando le tue sessioni risulteranno essere perse a causa di un crash di Firefox (non solo di Nightly eh).

Recupero manuale della sessione

Manuale ma semplice, te lo assicuro. Il batch si occupa della prima parte del lavoro, quella del backup, quella che generalmente ci si dimentica di fare e che è quindi importante programmare e lasciare fare a lui per evitare possibili errori. A te tocca, solo in caso di necessità, prendere il file di backup e andare a fare un rapido lavoro di taglio e cucito con Firefox chiuso, così da permettergli di riprendere la giusta sessione di lavoro alla sua riapertura.

Nella cartella del tuo profilo dovranno esistere due cartelle. La prima è quella del mio batch, si chiama SessionStoreBackup (che fantasia eh?) e dovrebbe contenere esclusivamente un file, il recovery.js. La seconda cartella è invece quella ufficiale di Mozilla, la sessionstore-backups, dovrebbe contenere questi file:

  • recovery.js – Contiene lo stato di Firefox aggiornato a 15 secondi prima di una chiusura o di un crash.
  • recovery.bak – Come sopra, ma lo stato è quello aggiornato a 30 secondi prima dell’accaduto.
  • previous.js – Contiene lo stato di Firefox relativo a due chiusure di programma fa (volute o per crash improvviso).
  • upgrade.js-[build id] – Contiene lo stato di Firefox a prima di un aggiornamento a nuova versione, il “build-id” ovviamente corrisponderà alla data di upgrade (per esempio: 20170619030208).

Saltando a piè pari questa cartella, puoi utilizzare il recovery.js generato dal batch:

  • taglialo e incollalo nella cartella del tuo profilo.
  • Cerca (ammesso che esista) il file sessionstore.js. Se esiste, cancellalo.
  • Ora rinomina il file recovery.js in sessionstore.js
  • Avvia Firefox, dovresti poter rivedere ogni tab lasciata precedentemente aperta :-)

Puoi fare la stessa identica cosa con i file generati da Mozilla, ma capita talvolta che più crash (dovuti magari a qualche instabilità o incompatibilità con un componente aggiuntivo, per esempio) vadano a rendere inutilizzabili i vari js. SessionStoreBackup cerca di evitare tutto questo mettendoti a disposizione un file teoricamente sempre valido (il “teoricamente” è inevitabile, perché se nel frattempo parte il batch e scopre che il file è cambiato, andrà a sovrascrivere la tua copia, invalidandola), il tutto a meno di modificare ulteriormente il software e fargli creare più versioni del recovery.js.

Cosa ne pensi?

Condividi l'articolo con i tuoi contatti:

E’ dai tempi di Firefox 2 che Mozilla ha introdotto una funzionalità in grado di salvare le proprie tab aperte all’atto della chiusura del browser, dando poi la possibilità di riprendere il lavoro lasciato a metà in un secondo momento. Amata e odiata allo stesso tempo, questa funzione è ancora oggi presente (grazie a Panorama), fondamentale per chi ne ha sempre fatto uso, come “se non ci fosse” per chi è abituato a tenere qualche sito aperto ed è in grado di terminare il proprio lavoro prima di chiudere il browser.

Io ricado nel primo gruppo, e come promesso sul forum di Mozilla Italia nella discussione dedicata alla accidentale perdita di tab lasciate aperte, voglio scrivere qualche riga che vi permetta di aiutarvi nell’impresa del non perdere mai il proprio lavoro.

Fondamentali

Firefox (anche le versioni Aurora, Nightly e Beta, ndr) salvano le schede (e gruppi di) in uno specifico file all’interno del proprio profilo: sessionstore.js (kb.mozillazine.org/Session_Restore). Se ancora non sapete come accedere alla cartella contenente il profilo, vi rimando alla documentazione in italiano, localizzata dalla nostra associazione: support.mozilla.com/it/kb/Profili. Come ulteriore facilitazione, dalla versione 4, Firefox permette di arrivare facilmente a destinazione semplicemente selezionando il menu Aiuto / Risoluzione dei problemi / Apri Cartella (bottone in alto nella pagina proposta).

La frequenza di backup del file sessionstore.js può essere variata manualmente dall’about:config, operazione che mi sento di sconsigliare a chi non ha particolare confidenza con questo tipo di cose e –soprattutto– non vuole rischiare di far dei danni all’interno del proprio profilo principale. Suggerisco invece l’utilizzo di uno script esterno che vada semplicemente a creare una copia sempre nuova del file sessionstore.js, che magari cancelli i file più vecchi di una determinata quantità di giorni (perché non più utili), esattamente ciò che ho fatto per me e che vi propongo oggi.

Lo script

Basato sull’originale di ‘random‘, ho voluto completarlo e permettervi di:

  • creare una cartella che tenga i backup del file sessionstore.js all’interno della cartella del proprio profilo senza la necessità di chiudere Firefox;
  • verificare e cancellare file più vecchi di 30 giorni rispetto al lancio dello script in modo del tutto automatico, così da tenere in ordine la cartella e non conservare file ormai inutili;

Sono sicuro della bontà del mio script, ma prima è forse meglio specificare sempre che:

ATTENZIONE: Prima di eseguire qualsiasi modifica ai vostri file e/o dispositivi siete pregati di effettuare un backup di questi. Solo così sarete capaci di tornare indietro riparando ad eventuali errori di distrazione. L’articolo e l’autore non possono essere ritenuti responsabili di alcun danno subito dalla vostra strumentazione. Buon lavoro.

Il codice è semplice per gli addetti ai lavori (diversamente potete saltare al successivo paragrafo ;-)), ve lo propongo:

REM Inserire il nome della cartella del profilo qui di seguito
REM Se non sai cosa fare, leggi http://wp.me/pdQ5q-1BY

set NOMEPROFILO=vn3wv4n7.default

REM NON TOCCARE NIENTE DA QUI IN POI!

@echo off

cls
echo SessionStoreBackup 0.5
echo Gioxx - gf.solone@mozillaitalia.org
echo Info: http://wp.me/pdQ5q-1BY
echo;

:Preparazione
echo;
echo Lettura directory e file di salvataggio sessione ...
echo;

set sessionFileDir=%appdata%\Mozilla\Firefox\Profiles\%NOMEPROFILO%\
set sessionFileName=sessionstore
set sessionFileSuffix=.js

if not exist %sessionFileDir%SessionStoreBackup mkdir %sessionFileDir%SessionStoreBackup

set stampH=%time:~0,2%
if %stampH% lss 10 (set stampH=0%time:~1,1%)
set stampM=%time:~3,2%
set stampS=%time:~6,2%
set stampU=%time:~9,2%
set sessionVer=%stampH%%stampM%%stampS%%stampU%

echo Fatto.
echo;

:Start
IF NOT EXIST "%sessionFileDir%%sessionFileName%%sessionFileSuffix%" (GOTO :End)
IF NOT EXIST "%sessionFileDir%%sessionFileName%-%sessionVer%%sessionFileSuffix%" (
echo Creo il file di backup ...
echo;
copy "%sessionFileDir%%sessionFileName%%sessionFileSuffix%" "%sessionFileDir%%sessionFileName%-%sessionVer%%sessionFileSuffix%"
echo;
echo Sposto il file nella cartella di backup ...
echo;
move "%sessionFileDir%%sessionFileName%-%sessionVer%%sessionFileSuffix%" "%sessionFileDir%SessionStoreBackup\"
echo;
echo Backup completato in
echo %sessionFileDir%SessionStoreBackup\%sessionFileName%-%sessionVer%%sessionFileSuffix%
echo;
)

:PuliziaFile
echo Pulizia file obsoleti ...
echo;
if not exist %windir%\..\temp\OldSessions mkdir %windir%\..\temp\OldSessions
robocopy %sessionFileDir%SessionStoreBackup %windir%\..\temp\OldSessions /E /MOV /MINAGE:3 /R:10
rd %windir%\..\temp\OldSessions /s /q
echo Fatto.

:End

L’unico dettaglio da andare a modificare è il nome della cartella del vostro profilo. Dovrete andare a copiare l’esatto nome e inserirlo subito dopo “NOMEPROFILO=” nella prima riga dello script, sostituendo il nome d’esempio che ho lasciato io (vn8iu7x0.default). Non occorre toccare nient’altro.

Potete scaricare lo script già funzionante all’indirizzo: downloads.gxware.org/index.php?dir=apps/mozilla/&file=SessionStoreBackup.zip

Per farlo funzionare –una volta inserito il nome della cartella del vostro profilo– basterà un semplice doppio clic sul file batch. I file di backup verranno conservati nella cartella SessionStoreBackup all’interno della cartella del profilo e potranno facilmente essere sostituiti a quello danneggiato o –peggio ancora– perso. Semplicemente, una volta chiuso Firefox, basterà spostare il file desiderato dalla cartella di backup a quella principale del profilo, quindi rinominarlo in “sessionstore.js” (se dovesse già esistere il file, sovrascrivetelo o cancellatelo prima di spostare il file di backup).

Mi sembra non manchi nulla. Potrebbe essere sensato parlare di operazione schedulata ma sarà argomento di un prossimo articolo ;-) In caso di problemi l’area commenti è a vostra totale disposizione.

Buon lavoro.

AGGIORNAMENTO 24/04/2013
La versione 0.5 include un banale controllo che va a modificare la precedente 0.4 di ottobre 2011. Tutti gli aggiornamenti vengono rilasciati attraverso il Wiki pubblico gfsCom all’indirizzo public.gfsolone.com/wiki/doku.php?id=mozilla:sessionstorebackup
AGGIORNAMENTO 27/10/2011
In seguito ad alcune segnalazione di malfunzionamento dell’ultimo set di istruzioni (la pulizia dei vecchi file di sessione obsoleti), ho voluto modificare lo script per far si che utilizzi robocopy, quest’ultimo lancerà l’istruzione che si occupa in modo totalmente automatico di mettere da parte i file più vecchi di 7 giorni (minage:7, valore da voi modificabile) per poi essere eliminati tutti in seguito (rd %windir%..tempOldSessions /s /q). Il set di istruzioni è stato portato alla versione 0.4 sia in questo articolo che nel file ZIP su GxWare. Nel caso in cui vi manchi il robocopy sarà possibile scaricarlo cliccando qui, occorrerà inserirlo nella cartella System32 sotto C:Windows (dove C: identifica la lettera assegnata al disco fisso che contiene l’installazione del sistema operativo, ovviamente)
AGGIORNAMENTO 11/07/2011
Grazie alla segnalazione di Godai (vedi: forum.mozillaitalia.org/index.php?topic=51220.msg332626#msg332626) ho corretto un errore presente in riga 21 che tentava di andare a cercare la cartella Utente del sottoscritto. Nello script dedicato al pubblico non sarebbe dovuto comparire quell’indirizzo, utilizzato invece durante i test sulla mia macchina. Mi scuso per la svista, ho già provveduto a modificare lo script nell’articolo e nell’area download di GxWare. La versione è stata modificata, passando dalla 0.2 alla 0.3 attuale.
Condividi l'articolo con i tuoi contatti: