今天Firefox Crash之后,我的会话全部丢失了。按照以往来说,Firefox在重新启动之后或者Crash之后会有一个会话还原的页面。但今天确实没有。后来我进行Google查阅,试了很多种办法。终于找到一种非常快速方便的还原步骤。

首先简单说明下Firefox记录会话的机制,他会在每个用户的Profile下放入相应的session.js和session.bak,一般只需要用到js即可,在每次重启Firefox的时候他会去检索这些文件,然后根据里面的条目来进行自动加载。但有时候,Firefox并不会自动去加载这个文件,这个时候就需要用到我们手动加载的步骤了。

【1】首先查看自己的Profile下有没有对应的session.js,在我的Ubuntu下我的路径目录内容为(一般都以session作为名字,但也有部分叫recovery.js或者previous.js,具体可以进去打开之后查看有没有自己的tab条目)

~/.mozilla/firefox/nn63c34z.default/sessionstore-backups$ 

你进入到这个目录之后,查看里面后缀为js或者bak的文件,我找到了一个叫previous.js的文件,里面确实记录了我上百条tab的记录。

{"windows":[{"tabs":[{"entries":[{"url":"http://www.cnblogs.com/rickyk/","title":"","ID":,"docshellID":,"referrer":"http://64.233.183.163/url?sa=t&rct=j&q=site%3Ablog.rickyk.com%20%20git&source=web&cd=14&ved=0CCwQFjADOAo&url=%68%74%74%70%3a%2f%2f%62%6c%6f%67%2e%6a%6f%62%62%6f%6c%65%2e%63%6f%6d%2f%35%34%31%38%34%2f&ei=Z-1WVOnxA4OayQTJtYHABQ&usg=AFQjCNFa2cxuuZxoy0Dt97jSae7pkCVkEA&bvm=bv.78677474,d.aWw&

都是以JSON格式记录的,其中windows标记代表你有几个窗口,tab标记记录你的具体的tab页面,这个可以很容易的看出来。

【2】安装附件--Session Manager(会话管理器)

添加这个附件之后,你可以在『工具』中找到这个附件的选项,这个时候我们发现“恢复会话"是空的不能点。于是,我做了个测试,我直接点保存会话,看看此时这个插件会把文件写入到哪,并且以什么格式记录。最后发现他写在了

~/.mozilla/firefox/nn63c34z.default/sessions$ ls
backup.session

里面有一个session文件,其实同样也是JSON格式,我们打开之后,内容如下:

[SessionManager v2]
name=[ 上次浏览的会话 ]
timestamp=
autosave=false count=/1 group=备份会话 screensize=1360x768
{"windows":[{"tabs":[{"entries":[{"url":"http://www.cnblogs.com/rickyk/","title":"","ID":226624224,"docshellID":48,"referrer":"http://64.233.183.163/url?sa=t&rct=j&q=site%3Ablog.rickyk.com%20%20git&source=web&cd=14&ved=0CCwQFjADOAo&url=%68%74%74%70%3a%2f%2f%62%6c%6f%67%2e%6a%6f%62%62%6f%6c%65%2e%63%6f%6d%2f%35%34%31%38%34%2f&ei=Z-1WVOnxA4OayQTJtYHABQ&usg=AFQjCNFa2cxuuZxoy0Dt97jSae7pkCVkEA&bvm=bv.78677474,d.aWw

对比我们之前在backup里面的js文件内容,发现多了

[SessionManager v2]
name=[ 上次浏览的会话 ]
timestamp=
autosave=false count=/ group=备份会话 screensize=1360x768

我后来想如果格式相同既然都是JSON应该可以恢复我之前的会话,后来我就把之前的previou.js文件拷到了这个目录中后,用Vim打开在文件的顶端跟他一样加入了上面一句。并把后缀改成.session,尝试看下这样的格式能不能让这个插件正确读取。

这个时候我在打开工具--会话管理器--恢复会话,惊人的发现,居然有两个恢复条目,其中第一个就是之前做的测试,第二个就是我们刚才进行更改之后成功转变为session的内容。然后我们删除之后作为测试的session文件,留下真正需要恢复的条目,进行恢复。奇迹出现了,我们的会话全部都回来了。

这套办法有些注意点需要注意,首先一般Firefox Crash之后会在你个人目录下都会有session相关的js和bak文件进行保存,即使你没有正确恢复上次会话,这些文件还是有的。你必须确保文件存在,你才能进行之后的步骤。

总之,这套办法确实可以让你恢复你之前丢失的会话,我成功恢复了700多个tab,希望这篇总结能够对你有帮助:)

巧用Session Manager还原Firefox丢失会话的更多相关文章

  1. C# Firefox Session Manager 文件的导出与管理

    长时间使用Firefox会产生很多的session文件(使用了插件:Session Manager).这些文件保存了你浏览过的所有的网址.虽然我们可以使用firefox的书签功能.但有时候打开的网址过 ...

  2. 使用Memcached Session Manager扩展Session管理

    >>Tomcat的session管理 在请求过程中首先要解析请求中的sessionId信息,然后将sessionId存储到request的参数列表中. 然后再从request获取sessi ...

  3. firefox 丢失的回话

    升级了新版Firefox后如果插件被禁用的,可以在Firefox配置编辑页面(about:config页面)把 xpinstall.signatures.required首选项设为false来强制禁用 ...

  4. Tomcat使用Memcached Session Manager管理Session

    Tomcat使用Memcached Session Manager管理Session 废话不多说,直接进入主题.项目使用阿里云负载均衡+ECS服务器集群进行部署,Tomcat使用8.5版本.阿里云负载 ...

  5. 模仿J2EE的session机制的App后端会话信息管理

    此文章只将思想,不提供具体完整实现(博主太懒,懒得整理),有疑问或想了解的可以私信或评论 背景 在传统的java web 中小型项目中,一般使用session暂存会话信息,比如登录者的身份信息等.此机 ...

  6. Session超时和莫名丢失的原因与处理办法

    原因: 改动global.asax,Web.config,bin目录里的东西,导致Web Applicatioin重启. 有些杀毒软件会去扫描你的Web.config文件,也会导致Session丢失. ...

  7. Tomcat集成Memcached Session Manager方案

    http://repo1.maven.org/maven2/de/javakaffee/msm/memcached-session-manager/2.3.2/memcached-session-ma ...

  8. Session - 什么叫一次会话

    转载自:https://blog.csdn.net/qin_xiaofang/article/details/77725946 网上收集的:Session代表服务器与浏览器的一次会话过程,这个过程是连 ...

  9. ORA-00019: maximum number of session licenses exceeded 超出最大会话许可数

    ORA-00019: maximum number of session licenses exceededORA-00019: 超出最大会话许可数 Cause:       All licenses ...

随机推荐

  1. 一键源码安装Ansible

    #!/bin/bash # @Name:install_ansible.sh # @Author:Eivllom # @Create -- # @Modify -- app_soft="/a ...

  2. ZOJ 3469 Food Delivery

    题目大意: 有n个人,住在一条直线上.第i个人的坐标是Xi,街上有个外卖餐馆的位置是X,现在餐厅工作人员要给街上的每个人送饭,送完之后再回到餐厅,送饭人的速度是V,每个人有个不满意值,当这个人送餐时间 ...

  3. document.getElementById的简便方式

    封装自己的元素获取方法,使元素获取变得简便 注意:1.应该要防止定义的被重写,可将同名的重新定义   2.可将封装的对象置为全局对象,方便使用 通过id查找单个元素 封装方式: //通过id查找单个元 ...

  4. Maximum Product Subarray——LeetCode

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  5. 程序集引用异常 处理 app.config内控制runtime运行时应用的程序集版本指向 assemblyBinding结点 bindingRedirect

    异常: 解决方法: <?xml version="1.0" encoding="utf-8"?> <configuration> < ...

  6. zoj 1372

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1372 #include<iostream> #include& ...

  7. quartus中查看网表

    查看编译之后生成的逻辑结构 tools->Netlist Viewers->RTL vierer

  8. POJ 1861 Network

    题意:有n个点,部分点之间可以连接无向边,每条可以连接的边都有一个权值.求一种连接方法将这些点连接成一个连通图,且所有连接了的边中权值最大的边权值最小. 解法:水题,直接用Kruskal算法做一遍就行 ...

  9. hdu 2795 线段树

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2795 #include <cstdio> #include <cmath> # ...

  10. 424. Longest Repeating Character Replacement

    以最左边为开始,往右遍历,不一样的个数大于K的时候停止,回到第一个不一样的地方,以它为开始,继续.. 用QUEUE记录每次不一样的INDEX,以便下一个遍历开始, 从左往右,从右往左各来一次..加上各 ...