「起動時に前回終了時の状態を復元する」を復元する

宣伝

現在SAHKにて、かつてSUECで公開されていたエクステンションをどうするか*1って事に対して投票を行ってます。ぷにらーの方は出来れば一票お願いします。03月23日まで。



本題

FUCやら2ちゃんの初心者スレやら覗いていると、同じような質問が結構あります。
現在の初心者スレがそろそろ埋まりそうなんで、次スレの時に労力を使わないで良いように頻出の質問に対する私家版FAQを準備してたりします。

よくある質問

その中にこんな質問があります。


Sleipnirが不正終了して落ちてしまって、再起動するときに「前回 Sleipnir が突然終了してしまいました。前回終了時のタブを復元しますか?表示していたページに問題がある場合は空白ページで起動して下さい。」で「空白ページで起動」を選択してしまい前回開いていたタブが吹っ飛んでしまいました。開いていたページをまだ「お気に入り」に登録とかしてないんでどこのページか分からないのですがどうにか戻す方法はありませんか?


これに対する回答としてはこんな感じでしょうか。


過って「空白ページで起動」してしまってからまだSleipnirを終了させていない場合は「お気に入りグループ>前回終了時の状態」を押してみましょう。
もしかすると、復元できるかもしれません。
それで復活できなければSleipnirの履歴を覗いてみましょう。「表示>エクスプローラバー>履歴」です。
それでも駄目ならインターネットの履歴を見てみます。IEを起動して「表示>エクスプローラーバー>履歴」です。
以上を試して駄目なら残念ながら復活は無理ですね。*2

スクリプトの概要

ちなみに、前回の状態を保存しているファイルは"settings\<ユーザ名>\caches\LastSession.ffg"です。
今回はこのファイルをバックアップするスクリプトを書いてみました。
Sleipnir起動時に"LastSession.ffg"のコピーを作ります。

使い方

無保証上等で自己責任を承諾できる方だけ使ってください。
前提としてSeaHorseプラグインを入れている必要があります。
1.スクリプトこちらからDLし解凍する。
2.出力された"LastSessionBackup.user.js"を所定のフォルダに突っ込む。インストール版デフォルトなら"C:\Program Files\Fenrir & Co\Sleipnir\plugins\seahorse"
3.スタートアップグループに"about:LastSessionBackup"を登録する。
4.Sleipnirを起動するたびに"LastSession.ffg"と同階層に"LastSession.ffg.nnn"というファイル名でコピーされる。(nnnは数字)
5.上記のような事態が起こったら、「Sleipnrオプション>クライアント>起動≫起動時に前回終了時の状態を復元する」にチェックを入れてSleipnirを終了。"LastSession.ffg"を削除し適切な"LastSession.ffg.nnn"の".nnn"を削って"LastSession.ffg"にリネームしたあとSleipnirを起動すれば良いです。
※どれが戻したい"LastSession.ffg.nnn"かはファイルのサイズと作成時間で判別できると思います。他には各ファイルをテキストエディタで開くとURIが載っているので判別できるでしょう。それでもわからない場合は全ての"LastSession.ffg.nnn"をどこか別の場所にコピーして一個一個試してみてください。

Tips

デフォルトでは二世代分しかバックアップしませんが、"LastSessionBackup.user.js"の21行目の値を変えると変えた値の世代まではバックアップするはずです。

要望

Sleipnir側で同様な機能を搭載して欲しいなぁ

*1:つまり、公開するかしないか

*2:CachePod入れていれば、こういう場合にも役立つかもしれません。自信が無いけど