使用FireBreath写浏览器插件(一)

http://blog.csdn.net/chief1985/article/details/6719938

一. FireBreath介绍

    FireBreath是一个跨平台和跨浏览器的插件开发框架,通过Firebreath写的插件可以运行在windows,linux和mac上的IE,Firefox,Chrome,Opera,Safari等浏览器上。

FireBreath的主要开发者是Richard Bateman, 他工作在Facebook,FireBreath里面使用了不少Facebook贡献的代码。Firebreath使用New BSD授权或LGPL授权,官网在http://www.firebreath.org, 代码可以从https://github.com/firebreath/FireBreath下载。

    FireBreath适合如下场合:

1. 需要提供新的功能给js调用(扩展js功能)

2. 需要实现类似于Flash或media player那样功能

3. 给Chrome写Extension 

4. 其他非扩展浏览器外壳的功能的场合

    在IE上,我们可能经常会看到如下的工具条:


    google工具条属于浏览器外壳部分的扩展,并不属于ActiveX插件,而是属于BHO(Browser Helper Object)。无论是ActiveX还是BHO,都是基于COM实现的。在浏览器中使用COM的好处是扩展能力超强,好被其他程序重用(例如QQ的聊天窗口的一部分就是用IE做的),坏处是可能导致启动速度变慢(需要合理优化)。BHO可以实现很强大的功能,例如Chrome Frame就是利用BHO将Chrome嵌到IE里面运行。Firefox实现了一套与COM类似的技术:XPCOM(Cross Platform Component Object Model),XPCOM虽然说是跨平台,但整体来说还是弱于COM。

    在IE中还有一种扩展js功能的是ie external对象(http://msdn.microsoft.com/en-us/library/ms535246(VS.85).aspx),现在很多程序就是用这种方法扩展js功能,例如迅雷,QQ等。

    Firebreath现在主要是支持桌面系统的浏览器,还不支持Android,Iphone等平台。Firebreath实现采用了boost库,也使用了异常处理机制,这导致Firebreath在Android和Iphone等平台移植时会稍微困难一点,不过网上已经有android版的boost库。我曾经专门问过Richard Bateman是否有计划支持Android,他表示暂时还没计划。其实在嵌入式设备上的简单的做法是:参考Firebreath的架构,而不是使用其代码,否则可能会出现效率问题。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值