摘要:FireBreath is a framework that allows easy creation of powerful browser plugins. A plugin built on FireBreath works as an NPAPI plugin or as an ActiveX control (windows only) and support could be added for other plugin types built in C++ as well.
开源项目FireBreath,是一个支持NPAPI的插件开发框架,它的诞生大大缩短了插件开发周期。了解更多:http://www.firebreath.org/。
在此框架基础上进行插件开发,可以不用考虑插件对各大浏览器的兼容性,只要浏览器商支持NPAPI就可以正确的运行你的插件。遗憾的是,Chrome从2014年开始已经开始向PPAPI转移,高版本的Chrome浏览器将无法使用FireBreath插件;另外,对国内而言,360浏览器使用的确实是Chrome内核,它应该也存在问题(未测试)。
但是,IE、火狐、QQ浏览器都能较好的支持NPAPI,FireBreath框架表现的非常完美。(注:2017年3月测试正常)。
[2017-5-1注:Chrome 42以上版本,火狐52以上版本不再支持NPAPI协议插件开发]
FireBreath作者——Richard Bateman,以及开源项目贡献者,他们都在朝着PPAPI努力,让FireBreath走的更远。
目录:
准备工具
FireBreath框架
需要从github上下载FireBreath框架:https://github.com/firebreath/FireBreath。下载release版本,一般下载最新版。
安装Python
FireBreath插件INFO文件是采用Python来配置的。由于Python3对Python2强制不兼容因素,这里推荐安装Python2最高版本(2.7):https://www.python.org/downloads/。
安装时,如果有添加Path的,直接勾上。如果没有,请确保将bin路径添加到Path中,便于后面方便执行Python命令。
安装CMake
FireBreath文件是用CMake来组织的,至于为什么?作者原话:“对于那些质疑我使用CMake是一个大缺陷的人,请你们先弄明白为什么要使用CMake,以及你有更好的代替方式的时候,再来谈论此问题。”
也对,在整个插件开发过程中,我们并不需要了解CMake是什么,更不需要知道它是如何工作的。你需要做的仅仅是:安装它!https://cmake.org/download/。这里需要叨叨几句,CMake下载时,你最好:
A. 下载x86版本
这里解释一下,可略过。FireBreath生成build文件时,需要使用类似于这样的命令:prep2013.cmd(prep2013x64.cmd为生成64位插件),一般为了兼容性,都使用prep2013.cmd,也就是x86这样就造成了CMake x64可能不能正常工作,实践证明确实是这样。B. 下载.msi版本
Msi版本相对于zip版本有一个好处,可以勾选Add Path,也就是添加\bin路径到系统环境。不用多解释了吧。
安装WiX Toolset
对于只是学习FireBreath玩玩的看官,不必安装WiX。因为WiX它的全称叫做Windows Install Xml。从VS2010开始,Microsoft Visual Studio(VS)已经开始推荐使用WiX制作.msi安装包,微软后续的IDE已经逐渐不支持“生成->发布”来制作msi。
WiX顾名思义,旨在以配置XML来生成安装包,其可定制性极高。这里推荐下载v3.6版本:http://wixtoolset.org/releases/,因为高版本WiX的\bin目录下缺失setupbld.exe,可能FireBreath是更改了生成策略,不需要该exe或者是有了其他替代品。无论如何,FireBreath框架中需要用到setupbld.exe。
WiX是静默安装的,一般安装在:C:\Program Files (x86)\WiX Toolset v3.6,而且会自动配置系统环境变量,具体见下表:
变量名 | 变量值 |
---|---|
WIX | C:\Program Files (x86)\WiX Toolset v3.6\ |
但,它并没有更改Path变量。
根据FireBreath官网上说法,需要将v3.6后的反斜杠“\”删掉。同时,为了后面方便使用candle.exe、light.exe,最好继续配置Path,添加 : %WIX%\bin
至此,万事俱备。(当然,认为你VS2010或者更高版本已经安装好了,笔者是VS2013)
开发前奏
python fbgen.py
(以管理员运行命令提示符)该命令用于配置插件信息,同时会在FireBreath-master根目录下生成文件夹:projects。见下图,具体描述,见下表:
prep2013.cmd
此命令将下载boost.tar.gz文件,同时在FireBreath-master根目录下生成build文件夹,并自动使用7-zip对boost.tar.gz文件解压归档。好了,至此基本完成框架配置。
点击FireBreath-master->build