使用FireBreath写浏览器插件(一)
一. 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写浏览器插件(一)相关推荐
- 使用FireBreath写浏览器插件(三)
三. FireBreath Helloworld 首先需要创建一个自己插件的工程,首先要安装Python,然后进入命令行后,在Firebreath的源代码目录下执行:python fbgen.py,这 ...
- 使用FireBreath写浏览器插件(二)
二. Firebreath的实际应用 去年我在给公司开发PC上Widget引擎,这个Widget引擎上面运行WebApp应用,界面和应用逻辑使用HTML+CSS+Javascript实现,而网页无法实 ...
- mac 下基于firebreath 开发多浏览器支持的浏览器插件
mac 下基于firebreath 开发多浏览器支持的浏览器插件 首先要区分什么是浏览器扩展和浏览器插件;插件可以像本地程序一样做的更多 一. 关于 firebreath http://www.fir ...
- python写chrome插件_用VueJS写一个Chrome浏览器插件
浏览器基本已经天下大统了,放眼望去都是Chromium的天下.那么,能写一个浏览器插件也算是一种回报率不错的技能. 基本知识 浏览器插件官方的说法叫扩展程序,允许你为浏览器增加各种功能,但不需要深入研 ...
- 使用chatgpt写一个划词翻译的浏览器插件
最近在网上流行的chatgpt,实在是太火了,好多人在使用,而且它的用处实在是太丰富了,能帮助我们解决很多问题,就比如说:编程,生成图片,翻译等.太丰富了.我看网上很多人都在说,它可以帮助人开发软件, ...
- 如何安装Google浏览器插件
2019独角兽企业重金招聘Python工程师标准>>> 今天竟然会忘记怎么安装Google浏览器插件,写篇博文来记事一下. 1. 打开Google浏览器Extensions页面:ch ...
- Chrome 插件:自己写的插件提示请停用以开发者模式运行的插件处理方法,该拓展程序未列在chrome网上应用商店中,并可能是在您不知情的情况下添加的解决办法
Chrome 浏览器插件问题处理 第一章:问题描述 ① 问题一:请停用以开发者模式运行的插件 ② 问题二:该拓展程序未列在 chrome 网上应用商店中,并可能是在您不知情的情况下添加的 第二章:Ch ...
- 浏览器插件之ActiveX开发(二
浏览器插件之ActiveX开发(二) 按照上文<浏览器插件之ActiveX开发(一)>的步骤,能开发一个基于MFC的简单的ActiveX控件.不过在实际操作中还是会遇到一些问题.由于对CO ...
- 推荐 | 方便好用的浏览器插件
作为一名苦逼的码农,平时需要经常和计算机打交道,相应的,我们基本天天都会使用浏览器.为了提高工作效率和折腾点好玩的(比如听收费歌曲.下载会员视频等等-),我们多少都会安装一些浏览器插件实现,不用下载什 ...
最新文章
- Java-ORM数据库框架CDM介绍
- 解决teamviewer试用期到期的方法
- python报错TabError: inconsistent use of tabs and spaces in indentation解决方案
- 防止QQ密码被盗的五个绝招
- day 96 关于分页的使用
- Windows下Anaconda3安装及使用教程
- Window系统下安装Redis
- PPAS数据库备份与恢复
- java resource放入的文件没有生成在classes中_JAVA程序员学习笔记----mybatis深入剖析...
- 交际能力弱的人,适合当律师吗?
- 不会编程,如何做自动化测试
- 深度学习:波士顿房价预测
- 计算机配置主板技术参数,i9-7900X/7920X配什么主板好?i9-7920X/7900X主板搭配与参数详解...
- 威纶通触摸屏上传错误_威伦触摸屏程序上传方式
- JavaScript数组方法(最全)
- csapp lab3 attack 《深入理解计算机系统》实验3攻击超详细0基础解析
- 信息服务器v6,服务器ipv6设置
- GNS3 思科(Cisco)PIX虚拟防火墙简单配置
- 【Microsoft Azure 的1024种玩法】四十二. 通过Windows Admin Center快速创建Azure Virtual Machines
- android 调试原理
热门文章
- ST_Settings_Applications_018-应用管理:默认应用程序:桌面(安装第三方桌面后,在三方桌面,原生桌面,锤子桌面之间来回切换)
- python可以做鲁棒优化吗_XPROG: 简单实用的鲁棒优化(RO, DRO)编程语言
- 百度公司的笔试题目等
- javax.net.ssl.SSLException: Read error: ssl=0xdeae5100: I/O error during system call, Connection res
- 论文阅读-11-Handling Inter-class and Intra-class Imbalance in Class-imbalanced Learning
- 微型计算机原理学不会,单片机学习很难而且总是入坑?看看这些经验会对你有帮助...
- 主控全志R58-百度小度在家智能音箱拆解
- C语言课设车票管理系统(大作业)
- windows 中怎么做共享
- RFID防伪设计(物联网工程课程设计)DAY1---开题报告