使用FireBreath寫瀏覽器外掛程式(一)

2021-08-26 03:56:25 字數 958 閱讀 2194

一. firebreath介紹

firebreath是乙個跨平台和跨瀏覽器的外掛程式開發框架,通過firebreath寫的外掛程式可以執行在windows,linux和mac上的ie,firefox,chrome,opera,safari等瀏覽器上。

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物件(現在很多程式就是用這種方法擴充套件js功能,例如迅雷,qq等。

firebreath現在主要是支援桌面系統的瀏覽器,還不支援android,iphone等平台。firebreath實現採用了boost庫,也使用了異常處理機制,這導致firebreath在android和iphone等平台移植時會稍微困難一點,不過網上已經有android版的boost庫。我曾經專門問過richard bateman是否有計畫支援android,他表示暫時還沒計畫。其實在嵌入式裝置上的簡單的做法是:參考firebreath的架構,而不是使用其**,否則可能會出現效率問題。

FireBreath的簡單使用

本方法僅在本人開發環境上測試通過,win10 vs2015 python 2.7 cmake 3.10 boost 1.6.0 之前全部編譯過,也許實際用不到那麼多 firebreath 1.7 解壓flrebreath,按網上教程使用python建立工程,確定外掛程式名稱及相關資訊 將boost拷...

用FireBreath來編寫跨瀏覽器外掛程式

這是對於公司某個需求的臨時研究,最後經過簡單實驗放棄了這個方案,因為編寫外掛程式不能滿足需求。下面著重講一下firebreath編譯。git clone git firebreath dev git submodule update recursive init 我用的是cmake來編譯,編譯成vs...

瀏覽器訪問linux c寫的

使用 語言寫了 的 使用瀏覽器訪問,並且給瀏覽器寫會接受過來的資訊。但是在服務端不關閉 的話,瀏覽器會一直鏈結,不會顯示 寫的資訊。關閉了 瀏覽器才會顯示服務的寫會的資訊,後來使用的 進行了觀察,發現當 沒有介紹的200的時候會嘗試 0.9.說明瀏覽器會檢查服務的200的返回值.沒有接受到200 會...