基于Firebreath的浏览器插件制作

标签: firebreath 浏览器 插件 | 发表时间:2013-12-14 05:30 | 作者:houqingdong2012
出处:http://blog.csdn.net

1. 应用场景

    在web端需要通过远程桌面服务调用特定服务器上的应用程序,使用户在桌面点击应用程序的图标之后就可以自动启动对应的服务器上的软件使用,为了达到这种功能,要预先生成rdp文件,然后通过mstsc命令或者其它自己开发的应用程序来调用该rdp文件就可以启动远程应用程序。项目中采用的是自己开发的应用程序来调用该rdp文件,采用到JavaScript调用插件中的函数来实现这一功能,由于IE浏览器的特殊性,IE下采用的ActiveX插件,而对于其它浏览器则是采用Firebreath生成的dll文件。

    ocx或dll插件文件生成之后如何注册到用户的浏览器中呢?这时就需要一个Setup安装程序,采用Inno_setup制作,在安装过程中将 1)自己开发的启用远程桌面的exe程序文件、2) ocx或dll插件文件、3) 证书文件 这些文件安装在特定目录中,同时将启用远程桌面的exe程序的绝对路径写入注册表,这样就可以随意调用该程序启用远程应用服务了。同时在安装过程中通过bat脚本使用regsvr32命令将插件文件注入到浏览器中,待用户重启浏览器后就可以通过web调用我们插件中的特定函数来达到我们的目的,下面就来详细讲解一下利用Firebreath制作dll插件的入门知识。

2. 基于Firebreath制作浏览器插件

     Firebreath是一个跨平台和浏览器的插件开发框架,通过Firebreath写的插件可以运行在Windows、Linux和Mac的主流浏览器上,在使用Firebreath前请确保安装了git、python和cmake编译器,下面我们详细地一步一步的制作一个简单的插件。

    1> git clone最新的Firebreath代码

         

    2> 由上图可知我们下载的源码包位于C:\Users\Adimistrator目录下,将源码包拷贝到期望目录(注意:路径下不能存在中文字符,否则在编译的时候cmake会报找不到文件   的错误),新建插件,进行源码包,运行cmd

         

          执行:C:\Python27\python.exe fbgen.py

         

         填写插件相关的信息,包括插件名称、类型、描述、公司标识等,继续执行即可:

        

     3> 编译完成之后在Firebreath根目录下会产生一个projects的文件夹,里面就是刚建立的插件的工程源文件。

         

     4> 创建工程,在Firebreath根目录执行prep2010.cmd,2010是你的Vritual Studio的版本

         

     5> Prep2010.cmd执行完成之后,在Firebreath根目录下会出现build文件夹,里面会有FireBreath.sln,就是我们最终需要的VS的解决方案,打开即可。

         

          最后,VSOPlugin就是我们新建的项目:

        

    6> 添加自定义的函数的方式(制作的时候这里的名字变了,不过仍然是一样的流程)

          注:作为JSAPI对象中的一个方法,它是可以被JavaScript调用的,要添加自己定义的函数需要做以下的工作:

          1)  在JSAPI类中进行方法声明:

              

        2) 在JSAPI类的构造函数中注册自定义的方法

            

      3) 在cpp文件中实现自定义的方法

          

    4)  重新编译之后即可生成dll插件,到相应的目录中即可找到

         

  7> 利用regsvr32命令将生成的dll插件文件注册到浏览器中测试

       

   8> 在firefox下查看插件是否成功导入

        

    9> 编写JS页面调用测试

        

         页面调用测试:

       

        断点调试中的插件对象,可以看到对象中包含我们自己定义的get_name()方法

       

3.  相关参考资料链接

     官网: http://www.firebreath.org/display/documentation/FireBreath+Home

     其它相关博客: http://www.blogjava.net/xiaomage234/archive/2012/08/28/386428.html

4.  总结

     基本上插件的制作流程就如上所示了,同样本着给自己一个思路的概念,没有做深入的研究,将来碰到这类的应用,至少自己可以知道有这样一个思路可以实现,里面测试的函数也是很简单的,这个还是很考验c++的编程功底的。

     人生如棋,我愿为卒,前进虽缓,可谁见我曾后退一步!!

作者:houqingdong2012 发表于2013-12-13 21:30:41 原文链接
阅读:76 评论:0 查看评论

相关 [firebreath 浏览器 插件] 推荐:

基于Firebreath的浏览器插件制作

- - CSDN博客架构设计推荐文章
    在web端需要通过远程桌面服务调用特定服务器上的应用程序,使用户在桌面点击应用程序的图标之后就可以自动启动对应的服务器上的软件使用,为了达到这种功能,要预先生成rdp文件,然后通过mstsc命令或者其它自己开发的应用程序来调用该rdp文件就可以启动远程应用程序. 项目中采用的是自己开发的应用程序来调用该rdp文件,采用到JavaScript调用插件中的函数来实现这一功能,由于IE浏览器的特殊性,IE下采用的ActiveX插件,而对于其它浏览器则是采用Firebreath生成的dll文件.

利用firebreath开发跨浏览器插件

- - 开源软件 - ITeye博客
在研发ZCMS系统过程中,我们发现很多用户在上传截图时,需要先另存为图片文件然后再选择上传,过程操作复杂. 于是我们想通过用户直接粘贴图片到编辑器并上传. 要实现这一功能必须实现获取用户剪切板中的图片数据并保存到本地. 浏览器本身没有相应的功能,因此我们考虑到用浏览器插件的方式实现. 为了兼容各个浏览器,我们选择了frirebreath,实现插件在不同浏览器的通用.

Zookeeper浏览器工具和Eclipse插件分享

- - Taobao QA Team
         公司很多产品会使用zookeeper,比如Meta消息中间件,在测试的过程中,我们经常需要查询zookeeper里面的信息来精确定位问题. 目前项目中有开发团队自己写的浏览器node-zk-browser,是基于node.js的express.js框架和node-zookeeper客户端实现的,具体可参考 https://github.com/killme2008/node-zk-browser.

无需插件,浏览器内实时视频音频通信

- - 互联网的那点事...
到目前为止,计算机视频电话通常都需要借助 Skype等专门应用或 Flash插件,但 Voxeo Labs推出了一项无需安装插件便可在浏览器内进行实时视频和音频通信的技术. 利用自己的 Phono SDK,Voxeo Labs演示了一种借助 WebRTC技术进行实时视频和音频通信的方式. WebRTC是一个允许开发者利用Javascript API和 HTML 5开发实时通信应用的开源项目,目前已获得Google、Mozilla和Opera支持.

20款谷歌Chrome浏览器最佳插件

- - HTML5研究小组
据国外媒体报道,谷歌Chrome已经成为目前全球最流行的浏览器之一,最新版本Chrome 17具有良好的安全性能、书签和偏好同步功能,并继续强力支持HTML5. 自2009年底谷歌Chrome支持扩展插件无限定制之后,Chrome进入了更新的阶段,Chrome浏览器插件的数量在 短短的前14个月内从300个上升到11500个.

浏览器安全堪忧,插件是最大漏洞源头

- - IT经理网
关于浏览器安全,大多数人的第一反应是升级浏览器,但往往忽略了插件安全漏洞. 根据信息安全公司Qualys的统计,39%的送检计算机都存在严重的与浏览器插件有关的安全漏洞. 在欧美网购旺季即将到来的前夕,Qualys使用BrowserCheck扫描了140万台送检计算机,得出了以上的分析结果. 浏览器漏洞通常被用来向浏览网站(很多是被入侵的合法网站)的受害者下载恶意软件.

教你找出那个拖慢浏览器速度的插件

- - 极客范 - GeekFan.net
浏览器插件非常有用,但是插件会增加浏览器的内存占用量,让浏览器打开更慢,而且通常来说还会降低 浏览器的运行速度. 但是,如果想知道一个插件在你的系统上具体是什么情况,又该怎么做呢. 每种浏览器都提供了一种方法,可以查看插件的内存占用量,CPU占用和使用这个插件带来的启动延迟时间. 具体的信息取决于你所使用的浏览器.

25 +网页设计师和开发人员必须具备的浏览器插件

- linsen - 互联网的那点事
对于许多WEB设计师和开发者来说Firefox是不可逾越的,但是对于其他人来说Firefox却在吃Chrome的灰尘. 过去两年谷歌的Chrome发布以来让游览器的性能之战越来越激烈. Mozilla的开源产品在这期间经受住了时间的考验让Firefox迅速成为最常用的浏览器,超过了微软的IE游览器.

25MB的官方插件:Chrome浏览器接管查看微软Office文档功能

- - PingWest
大家都在 Chrome浏览器中查看过PDF文件,这是通过 Chrome内置的PDF查看器实现的,非常方便. 可是我们还经常会在网页上遇到.doc、.xls、.ppt等 微软Office文件,往往需要下载后用本地的Office软件查看,尤其是.ppt、.xls这样视觉效果比较复杂的文件. 如果你用过Chromebook的话,一定会倾心于该设备上的Chrome浏览器带来的流畅、高效的Office文件查看体验,跟PDF查看器是一样的效果.

Mac技巧之苹果 Safari 浏览器屏蔽网页里的 Flash,让它只能手动播放的扩展插件:ClickToFlash

- zypatroon - 苹果fans-中文 Apple Blog
    相信绝大部分苹果电脑 Mac OS X 系统用户都痛恨那个让 CPU 狂飙、让电脑发烫、让浏览器崩溃的玩意儿:Flash. 但很多网页,尤其是中国特色网站里大量使用 Flash. 今天就介绍一个苹果 Safari 浏览器里屏蔽 Flash 的扩展插件:ClickToFlash.     ClickToFlash 不是让 Safari 浏览器彻底不能显示 Flash,而是禁止它们自动显示/播放.