Preface

このガイドについて

Gecko プラグイン API リファレンスは Netscape Gecko プラグインに対するアプリケーションプログラミングインターフェイス (API) を説明しており Firefox、Mozilla、Netscape 6+ などのような Gecko ベースのアプリケーションに対するプラグインを作成するためのこれらのインターフェイスの使用法についての情報を提供します。

プラグインの基礎内の全体的な序文やプラグイン開発概観という題名がつけられた章でガイドが始まります。初期化と破棄ストリームURLのような特定のプログラミングの主題に関する一連の章ではプラグインの作成や処理に関する技術的な側面や技術について更なる詳細を提供します。

ガイドの後半の API リファレンスでは主に二つに分けられ、プラグインサイドのプラグイン APIブラウザサイドのプラグイン API、および構造体定数についてのさらなるリファレンス資料となります。

Gecko プラグインについては初めての開発者が API に習熟し開発過程に参加できるように構成されています(例えば、描画とイベント処理)。しかしプラグイン開発者が必要な API リファレンス資料にすぐにアクセスできるようにも構成されています。

誰がこのガイドを読むべきか

Gecko プラグイン API リファレンスはプラグイン開発者向きです。それはプラグインの基本的な概観やブラウザ内の動作の仕方を提供するものの、このガイドではプラグインの動作の仕方、メディアの処理や表示の仕方やプラグインソフトウェアの使用を支えるブラウザの基本的な構造を理解していることを前提とします。

アプリケーションプログラミングインターフェイスの使い方を知っていて、プラグイン、コンポーネントやアドオンのようなブラウザソフトウェアの開発を経験したことがあり、C/C++、ライブラリの作成に使われている言語や与えられているすべての例で使われている言語に精通していることもこのガイドでは前提とします。

プラグインソフトウェア開発キット

プラグインソフトウェア開発キット (SDK) は Gecko プラグイン開発者に利用可能です。この SDK は Mozilla ソース内の modules/plugin/tools/sdk/ 下に置かれています。Mozilla ソースツリー内のそれを使ったり、やりたければそこでそれをビルドしてツリーの外でそれを使うことができます。いずれの場合にせよ、プラグインの開発を始めるには Mozilla ソースツリーが必要です。ウェブベースのソースビュアーを使ってプラグイン SDK のサンプルやソースコードを見ることもできます: modules/plugin/tools/sdk/

SDK は Netscape 2.x から始まる Netscape ブラウザに対して元々開発された API に基づいています。Netscape 3.x や Netscape 4.x がリリースされたときにいくつか追加されました。現在の SDK は Mozilla コードベースに関連した主要な変更を反映しています。プラグインのスクリプト化可能性に対する LiveConnect はもはやサポートされず、現在のプラグインは再びスクリプト化可能にするために少し修正しなければならないはずです。プラウザのサービスは現在サービスマネージャへのアクセスを通してプラグインからアクセスできます。

SDK は実際に Mozilla ソースツリー全体がなくビルドしなくても Mozilla コードベースで動作する完全なプラグインの作成を助けることを目的としています。

Common フォルダには NPAPI メソッドの書きかけの実装が含まれています。このフォルダ内でファイルを修正する必要は無く、それらをあなたのプロジェクト内に含めるだけです。This is not necessary though, some samples or plug-in projects may use their own implementations, the files in this folder are just an illustration of one possible way to do that.

現時点で Samples セクションには以下のプラグインのサンプルが含まれています:

基本的なプラグイン

プラグイン DLL で必要最低限のものを示します。それはプラグインに対して 'Hello, World' だけをします。基本的なプラグインはプラグイン DLL の起動の仕方や NPAPI メソッドの呼ばれ方の実例を示します。それは自分自身のプラグインを書くためのとっかかりのテンプレートとして使われます。

単純なプラグイン

このプラグインの例は Mozilla コードベースの特徴に対する仕様の実例を示します。それは JavaScript を通してスクリプト化可能でブラウザによって提供されるユーザサービスを使っています。

単純なプラグイン内で XPCOM インターフェイスが実装されているので Mozilla ブラウザはその機能を認識しています。プラグインはネイティブウィンドウ内で描画しません。しかし動作の結果を表示するために JavaScript ボックスをかなり使っています。それゆえ、このサンプル内で異なるプラットフォームに対する分けられたプロジェクトはありません。

スクリプト化可能なプラグイン

さらにもう一つのプラグインのスクリプト化可能性です。スクリプト化可能なプラグインは JavaScript から呼ぶことのできるふたつのネイティブなメソッドを実装しているので、それは異なる主要なプラットフォームに対して異なるプロジェクトを使っています。

ウィンドウを持たないプラグイン

ウィンドウを持たないプラグインはネイティブなウィンドウのメッセージ機構を使わず描画や他のタスクに対する GUI メッセージを受け取るのに NPP_HandleEvent にもっぱら依存しています。このプラグインは単に占めている領域内に灰色の長方形を描画します。

スクリプト化可能なプラグインのサンプルにはクロスプラットフォームなタイプライブラリ (XPT) ファイルが作成されプラグイン DLL と一緒に Mozilla プラグインディレクトリ内にそれらが置かれていることが必要です。(Mozilla 1.0 や Netscape 6.x の前のブラウザとの後方互換性のために代わりに Components ディレクトリ内にタイプライブラリファイルを置かなければなりません。タイプライブラリやプラグインのパスの情報についての更なる情報に関しては、「プラグインの基礎」の章のプラグインの検出を参照してください。)

Mozilla が新しい .xpt ファイルを認識しているか検証するために、作成されたファイル、xpti.dat、タイプライブラリがリストされた場所の中を見ることができます。必要ならば、新しい XPT ファイルやプラグインソフトウェアを見つけるために netscape.plugins.refresh() を呼ぶことができます。

プラグイン開発者はデバックの目的のために Windows 上の Mozilla で現在実装されている例外捕捉機構を切ることが役に立つと思うかもしれません。Windows の例外処理を切るためには、prefs.js に次の行を追加してください:

user_pref("plugin.dont_try_safe_calls", true);

ドキュメントのタグと貢献者

 このページの貢献者: Nog, Okome
 最終更新者: Nog,