关闭 Flash 沙箱安全模式,解决浏览器高占用

经常碰到 Firefox 因 Flash 插件崩溃,到卡饭翻了翻,发现是 Flash 沙箱的问题。原文附带了去沙箱保护的 Flash 插件,可惜版本有点旧,遂自己动手解决。

注意:办法一适用于 [ 安装版 ] 插件。

方法一:修改 mms.cfg

这个方法很简单,Windows 7 以上的系统以管理员身份运行记事本,我这里用的是 Notepad2。

根据系统的位数打开下面的路径:

x86:C:\windows\system32\macromed\flash

x64:C:\windows\syswow64\macromed\flash

找到这个 mms.cfg ,如上图。

在文件末尾加上一行设置:

ProtectedMode=0

 

顺带解释下每一行的设置,看得懂英文的朋友大概都明白,第一行是静默更新,第二行是自动更新,第三行是保护模式,0 就是编程里面的意义为假(关闭),1 为真(开启)。

弊端:mms.cfg 是 Adobe Flash Player 的配置文件,通过配置文件来关闭沙箱特性,但是这个方法用在 Firefox 上,plugin-container.exe 进程也会跟着不见。对于 plugin-container.exe 进程我的理解是,将 Adobe Flash Player 插件独立成一个进程,这样当 Adobe Flash Player 插件崩溃的时候也不会影响到浏览器,通过 ProtectedMode 参数来关闭,不仅关闭了沙盒特性,连插件独立成进程这个功能也关闭 了,这样一来,一旦 Flash 插件崩溃会直接影响到浏览器。参数 ProtectedMode(保护模式)控制的似乎不仅仅是沙箱。

 

方法二:直接修改 dll 文件

注意:该方法只适用于 32 位 的Flash,并且经过本人测试,对于 Flash 14 版本失效

原帖地址:http://www.firefox.net.cn/read-46503

修改 dll 文件,让插件运行时跳过沙箱部分,不启动沙箱。直接手动修改 dll 文件的方法我也不会,但是有大神制作了补丁可以对任一版本的 dll 文件进行修 改,使用方法非常简单。之所以推荐这种方法是因为这样 Firefox 的 plugin-container.exe 进程仍会保留,插件的崩溃就不会影响到浏览器。

下载地址(请右键另存为该图片后改扩展名为 RAR ):

再顺带提供一个解决 JS 加载导致浏览器无响应或者标签页无法关闭的方法:

在支持 ABP 语法的广告屏蔽软件(ADsafe、保护伞之类的)的自定义规则里填上这么几句(示例):

1 ||bdimg.share.baidu.com/static/js/*
2 ||kindleren.com/static/js/*
3 ||bbs.l3.wuyou.com/static/js/*
4 ||share.baidu.com/static/js/*
5 ||bdimg.share.baidu.com/static/images/*
6 ||api.share.baidu.com

 语法如下参考:

  • "!" 为行注释符,注释行以该符号起始作为一行注释语义,用于规则描述
  • "*" 为字符通配符,能够匹配0长度或任意长度的字符串,该通配符不能与正则语法混用。
  • "%" 为子域通配符,方便匹配主域名下的所有子域。
  • "^" 为符号通配符,通配URL中的特殊符号,包括: ? = / : & #
  • "~" 为排除标识符,通配符能过滤大多数广告,但同时存在误杀, 可以通过排除标识符修正误杀链接。
  • "&" 为正则表达式标识符,您可以使用它精确控制拦截策略,出于性能考虑并不提倡多用正则规则。
  • "|" 为终止标识符,匹配字符串开始或结束位置。
  • "##" 为元素选择器标识符,后面跟需要隐藏元素的CSS样式例如 #ad_id  .ad_class
  • "@@" 为JQuery选择器标识符,后面跟需要隐藏元素的JQuery筛选语法
  • "::" 为域选择器标识符,后面跟需要限定的域名列表,以英文逗号分割
  • "$$" 为返回类型选择器标识符,后面跟需要返回的HTTP数据包类型
  • ">>" 为文本替换选择器标识符,后面跟需要替换的文本数据,格式:>>模式字符串>>替换后的文本

 

 

posted @ 2014-08-03 11:29  rhinoc  阅读(1451)  评论(0编辑  收藏  举报