本鱼拟成立工作室承接项目开发/软件定制/云设施开发运维/办公设备技术支持等,如您有相关需求,欢迎来询 | ::博客文章推荐::

Firefox对COM组件独立进程导致内置插件无法嗅探到完整的网络请求

: 开发工具 木魚 3055℃ 0评论

今天在处理一个Flash上传控件时发现的。

众所周知的是,Chrome中对于Flash插件的处理模式是独立一个进程来展示插件内容以避免Flash的崩溃导致浏览器跟随崩溃。Firefox在3.6.2中也开始引入这种模式,会有一个 Mozilla-runtime.exe 的辅助进程来显示Flash内容,如下图所示:

图片 

本身这个进程的引入应该说是一件好事,但是由于这个进程目前还只是测试性质的,所以存在有严重的性能缺陷,最明显的就是Flash在Firefox中显示的性能要远远低于其它浏览器,而且CPU占用率会较高,同时对其进行操作的时候会觉得有明显的延迟(因为网络请求性能也较低)。这些应该期待Firefox后续版本中修正(我目前用的是3.7.a4的nightly版本)。

但是我遇到的一个问题就是,firefox内置的网络嗅探机制无法嗅探到独立进程中的网络请求。这应该是一件比较棘手的事情。对于依赖于firefox内置请求的插件来说,应该不是一个好消息。从目前看来,Firebug和HttpFox均无法嗅探到这个独立进程的网络请求,如下图所示:

图片

图片

 

由此可以推测:

1.至少在目前的版本中,Mozilla-runtime.exe 的网络请求是独立于主进程的;
2.内置的任何插件均无法嗅探独立进程中的网络请求,包括 Firebug、HttpFox以及类似插件;
3.firefox的代理插件对独立进程是无效的(这条并未做验证,纯属猜测)。

目前看来,要嗅探此类Flash应用的数据,只能通过独立的嗅探软件。Network Monitor、Wireshark这些专业的工具在此不提,因为他们用来嗅探普通的HTTP数据时会显得操作相当繁琐。这里使用HttpAnalyer来嗅探,附加到Firefox进程时,要注意同时选择Mozilla-runtime进程:

图片

此时,flash提交的数据和网络请求就也能被嗅探到了:

图片

 

当然这样还是很不方便的,尤其是对于习惯用Firebug来集成嗅探的我们来说。不知道后面的版本中会不会做改进修正这样的不便。

本日志备份自 QQ 空间,原文地址:http://user.qzone.qq.com/286495995/blog/1269167450

喜欢 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址