2012-08-17 107 views
0

我即將開始爲我公司的主要產品線開發Mozilla插件。我的印象是,我可以使用Gecko SDK構建,前面說過兩個主要修訂版本,這將覆蓋任何人合理使用的瀏覽器。我還假設這也將涵蓋Chrome和Opera(實際上檢查某人?)。Mozilla插件,我每次更新Gecko SDK時都需要重新編譯嗎?

不過,我只是讀的文件,我發現這一點:

對於壁虎版本2.0之前,您應該選擇的Gecko SDK版本要定位的Mozilla的最早版本。對於Gecko版本2.0及更高版本,由於不再支持跨版本兼容性,因此必須爲每個版本重新編譯組件。

有人告訴我,這並不意味着什麼,我想它的意思。這是否意味着我將不得不無限期地重新編譯每個Gecko版本的插件 - 即使在部署之後?這看起來不像是Mozilla的偉大團隊會給我們帶來的東西。

+2

您是否在Firefox擴展中詢問NPAPI插件或XPCOM組件?關於後者的文檔會談,你似乎是擔心原... – 2012-08-18 00:42:05

+0

@WladimirPalant NPAPI,我認爲壁虎SDK是爲NPAPI插件的SDK。 – 2012-08-18 19:16:26

+1

不,該SDK主要用於編譯XPCOM組件Firefox擴展之類的,文件似乎使它用於這個目標完全的假設。然而,NPAPI插件肯定可以使用舊的SDK版本進行編譯,並且可以繼續工作(否則Flash將停止每次Firefox更新)。 – 2012-08-18 20:13:53

回答

2

Gecko SDK至少有兩個不同的目的。引述documentation

壁虎SDK,也被稱爲的XULRunner SDK,是一組XPIDL文件,頭文件和工具,開發XPCOM組件,然後可以用反過來例如可以使用JavaScript從XUL訪問。

...

壁虎SDK包含了所有必要的工具和標題製作腳本化的NPAPI插件包括XPIDL編譯器/連接器和最新的npapi.h。

您從本頁引用的句子適用於SDK的主要目的:構建可供Firefox擴展使用的本機XPCOM組件。這些XPCOM組件可以訪問瀏覽器的內部接口,這帶來了接口穩定性的問題。從Gecko 2.0(Firefox 4)開始,這個問題就解決了,XPCOM組件只能用於一個Firefox版本。要使用不同的Firefox版本,需要使用更新版本的Gecko SDK重新編譯。

的文檔並沒有真正說清楚,但是這一切並不適用於NPAPI其中僅通過固定接口與瀏覽器插件溝通。我不確定還需要多少Gecko SDK才能編譯NPAPI插件,看起來它只有npapi.h和一些其他頭文件。這個文件並不完全是change often,這些改變大多侷限於常量。因此,在針對舊SDK版本編譯插件時沒有問題 - 只有副作用是您可能無法使用新的NPAPI功能。

這就是說,你應該能夠使用NPAPI SDK而不是壁虎SDK的。這是一個小得多的下載,專門用於創建NPAPI插件。 Gecko SDK中的文件基本上都是從NPAPI SDK複製的(請注意文件歷史記錄中的「Sync to npapi-sdk rNN」更改)。

+0

再次感謝。這是一個很好的答案。 – 2012-08-19 01:24:30

+0

此外,如果你沒有,你應該看一看FireBreath(firebreath.org)你挖得太遠NPAPI前;它抽象了很多你必須在插件中處理的問題,以及使IE和NPAPI兼容的插件工作。即使你決定不使用FireBreath,FireBreath社區也許是計算NPAPI的最佳資源 – taxilian 2012-08-19 23:02:34

相關問題