firebreath 在谷歌和火狐瀏覽器下的調試 以及打包


在尋找插件開發資料的過程中找到了一個開發瀏覽器插件的開源項目——firebreath

firebreath的安裝以及測試我就不再敘述了,可以參考大神的文章 。 http://www.blogjava.net/xiaomage234/archive/2012/08/28/386428.html

 

下面我主要介紹一下調試和打包。

火狐下的調試:

  這也是樓主主推薦的調試方法。firebreath配合火狐的調試簡直可以說是渾然天成。如果讓火狐可以調試firebreath的代碼的話,需要對火狐瀏覽器進行如下的設置。

  1.  打開firefox瀏覽器,在地址欄輸入 “about:config”。在搜索框中輸入“plugins”,選擇dom.ipc.plugins.enabled 設為false; (雙擊即可切換)
  2.  設置環境變量MOZ_CRASHREPORTER_DISABLE = 1 (如果沒有的話,新增一個環境變量即可)

  3.  在代碼需要調試的地方打上斷點。點擊 VS菜單欄的調試=>附加到進程。選擇需要調試的頁面。注意:進程一定是 firefox.exe,標題為測試頁面的title。選擇完即可進入調試狀態,點擊頁面js的方法,觸發firebreath中的方法,就會停止在斷點處。結果如下圖所示:

谷歌瀏覽器下的調試:

  大多數情況下使用火狐瀏覽器就可以完成工作,但是有時候不知道什么情況,同樣的代碼在火狐下運行的很正常,但是一到谷歌下就出錯。如尋找插件的位置。火狐下插件的dll大小寫和生成的大小寫是一致的,而谷歌卻畫蛇添足版的全部轉化成了小寫,如下圖所示,同一個插件,打印出來的插件路徑卻不一樣,此時在程序中對這段字符進行操作時就會出現錯誤。

考慮到國內大多數用戶被360所毒害,而360使用的真是谷歌的內核,所以不得不考慮在谷歌下的各種問題。下面介紹在谷歌瀏覽器下調試的步奏。

  1. 先把打開這的谷歌瀏覽器全部關掉,然后用cmd進入谷歌瀏覽器的安裝目錄,如果機器上安裝了git的話,可以直接手動進入谷歌瀏覽器的安裝目錄。右鍵 Gir Bash Here,即可快速進入當前目錄的cmd模式。然后在cmd中輸入 chrome.exe -plugin-startup-dialog 按下回車,chrome就會自動,此刻chrome就會進入 插件啟動的狀態,如下所示

  1. 接在在用命令行打開的chrome中,輸入測試地址。就會彈出pid,如下圖:

記住此pid。

  1. 接下來就和火狐的調試一樣了,在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的官網上去查看各自表示的意義。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM