今天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. 为什么PCI-e比SATA快这么多?

    PCIe协议和SATA协议都是分层协议,分为物理层,数据链路层,传输层,命令层和应用层. 硬件工程师主要关注物理层.数据链路层和传输层.所有CMD/data由应用层和命令层打下来,每向下走一层,多一层 ...

  2. C语言基础课程 第三课 ADB(Android Debug Bridge)的使用

     由于前面已经发布过Linux的博客了 基础班将Linux基础命令就不单独发表博客了,本节课主要就是利用adb连接手机进行一个Linux基本命令的复习.而且熟悉手机的底层运作,不用界面操作照样也能 ...

  3. w​i​n​d​o​w​s​7​旗​舰​版​I​I​S​6​配​置​-​保​证​能​发​布

    http://wenku.baidu.com/view/20b4d26248d7c1c708a145d1.html

  4. Ubuntu中Nginx的安装与配置

    原文地址:http://www.cnblogs.com/languoliang/archive/2013/04/01/nginx.html 1.Nginx介绍 Nginx是一个非常轻量级的HTTP服务 ...

  5. NOI题库1980 陪审团的人选(POJ1015)

    1980:陪审团的人选 总时间限制: 1000ms 内存限制: 65536kB 描述 在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定.陪审团是由法官从公众中挑选的.先随机挑选n个人作为陪审团的候 ...

  6. Java中对象的深复制和浅复制详解

    1.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象.换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象. ⑵ ...

  7. sqlserver使用户只能在某个架构下建立表和存储过程

    1.首先,建立一个用户之后,默认的架构是dbo,默认的角色是public.这种情况下,这个用户将看不到dbo以及其他架构下的对象.除非单独进行授权.   2.新建一个架构test,然后使得这个架构的所 ...

  8. C语言判断系统数据大/小端存储方式

    小端存储:数据的低位部分,存储于存储器的低地址空间里. 大端存储:数据的低位部分,存储于存储器的高地址空间里. 首先,一般PC数据存储方式是小端存储. 基本实现思想是:将存储器中所存的数据按字节以地址 ...

  9. cocos2d-x 3.0 利用python脚本在文件夹Classes内创建class

    因为VS2012创建默认文件是在proj.win32下,新建类不在VS的classes于是编译时找不到类.直接写个脚本帮助新建类(cpp和h文件),还能够在里面加上一些预先写好的代码. 批处理文件Cr ...

  10. [转] Form表单中method="post/get'的区别

    Form提供了两种数据传输的方式——get和post.虽然它们都是数据的提交方式,但是在实际传输时确有很大的不同,并且可能会对数据产生严重的影响.虽然为了方便的得到变量值,Web容器已经屏蔽了二者的一 ...