XPCOM

出典: フリー百科事典『ウィキペディア(Wikipedia)』

出典: フリー百科事典『ウィキペディア(Wikipedia)』

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

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

MonoのCOM相互運用[編集]

MonoにおけるCOM相互運用はMS COMおよびXPCOMを基盤としている[1][2]

XUL/XPCOMベースのアドオン[編集]

MozillaはFirefoxThunderbirdにおいて、XUL/XPCOMを利用したアドオン拡張機能)のSDKを提供してきたが、XUL/XPCOMベースのアドオンの段階的な廃止を表明している。Firefox Quantum 57 では全面的に廃止され[3][4][5]Thunderbirdでも、バイナリXPCOMなど一部廃止されている[要出典][要説明]FirefoxやThunderbirdのアップグレードを行ったときに、いままで使用してきたアドオン(「旧式アドオン」と呼ばれる)が使えなくなる事象は、このことによる可能性が高い。[独自研究?]

Firefox Quantum の拡張機能では、XUL/XPCOMの代わりに Microsoft EdgeChromeOperaなどでサポートされている WebExtensions[6] を使用する。

脚注[編集]

  1. ^ The Mono Runtime | Mono
  2. ^ COM Interop | Mono
  3. ^ Firefox 57 (Quantum) for developers - Mozilla | MDN
  4. ^ Firefox アドオン技術の現代化 | Firefox ヘルプ
  5. ^ Porting a legacy Firefox extension | Extension Workshop
  6. ^ https://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バインディング)