Firefox plugin插件開發及衝擊響應實現

    這兩週一直在做Firefox插件的工作,以及一些衝擊響應模型的實現。

    工作基本分爲四部分:一插件開發,一開始還打算用ActiveX,後來BOSS說Firefox不太容易實現,轉至用靜態庫去實現firefox plugin。三天時間基本實現這個插件,開發週期很短,工作很順利,順利在vc6.0編譯npruntime(建議不要使用太高的版本xulrunner-sdk,否則會引入新問題,我使用1.9.0),實現scripting與javascript的交互。(https://developer.mozilla.org/en/Gecko_Plugin_API_Reference)(http://www.cppblog.com/epubcn/category/8842.html)。這裏有個注意的問題:plugin中不能使用new直接申請空間,必須使用np_memalloc()去申請。

     二,根據我們應用的模型,開發一個小程序去實現衝擊響應。前後臺都用到了以前沒有寫過的東西,後臺寫了幾個servlet(類似以前寫的action,問題不大),後又使用jni引入安全計算插件(以前沒用過,折騰了半天),前臺問題主要在對於jsp中變量與javascript的交互,以及以前沒有直接使用過純xhrrequest(我們使用封裝的dojo實現),原理一致,很快pass掉。這部工作主要驗證流程的可靠性。

     三,把衝擊響應模型添加到我們項目中,由於其中spring security的存在,登陸過程的兩步化,使困難有些大,不過都過去了。其中,第一步不是實質性的登陸,只是讓其屏蔽了過濾器,容易實現。最麻煩的是第二步和第一步有一個數據需要傳遞,爲了這個問題奮鬥了兩天,以前考慮用session實現,在第二步位於過濾器很深的層次,無法直接得到session,要改需要修改5,6個類,太麻煩了。甚至和boss商量用數據庫讀寫,最後在boss提醒下,利用了一個filter中變量(AuthenticationDetails的重新實現)進行session的提取,並在之後讀取之。之後又發現一個問題:jni對於dll使用是使用包名+函數名去定位的,以至於我將工程名改了以後一直彈出loadlibary()V的錯誤。(stackoverflow上有個厲害解答。http://stackoverflow.com/questions/1403788/java-lang-unsatisfiedlinkerror-no-dll-in-java-library-path)

     四,重新優化流程中的錯誤處理,將一些數據庫相關的過程進行仔細處理,這也是我現在在做的。另外,我今天重新將插件代碼仔細看了,很是佩服,源代碼寫得很漂亮,一些邏輯仔細推敲很有嚼頭,很好的實現瞭解耦。並且把插件實現了能夠下載安裝(注意壓縮時不要對存放install.rdf和plugins的文件夾壓縮,應對提到的兩部分進行壓縮:)。

     雖然寫了這麼多,可是自己總是回顧這短時間究竟進步什麼了,總是一頭茫然,繼續量變吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章