xpcom可以看作是開源版的Microsoft COM,但是目前應用的范圍比較有限,主要是firefox的gecko引擎在使用。
xpcom不是瀏覽器的插件,而是瀏覽器本身。火狐瀏覽器就是一堆的xpcom組件構成的。在火狐裡面,基本上所有與瀏覽器相關的功能都被定義成瞭組件的形式,包括網頁間的跳轉,窗口管理,cookie 管理,書簽,安全,搜索,潤色等等的其他功能, 這些功能都是由組件的接口提供的。
chrome裡面沒有xpcom,沒有采用xpcom技術。chrome采用的是webkit引擎。
在javascript裡面使用xpcom組件的方式如下:
[javascript]
var cmgr = Components.classes["@mozilla.org/cookiemanager;1"].getService();
由於xpcom會引入很多累贅的代碼,因此受到瞭很多批評。據說gecko開發者正在減少xpcom的使用。
因此:除非你有很特別的理由,需要去改寫firefox本身(不是寫plugin),否則沒必要深究xpcom的細節。