2009-09-16 63 views
3

我有一些代碼位於瀏覽器中,併爲IE(COM/ActiveX)和Firefox(NPAPI)編寫了C++插件。是否可以在Safari(Mac OS X)中加載NPAPI插件?

我現在已經拿到在Mac OS X上的代碼工作,我發現了一些input在蘋果的網站,但它是用Objective C.

我也讀到SIMBL,但似乎對付目標C只有代碼,不是嗎?

因此,這裏是我的問題:

  • 是否有可能以編碼野生動物園(重新使用我的Firefox插件NPAPI將是巨大的)一個純C++插件?

  • 如果這是不可能的,有沒有辦法使用一個客觀的C插件作爲一些C++代碼的加載器?

我在Mac OS共小白,甚至不有一個蘋果箱周圍的混亂,因此非常通用的問題。

感謝

回答

9

的NPAPI插件機制是在MacOS瀏覽器插件的標準機制(和Linux - 一切IE以外真的) - 如果你使用NPAPI插件將工作在Safari,Firefox和歌劇。他們也將在32位和64位Safari中工作。假設你的代碼沒有假設它在同一個NPAPI代碼中運行的瀏覽器應該可以在所有瀏覽器中工作(我已經看到「NPAPI」插件可以盲目的信仰動態地解析XUL相關函數,儘管NPAPI只能被Firefox使用,儘管它是或多或少每個非IE瀏覽器的標準插件格式)。

與SIMBL一樣,「插件」濫用MacOS APIs設計用於獨特(但重要)的目的,以任意將其自己的代碼注入Safari地址空間 - 當人們使用這些(誤導人們相信它是安全的時候)穩定,並且在重大更新之後經常停止工作(在極端情況下,Leopard「藍屏死機」是因爲使用APE的Logitech執行類似於SIMBL的操作)。

+0

嗯,非常感謝您的回答,很高興我能夠回收我的NPAPI插件。 – Vinzz 2009-09-16 08:35:49