XPCOM (Cross Platform Component Object Model) は、Mozillaプロジェクトにおいて開発されているクロスプラットフォームなソフトウェアコンポーネント技術である。マイクロソフトのComponent Object Model (MS COM) のオープンソース実装に相当する。XPCOMはC++で実装されており、Linux、Windows、macOSという主要なプラットフォーム上で動作する。複数の言語バインディングが提供されており、C++の他に、JavaScript、Java、Python等の実装が存在する。XPCOMのインタフェースには、XPIDLと呼ばれるインタフェース記述言語 (IDL) が用いられている。

XPCOMにはコアとなるコンポーネントとクラス群が一緒に提供されている。例えば、ファイルやメモリの管理、文字列や配列などの基本データ構造などがこれに含まれる。しかし、ほとんどのXPCOMコンポーネントは、コア以外の部分で提供されている。たとえば、Geckoレンダリングエンジンなどがこれにあたる。

MonoのCOM相互運用 MonoにおけるCOM相互運用はMS COMおよびXPCOMを基盤としているThe Mono Runtime | MonoCOM Interop | Mono。

XUL/XPCOMベースのアドオン MozillaはFirefoxやThunderbirdにおいて、XUL/XPCOMを利用したアドオン(拡張機能)のSDKを提供してきたが、XUL/XPCOMベースのアドオンの段階的な廃止を表明している。Firefox Quantum 57 では全面的に廃止されFirefox 57 (Quantum) for developers - Mozilla | MDNFirefox アドオン技術の現代化 | Firefox ヘルプPorting a legacy Firefox extension | Extension Workshop、。

Firefox Quantum の拡張機能では、XUL/XPCOMの代わりに Microsoft Edge、Google Chrome、Operaなどでサポートされている WebExtensionshttps://developer.mozilla.org/ja/Add-ons/WebExtensions を使用する。

脚注

関連項目 Mozilla Gecko XUL XULRunner XPConnect(JavaScript用XPCOMバインディング) JavaXPCOM(Java用XPCOMバインディング) PyXPCOM(Python用XPCOMバインディング) RbXPCOM(Ruby用XPCOMバインディング) PlXPCOM(Perl用XPCOMバインディング)

外部リンク XPCOM - Mozilla | MDN XPCOM reference - Mozilla | MDN mozdev books:8.XPCOM XPCOM XPCOM資料 Gecko Embedding API Reference

Gecko組み込みの基礎 XPCOMリファレンス まじらもじら:埋め込み用API

dW:XPCOM 第1回 XPCOM入門 dW:XPCOM 第2回 XPCOMコンポーネントの基本 dW:XPCOM 第3回 XPCOMのセットアップ dW:XPCOM 第4回 dW:XPCOM Part 5: Implementation