2009年10月3日 星期六

什麼是NPAPI和ActiveX?

我在前兩個星期po過Google Chrome Frame的相關文章,之後過沒幾天我又看到了這一篇文章「Chrome Frame, Not Just for Internet Explorer」,真是讓我覺得非常驚訝。我還以為Google Chrome Frame只能用在IE上面咧,後來才知道還有NPAPI這種東西。

大家都知道這些主流的瀏覽器(Internet Explorer, Firefox, Opera, Google Chrome, Safari)都有一大堆的外掛,像是Flash, PDF...等。可是應該很少人想過,這些外掛程式是怎麼跟瀏覽器互相溝通的呢?NPAPI和ActiveX就是建構在這些瀏覽器與外掛程式之間的介面。ZDNet有一篇文章稍微介紹了NPAPI和ActiveX之間的關係:

ZDNet Taiwan - IE對手發展ActiveX替代技術 - 新聞 - 企業軟體

微軟的對手陣營希望加強外掛程式(plug-ins)的功能,以媲美Internet Explorer瀏覽器運用微軟ActiveX技術所提供的功能。這麼一來,網頁外掛程式,如Macromedia動畫軟體Flash這類第三方公司製作的應用程式,未來的發展可能受到影響。

...略

除微軟IE外,其他的瀏覽器長期以來一直倚賴NPAPI(網景外掛應用程式設計介面)來啟動外掛程式。Mozilla基金會希望,藉更新NPAPI,能直接解決瀏覽器的安全顧慮。

而BNext也曾經提到了NPAPI這個介面:

火狐開始集結反對微軟力量

值得注意的,擴充套件與外掛模組是不一樣的。擴充套件(Extensions)與外插模組(Plugins,別稱:插件、插入程式)以及外掛程式(Trainer)最大區別,在於所謂Plugins 是九○年代藉由 Netscape 所制定的一套介面標準 (NPAPI),讓協力廠商能夠藉以製作出加強瀏覽器功能的輔助程式,其目的與出發點其實是和擴充套件相似的,例如Realplayer、Arcobat Reader。

所以ActiveX是專屬於Internet Explorer的外掛介面,而NPAPI則是除了Internet Explorer之外的瀏覽器均可支援。不過大家一定沒想到在IE5.5 SP2以前,也有支援過NPAPI介面耶,「Description of Internet Explorer Support for Netscape-Style Plug-ins」這篇KB就描述了IE5.5 SP2之前的支援情形。

NPAPI_ActiveX

這也總算讓我了解為什麼在安裝Flash Player的時候,總是要IE安裝一次,非IE的又要安裝一次的原因了。

參考資料:
最近跟Google有關的一些軟體
Chrome Frame, Not Just for Internet Explorer
NPAPI - Wikipedia, the free encyclopedia
ActiveX - Wikipedia, the free encyclopedia
ZDNet Taiwan - IE對手發展ActiveX替代技術 - 新聞 - 企業軟體
火狐開始集結反對微軟力量| 數位時代 Beta2.0
Description of Internet Explorer Support for Netscape-Style Plug-ins
Adobe - Adobe Flash Player

沒有留言: