一. 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的架构,而不是使用其代码,否则可能会出现效率问题。

使用FireBreath写浏览器插件(一)相关推荐

  1. 使用FireBreath写浏览器插件(三)

    三. FireBreath Helloworld 首先需要创建一个自己插件的工程,首先要安装Python,然后进入命令行后,在Firebreath的源代码目录下执行:python fbgen.py,这 ...

  2. 使用FireBreath写浏览器插件(二)

    二. Firebreath的实际应用 去年我在给公司开发PC上Widget引擎,这个Widget引擎上面运行WebApp应用,界面和应用逻辑使用HTML+CSS+Javascript实现,而网页无法实 ...

  3. mac 下基于firebreath 开发多浏览器支持的浏览器插件

    mac 下基于firebreath 开发多浏览器支持的浏览器插件 首先要区分什么是浏览器扩展和浏览器插件;插件可以像本地程序一样做的更多 一. 关于 firebreath http://www.fir ...

  4. python写chrome插件_用VueJS写一个Chrome浏览器插件

    浏览器基本已经天下大统了,放眼望去都是Chromium的天下.那么,能写一个浏览器插件也算是一种回报率不错的技能. 基本知识 浏览器插件官方的说法叫扩展程序,允许你为浏览器增加各种功能,但不需要深入研 ...

  5. 使用chatgpt写一个划词翻译的浏览器插件

    最近在网上流行的chatgpt,实在是太火了,好多人在使用,而且它的用处实在是太丰富了,能帮助我们解决很多问题,就比如说:编程,生成图片,翻译等.太丰富了.我看网上很多人都在说,它可以帮助人开发软件, ...

  6. 如何安装Google浏览器插件

    2019独角兽企业重金招聘Python工程师标准>>> 今天竟然会忘记怎么安装Google浏览器插件,写篇博文来记事一下. 1. 打开Google浏览器Extensions页面:ch ...

  7. Chrome 插件:自己写的插件提示请停用以开发者模式运行的插件处理方法,该拓展程序未列在chrome网上应用商店中,并可能是在您不知情的情况下添加的解决办法

    Chrome 浏览器插件问题处理 第一章:问题描述 ① 问题一:请停用以开发者模式运行的插件 ② 问题二:该拓展程序未列在 chrome 网上应用商店中,并可能是在您不知情的情况下添加的 第二章:Ch ...

  8. 浏览器插件之ActiveX开发(二

    浏览器插件之ActiveX开发(二) 按照上文<浏览器插件之ActiveX开发(一)>的步骤,能开发一个基于MFC的简单的ActiveX控件.不过在实际操作中还是会遇到一些问题.由于对CO ...

  9. 推荐 | 方便好用的浏览器插件

    作为一名苦逼的码农,平时需要经常和计算机打交道,相应的,我们基本天天都会使用浏览器.为了提高工作效率和折腾点好玩的(比如听收费歌曲.下载会员视频等等-),我们多少都会安装一些浏览器插件实现,不用下载什 ...

最新文章

  1. Java-ORM数据库框架CDM介绍
  2. 解决teamviewer试用期到期的方法
  3. python报错TabError: inconsistent use of tabs and spaces in indentation解决方案
  4. 防止QQ密码被盗的五个绝招
  5. day 96 关于分页的使用
  6. Windows下Anaconda3安装及使用教程
  7. Window系统下安装Redis
  8. PPAS数据库备份与恢复
  9. java resource放入的文件没有生成在classes中_JAVA程序员学习笔记----mybatis深入剖析...
  10. 交际能力弱的人,适合当律师吗?
  11. 不会编程,如何做自动化测试
  12. 深度学习:波士顿房价预测
  13. 计算机配置主板技术参数,i9-7900X/7920X配什么主板好?i9-7920X/7900X主板搭配与参数详解...
  14. 威纶通触摸屏上传错误_威伦触摸屏程序上传方式
  15. JavaScript数组方法(最全)
  16. csapp lab3 attack 《深入理解计算机系统》实验3攻击超详细0基础解析
  17. 信息服务器v6,服务器ipv6设置
  18. GNS3 思科(Cisco)PIX虚拟防火墙简单配置
  19. 【Microsoft Azure 的1024种玩法】四十二. 通过Windows Admin Center快速创建Azure Virtual Machines
  20. android 调试原理

热门文章

  1. ST_Settings_Applications_018-应用管理:默认应用程序:桌面(安装第三方桌面后,在三方桌面,原生桌面,锤子桌面之间来回切换)
  2. python可以做鲁棒优化吗_XPROG: 简单实用的鲁棒优化(RO, DRO)编程语言
  3. 百度公司的笔试题目等
  4. javax.net.ssl.SSLException: Read error: ssl=0xdeae5100: I/O error during system call, Connection res
  5. 论文阅读-11-Handling Inter-class and Intra-class Imbalance in Class-imbalanced Learning
  6. 微型计算机原理学不会,单片机学习很难而且总是入坑?看看这些经验会对你有帮助...
  7. 主控全志R58-百度小度在家智能音箱拆解
  8. C语言课设车票管理系统(大作业)
  9. windows 中怎么做共享
  10. RFID防伪设计(物联网工程课程设计)DAY1---开题报告