Archives For Session Store

Anche se in realtà le prime modifiche sono saltate fuori già con Firefox 56, la prossima versione del browser di casa Mozilla cambierà molte carte in tavola, salteranno tante regole fino a oggi scritte, e ci sarà sicuramente un’emorragia (con conseguente migrazione verso altri lidi) di utenti che non sopporteranno le novità pronte a scendere in campo (qui abbiamo cercato di raccontartele nella miglior maniera possibile). Non sto prendendo le parti di niente e nessuno. Io mi limito a continuare a utilizzare il browser che da sempre reputo il più bilanciato, anche se ogni giorno li apro -per lavoro- praticamente tutti.

Firefox 57 e SessionStoreBackup, cosa c'è da sapere 1

Avevo già promesso che avrei rimesso mano al SessionStoreBackup, e così ho fatto ormai lo scorso agosto, quando la versione 57 di Firefox era stata distribuita tramite canale Nightly, senza però pubblicare alcunché nel blog (mea culpa!).

Ormai prossima all’uscita (14 novembre, nda), questa varia ancora una volta il modo di memorizzare le tab aperte durante la tua navigazione, e per questo motivo occorre rivedere il passaggio con cui il mio batch va a salvare ciò che ti serve, così da evitare sorprese ben poco gradite in caso di crash o altro evento imprevisto di sistema (ultimamente stiamo cercando di supportare diversi casi sul forum di Mozilla Italia).

Cosa cambia (jsonlz4)

Rispetto al passato, con le nuove release del browser avrai a che fare con dei file json compressi, i nuovi jsonlz4. La struttura resta la medesima:

  • ci sarà un previous.jsonlz4 contenente la sessione del precedente utilizzo
  • un recovery.jsonlz4 che viene aggiornato a intervalli regolari durante l’utilizzo in corso
  • vari upgrade.jsonlz4-XXXXXXXXXXXXXX che corrisponderanno alla sessione in vita per ciascun aggiornamento.

Ti mostro quello che vedo (su un profilo che ha subito i vari cambiamenti del tempo e delle release di Firefox, ignora quindi i file “js” semplici):

Firefox 57 e SessionStoreBackup, cosa c'è da sapere 2

Non esiste più un sessionstore.js libero nella cartella del profilo, non almeno nella normalità, di certo non è più il file di riferimento per il ripristino delle tue tab. Dovremo lavorare proprio sulla cartella originale dei backup di Firefox, affinché questo possa recuperare la sessione che ti interessa.

Lo script

Al solito, caricato nei miei Gist, disponibile qui di seguito (fai clic con il tasto destro su “view raw” in basso a destra, quindi salva la destinazione con nome, dovresti poter vedere un SessionStoreBackup.cmd lì dove hai deciso di scaricarlo):

Facci caso, rispetto alla sua precedente versione ho mantenuto molto di quanto già esistente (quasi tutto). Il controllo di versione del file è sempre lo stesso, così come il modo di dichiarare la cartella del tuo profilo, che però potrai ricercare in maniera più semplice.

Digita about:profiles nella barra URL del tuo Firefox e premi invio, verrai portato alla schermata che riepiloga tutti i profili presenti sulla macchina. Quello che stai utilizzando in questo momento è quello che non potrai cancellare, sarà quindi facile individuarlo :-)

Firefox 57 e SessionStoreBackup, cosa c'è da sapere 3

Ancora una volta il consiglio rimane lo stesso: fai girare lo script automaticamente (o manualmente, se lo preferisci) ogni ora, se puoi anche meno. Più spesso verrà eseguito, più potrai recuperare facilmente la tua sessione in caso di problemi.

Recupero manuale della sessione

Apri la cartella del profilo che stai usando, quindi chiudi il browser, questo è il primo fondamentale passaggio.

Basandoti sul file che più si avvicina alla data e all’ora del problema che hai riscontrato, naviga la cartella del tuo profilo, quella principale, all’interno della quale dovresti trovare un file chiamato sessionstore.jsonlz4. Se presente, rinominalo in qualcosa di diverso, per esempio sessionstore.jsonlz4.bak, quindi copia uno dei due file precedentemente salvati (il previous.jsonlz4 o il recovery.jsonlz4) e rinominalo in sessionstore.jsonlz4.

Avvia ora Firefox. Se quel file che hai sostituito è consistente, vedrai ricomparire le tue tab così come le avevi lasciate l’ultima volta. Diversamente, non c’è altra possibilità di recupero (che io sappia), a meno di non utilizzare una scappatoia offerta dalle “Versioni precedenti” di Windows (il servizio del sistema operativo che permette il versioning dei file sotto costante salvataggio).

Occhio: puoi fare la stessa cosa anche con uno dei diversi “upgrade.jsonlz4-XXXXXXXXXXXXXX” (al posto delle X troverai anno, mese, giorno e ora del salvataggio) a disposizione, portandone fuori uno modificato alla data / ora che ti serve e rinominandolo in sessionstore.jsonlz4, ma così come per la coppia “recovery / previous“, continua a non esserci garanzia alcuna di funzionamento. Di certo questo è un ulteriore layer di protezione “fatto in casa” per evitare di perdere il proprio lavoro, soprattutto quando si ha a che fare con rilasci di Firefox fuori dal canale stabile, più portato ad andare in crash per qualche bug.

Credo di aver detto tutto. Al solito, in caso di problemi o ulteriori dubbi, l’area commenti è a tua completa disposizione (mi raccomando, problemi inerenti SessionStoreBackup, non altri problemi generici del browser, per quelli esiste già il nostro forum).

Condividi l'articolo con i tuoi contatti:

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).

Qui trovi il “nuovo” codice (il solito in realtà, ma un po’ rivisto): gist.github.com/gioxx/8dd4d6dee309a63136ddab913eabe69b/17831b62c475870a04769bf129a3fde101ed4661

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.

Update

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

Update

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)

Update

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: