web-dev-qa-db-ja.com

ブラウザプラグインの作成方法は?

Chrome、Safari、Operaなどのブラウザー用のブラウザープラグインを作成する手順に興味があります。ここでは特にWindowsについて考えており、C++で作業することをお勧めします。

プロセスを詳しく説明するツールやチュートリアルはありますか?

:私は拡張機能や「アドオン」について言及していません。 FlashとAdobe Readerが特定のコンテンツタイプを処理するためのプラグインを持っている方法に似たプラグインについて言及しています。

35
Nathan Osman

他の人が指摘するように、それらのブラウザのプラグインは [〜#〜] npapi [〜#〜] を使用して記述されています。

注:FirefoxとChromeはほとんどのプラグインをデフォルトで設定します すぐにクリックして再生する 、Chromeを計画しています NPAPIを完全に廃止 。この時点では、新しいプロジェクトのNPAPIは推奨されません。

NPAPIを使い始めるためのリソース:

ただし、NPAPI自体は比較的低レベルですが、それを支援するツールとフレームワークがあります。

  • FireBreath -プラグイン用のクロスブラウザ、クロスプラットフォームフレームワーク
  • Nixysa -NPAPIプラグインのグルーコードを生成します
  • [〜#〜] juce [〜#〜] -プラグインのサポートも提供するアプリケーションフレームワーク
  • QtBrowserPlugin -Qtベースのブラウザプラグインフレームワーク
41
Georg Fritzsche

私はGeorgによってリストされたいくつかのフレームワークを調査しました、ここに私が得るものがあります:

  1. FireBreath。私はそれが利用可能なほぼ最高のものだと思います。 FireBreathを使用して、クロスプラットフォームのブラウザープラグインを数日で作成できます。私はいくつかの短所を見つけました:それはWindowsでutf-8文字をサポートしません。たとえば、ファイル名に漢字が含まれていると、そのファイルの内容を読み取ることができません。ブースト/ロケールがこの問題を解決できると思います。ただし、FireBreathにはブースト/ロケールは含まれていません。はい、外部ブーストを使用できますが、構成と調整に数日を費やしましたが、Windowsでコンパイルできません。著者はcmakeを使用してコードとサブプロジェクトを組織化します。そして彼は多くのバットまたはシェルスクリプトとcmakeマクロを作成しました、それを理解して設定することは非常に難しいです。つまり、FireBreathで現在提供されていない機能が必要な場合は、運が悪いため、新しい機能を追加するのは非常に困難です。

  2. ニキシサ。活発に開発されているとは思いません。ドキュメントが貧弱です。そして、wikiページのコメントから: https://code.google.com/p/nixysa/wiki/HelloWorldWalkThr ユーザーがまったく助けを得ることができず、それを取得するのに問題があったことがわかりますWindowsで実行

  3. ジューク。ブラウザプラグインを作成するためのものではありません。 Linuxには対応していません。著者はNPAPIが死ぬと考えているため、Linuxをサポートしたり、新しい機能を追加したりする計画はありません。

  4. QtBrowserPlugin。 QT 4.5以降のドキュメントには記載されていません。別の言葉では、それは維持されません(そしてQt 5.0から削除されます)

詳細がわかり次第、この回答を更新します。

更新:Chrome削除[〜#〜] npapi [〜#〜]サポート。将来的には、ブラウザからのサポートが不足しているため、C++でプラグインを作成することがますます難しくなっています。

5
Tyler Long

Netscapeベースのブラウザー、Chrome、Safari、およびOperaはNPAPIプラグインシステムを使用します。NPAPIプラグインの作成方法は https://developer.mozilla.org/enで確認できます。/Plugins および http://code.google.com/chrome/extensions/npapi.html

2
Ming-Tang

Qtをご存知であれば、ブラウザプラグインの実装を容易にするクラスがいくつかあります。

0
Henrik Hansen