firebreath 在谷歌和火狐浏览器下的调试 以及打包
在寻找插件开发资料的过程中找到了一个开发浏览器插件的开源项目——firebreath
firebreath的安装以及测试我就不再叙述了,可以参考大神的文章 。 http://www.blogjava.net/xiaomage234/archive/2012/08/28/386428.html
下面我主要介绍一下调试和打包。
火狐下的调试:
这也是楼主主推荐的调试方法。firebreath配合火狐的调试简直可以说是浑然天成。如果让火狐可以调试firebreath的代码的话,需要对火狐浏览器进行如下的设置。
- 打开firefox浏览器,在地址栏输入 “about:config”。在搜索框中输入“plugins”,选择dom.ipc.plugins.enabled 设为false; (双击即可切换)
设置环境变量MOZ_CRASHREPORTER_DISABLE = 1 (如果没有的话,新增一个环境变量即可)
- 在代码需要调试的地方打上断点。点击 VS菜单栏的调试=>附加到进程。选择需要调试的页面。注意:进程一定是 firefox.exe,标题为测试页面的title。选择完即可进入调试状态,点击页面js的方法,触发firebreath中的方法,就会停止在断点处。结果如下图所示:

谷歌浏览器下的调试:
大多数情况下使用火狐浏览器就可以完成工作,但是有时候不知道什么情况,同样的代码在火狐下运行的很正常,但是一到谷歌下就出错。如寻找插件的位置。火狐下插件的dll大小写和生成的大小写是一致的,而谷歌却画蛇添足版的全部转化成了小写,如下图所示,同一个插件,打印出来的插件路径却不一样,此时在程序中对这段字符进行操作时就会出现错误。

考虑到国内大多数用户被360所毒害,而360使用的真是谷歌的内核,所以不得不考虑在谷歌下的各种问题。下面介绍在谷歌浏览器下调试的步奏。
- 先把打开这的谷歌浏览器全部关掉,然后用cmd进入谷歌浏览器的安装目录,如果机器上安装了git的话,可以直接手动进入谷歌浏览器的安装目录。右键 Gir Bash Here,即可快速进入当前目录的cmd模式。然后在cmd中输入 chrome.exe -plugin-startup-dialog 按下回车,chrome就会自动,此刻chrome就会进入 插件启动的状态,如下所示

- 接在在用命令行打开的chrome中,输入测试地址。就会弹出pid,如下图:

记住此pid。
- 接下来就和火狐的调试一样了,在vs中 调试=》附加到进程。选择 pid为在谷歌浏览器弹出的 pid的值的那个进程。确定后即可调试谷歌浏览器。
打包:firebreath的打包使用的是 Vix打包工具,只要到CodePlex上下载Vix开发包。然后再一次进入 firebreath根目录。重新运行一下 Prep2013.cmd firebreath会自动检测系统是否安装 Vix,如果暗转的话,就会在Project文件夹下对应的 插件目录下 生成 安装 工程。只要编译此安装工程即可 生成安装包。安装工程如下图所示:

所有的配置安装过程都在 Sources下的IDCardReaderInstaller.wxs文件,如果我们需要配置额外的 dll在安装包中的话,需要手动添加此dll进去,比如我需要把身份证读卡器的公用dll包含进去。那么就需要进行如下的配置
<Directory Id="PluginNameDir" Name="${FBSTRING_PluginName}">
<!--<Component Id="PluginNameDirComp" Guid="*">
<RemoveFolder Id="RemovePluginNameDir" On="uninstall" />
<RegistryValue
Root="HKCU"
Key="SOFTWARE\${COMPANY_NAME}\${PLUGIN_NAME}"
Name="Uninstall"
Type="string"
Value="${FBSTRING_PLUGIN_VERSION}"
KeyPath="yes" />
</Component>
<Directory Id="INSTALLDIR" Name="${FBSTRING_PLUGIN_VERSION}">-->
<Component Id="InstallDirComp" Guid="*">
<RemoveFolder Id="RemoveInstallDir" On="uninstall" />
<RegistryValue
Root="HKCU"
Key="SOFTWARE\${COMPANY_NAME}\${PLUGIN_NAME}\${FBSTRING_PLUGIN_VERSION}"
Name="Uninstall"
Type="string"
Value="${FBSTRING_PLUGIN_VERSION}"
KeyPath="yes" />
</Component>
<Component Id="UniqueComponentId" Guid="07538E54-1C3F-4E8F-AC7E-270660B1E4D1">
<File Id="uniqueFileId" Source="F:\FireBreath-IdCard\build\bin\IDCardReader\Release\sdtapi.dll" />
<File Id="uniqueFileId" Source="F:\FireBreath-IdCard\build\bin\IDCardReader\Release\mwrf32.dll" />
</Component>
<!--</Directory>-->
</Directory>
这样就会把sdtapi.dll和mwrf32.dll 包含到安装目录下。其它的节点的意思,可以到vix的官网上去查看各自表示的意义。
firebreath 在谷歌和火狐浏览器下的调试 以及打包的更多相关文章
- 谷歌、火狐浏览器下实现JS跨域iframe高度自适应的完美解决方法,跨域调用JS不再是难题!
谷歌.火狐浏览器下实现JS跨域iframe高度自适应的解决方法 导读:今天开发的时候遇到个iframe自适应高度的问题,相信大家对这个不陌生,但是一般我们都是在同一个项目使用iframe嵌套页面,这个 ...
- jQuery uploadify在谷歌和火狐浏览器下无法上传
原因: 由于jQuery uploadify是借助flash来实现上传的,每一次向后台发送数据流请求时,ie会自动把本地cookie存储捆绑在一起发送给服务器.但firefox.chrome不会这样做 ...
- innerText在谷歌、火狐浏览器下的使用
使用innerHTML.replace(/<.+?>/gim,'')代替innerText,简单正则替换一下
- 解决文件上传插件Uploadify在火狐浏览器下,Session丢失的问题
因为在火狐浏览器下Flash发送的请求不会带有cookie,所以导致后台的session失效. 解决的方法就是手动传递SessionID到后台. $("#fileresultfiles&qu ...
- laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的问题
遇到的问题: laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的问题(safari下也有同样问题); 解决办法: 给laydate绑定id; 解决前代码: <input ...
- 火狐浏览器下点击a标签时出现虚线的解决方案
1.兼容性问题 火狐浏览器下点击a标签时出现虚线 2.解决方案 a:focus { outline: none;}
- 关于火狐浏览器在开发调试过程中,出现javascript:void(0)的状态
关于火狐浏览器在开发调试过程中,出现javascript:void(0)的状态 由于火狐浏览器没有安装 Adobe Flash Player 19 NPAPI这个插件 安装好了之后就可以直接运行了
- 火狐浏览器下使用jquery修改img的src
onUploadComplete': function (file, data) { //$("#submit").removeAttr("disabled") ...
- 谷歌、火狐浏览器 缩放为80% 时,margin值才正确
声明:小白的笔记,欢迎大神指点.联系QQ:1522025433. 在网页布局中,通过 谷歌浏览器或火狐浏览器 预览时,发现我们定义的盒模型width,height,margin,padding 值都是 ...
随机推荐
- 【HTML/XML 9】XML中的DTD文件
导读:DTD是Document type definition(文档类型定义的缩写),是一套关于标记符的语法规则,它是XML文件的验证机制,数以XML文件的组成部分.XML文档是一种描述标记语言的语言 ...
- json 對象的序列化
var a={x:1,y:2} s=JSON.stringify(a); //s="{"x":1,"y":2}" p=JSON.parse( ...
- 查询数据库后台Block 的Sql存储过程
查询数据库后台Block 的Sql存储过程 SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO /*记录SQL Server的阻塞情况 wang 200 ...
- 【MySQl】MyISAM和InnoDB索引对比
部分内容转自:http://www.2cto.com/database/201211/172380.html 比较好的文章:http://www.cnblogs.com/hustcat/archive ...
- iOS之UIAlertView的使用
UIAlertView: 1.普通使用: //普通的alert UIAlertView *av = [[UIAlertView alloc]initWithTitle:@"title&quo ...
- sublineText
https://github.com/thinkpixellab/flatland { "color_scheme": "Packages/Theme - Flatlan ...
- maven auto-config 多环境自动打包
摘自:http://doc.okbase.net/bjhecwq/archive/118121.html maven有许多优秀的插件,最近在研究打包中替换多重环境的配置,同事介绍使用阿里的auto-c ...
- HTML5 CSS3简要教程
Web 设计师可以使用HTML4和CSS2.1完成一些很酷的东西.我们可以在不使用陈旧的基于table布局的基础上完成文档逻辑结构并创建内容丰富的网站.我们可以在不使用内联<font>和& ...
- Mysql 自定义随机字符串
前几天在开发一个系统,需要用到随机字符串,但是mysql的库函数有没有直接提供,就简单的利用现有的函数东拼西凑出随机字符串来.下面简单的说下实现当时. 1.简单粗暴. select ..., subs ...
- Cookie禁用了,Session还能用吗?
Cookie与Session,一般认为是两个独立的东西,Session采用的是在服务器端保持状态的方案,而Cookie采用的是在客户端保持状态的方案.Cookie分为两种,一种可以叫做session ...