セッションが保存された.jsonlz4ファイルを選択すると現在開いているウィンドウはそのままに
保存されているウィンドウを新しいウィンドウとして復元するスクリプト
ブラウザコンソールにコピペして使用する
(function(){
new Promise((resolve, reject) => {
const fp = Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker);
fp.init(window, "Choose .jsonlz4", Ci.nsIFilePicker.modeOpen);
fp.displayDirectory = Services.dirsvc.get("ProfD", Ci.nsIFile);
fp.open(ret => {
if (ret === Ci.nsIFilePicker.returnOK && fp.file) {
resolve(fp.file.path);
}
else reject();
});
}).then(path => {
return IOUtils.readJSON(path, {decompress: true});
}).then(({windows}) => {
for (let {tabs} of windows) {
const state = {
windows: [{
tabs
}]
};
const win = OpenBrowserWindow();
win.addEventListener("load", () => {
win.gBrowserInit.idleTasksFinishedPromise.then(() => {
SessionStore.setWindowState(win, JSON.stringify(state), true);
});
}, {once: true});
}
}).catch(e => Cu.reportError(e));
}());