XPCOMコミュニティに参加してください
XPCOM は Microsoft COM と同じクロスプラットフォームのコンポーネントオブジェクトモデルです。これには複数の言語バインディングがあり、XPCOM コンポーネントを C++ に加えて JavaScript、Java、Pythonで使用および実装することができます。XPCOM のインタフェースは XPIDL という IDL の方言で定義されています。
XPCOM は Firefox 拡張機能ではもはや利用できません。代わりに WebExtensions を使用してください。
XPCOM 自体は一連のコアコンポーネントとクラスを提供します。XPCOM コンポーネントの大部分はこのコアセットの一部ではなく、プラットフォームの他の部分 (例えば Gecko や Necko) によって提供されます。アプリケーション、または拡張機能を使用することもできます。
- Accessing the Windows Registry Using XPCOM
- Fun With XBL and XPConnect
- この文章では、XBL の応用である、XULウィジェットへのアクセスを可能にする簡単な XPCOMインターフェースについて述べます。 XBLのこのインターフェースを定義するという特徴は、自動補完を行う C++ オブジェクトへの XPConnectを介したインターフェースを定義するのに使用されます。 一度通常の XULテキストフィールドをこのインターフェースに結び付ければ、通常の JavaScript を用いて、オブジェクトの自動補完機能を呼び出すようになります。 この相互作用の基本的なモデルは次のとおりです:
- Generating GUIDs
- GUID は、Mozilla プログラミングで、XPCOM インタフェース (このタイプの GUID は IID と呼ばれています) やコンポーネント (CID) 、拡張機能やテーマを含むアドオンなどの実体のそれぞれの型を識別するために使われます。とはいえ、Firefox 1.5 からは、アドオンでは
extensionname@organization.tld
形式の ID で識別することができます(また、そうするべきです)。 - Generic factory
- XPCOM では、汎用ファクトリ は
xpcom/glue/nsIGenericFactory.h
にある機能を利用して生成されたファクトリのことを指します。 - Interfacing with the XPCOM cycle collector
- これは Firefox 3 の XPCOM に導入されたサイクルコレクタの簡単な概要です。既存の C++ クラスを XPCOM サイクルコレクションに加えるための変更を順を追って説明します。cyclical-ownership リークに困っているクラスがあれば、このページが役立つでしょう。
- Introduction to XPCOM for the DOM
- Fabian Guisset <fguisset@softhome.net>
- Setting HTTP request headers
- HTTP は Web の中核を成す技術の一つです。実際のコンテンツに加え、HTTP ヘッダによっていくつかの重要な情報が HTTP リクエストとレスポンスの両方で渡されます。
- Storage
- Storage は SQLite データベース API です。信頼できる呼び出し元、つまり拡張機能と Firefox コンポーネントのみが利用できます。
- The Thread Manager
- Using nsCOMPtr
- このドキュメントは、
nsCOMPtr
について書かれたすべてを集めたものです。もしあなたがnsCOMPtr
について疑問があり、このドキュメントでは分からないのであれば、 おそらくそれに答えられるドキュメントはないでしょう。XPCOM ニュースグループ、または他のベテランのnsCOMPtr
ユーザに尋ねる、あるいは実験して答えを見つける、などの別の手段で答えを得るしかありません。
- Weak reference
- In XPCOM, a weak reference is a special object that contains a pointer to an XPCOM object, but doesnot keep that object alive. If the referent object is destroyed before the weak reference, the pointer inside the weak reference is set to
nsnull
. - wrappedJSObject
wrappedJSObject
はXPConnectラッパで利用できることがあるプロパティです。利用できる場合、それはあなたに、ラッパによって隠蔽されたJavaScriptオブジェクトへのアクセスを可能にします。- XPCOM ABI
- XPCOM ABIは、XPCOMコンポーネントのバイナリインターフェースです。スクリプト言語(JavaScriptなど)によって書かれたXPCOMコンポーネントは、特に改変をしなくてもプラットフォーム(WindowsやOS Xなど)を越えて動作させられますが、コンパイルが必要な言語(C++など)で書かれたコンポーネントの場合、異なるプラットフォームで動かすためには再コンパイルが必要です。コンパイルされたXPCOMコンポーネントは多くの場合、「バイナリ」や「ネイティブ」などと呼ばれます。
- XPCOM guide
- These articles provide tutorials and usage documentation for XPCOM, including how to use it in your own projects and how to build XPCOM components for your Firefox add-ons and the like.
- XPCOM ownership guidelines
- ...自然なことです。もしあなたが一時的なオブジェクトを作ったのであれば、明らかにそれを破壊するのはあなたの責任です。それは確かに所有の徴候です。もしあなたがより長い生存期間を持つオブジェクトを作ったのであれば、あなたは所有権を失うまでそれを所有することになるでしょう。
- XPCOM reference
- This reference describes the interfaces and functions provided by the XPCOM library. In addition, it details the various helper classes and functions, as well as the components, provided by the XPCOM glue library. The contents herein are oriented primarily toward extension developers and people embedding XPCOM in other projects.
- XPCOM 言語バインディング
- XPCOM 言語バインディングは、以下の目的のために特定の言語と XPCOM との橋渡しを行います。
- xptcall FAQ
xptcall
は、低レベルの XPCOM メソッド呼び出しのための小さなライブラリです。プラットフォーム固有の C/C++ とアセンブラ言語のコードを使って実装されています。異なる言語間の呼び出しと異なるスレッドへのメソッド呼び出しを容易にするためのものです。 Mozillaをあらゆるプラットフォーム上で動作させるためには、このコードを移植する必要があります。
あなたの好きな方法でディスカッションに参加してください