web-dev-qa-db-ja.com

アドオン、プラグイン、拡張機能の正確な違い

プラグイン、アドオン、拡張機能の正確な違いは何ですか?私はこれについて多くのことを読み、混乱しました。たとえば、次の4つの定義を参照してください。

1-fire-foxは、「アドオンは拡張機能、テーマ、およびプラグインの総称です」( https://support.mozilla.org/en-US/questions/790919 を参照)

2-www.Differencebetween.netは、「プラグインとアドオンは単なる拡張機能です...プラグインは、フラッシュプレーヤーのようなサードパーティソフトウェア(特定のプログラムと対話する)を指すときに通常使用される用語です。 。

3-ウィキペディア( https://en.wikipedia.org/wiki/Plug-in_%28computing%29 )は、プラグインが廃止されることを示しています。

4-別のWebサイトで、プラグインはアドオンよりも大きく、アドオンの概念で構成されていることを読みました。

また、 firefoxアドオン対拡張機能対プラグイン および http://colonelpanic.net/2010/08/browser-plugins-vs-extensions- the-difference /

しかし、特にプラグインがユーザーの同意によって自動的に実行され、アドオンが手動でインストールされるfirebreathでこれらの違いを理解したいと思います。また、アドオンがfire-foxのxpiのような独立したファイルの形式である間に、プラグインはhtmページに埋め込まれていると思います。

違いが生じるこれらの3つの概念の正確、包括的、正確な定義をいただければ幸いです。

21
H. Aqjn

一般的な経験則:

プラグイン

Webブラウザーについて話すとき、プラグインはNPAPIまたは同様のプラグインについて話します。これはページに固有です。 IEはそれ自体「プラグイン」をサポートしませんが、同様の機能を満たすことができるactivexコントロールがありますが、拡張機能に似たBHO(Browser Helper Object)ActiveXコントロールもあります。したがって、私たち(FireBreathチーム)は通常、「プラグイン」という用語を使用してNPAPIプラグインのように機能するものを指し、「拡張機能」という用語を使用して典型的な拡張機能(firefox XPI、Chrome CRXなど)。

プラグインは自分がいるページについてのみ知っています。ブラウザや他のページに読み込まれているものについては何も知りません。

プラグインは実際にネイティブコードを実行するため、多くのセキュリティ問題の原因となっています。これは彼らに対する多くの差別につながりました-それの多くは当然です。このため、またNPAPIは首に痛い思いをするため(FireBreathが作成されたため)、ほとんどのブラウザーはプラグインを段階的に廃止しようとしています。問題を解決する他の方法がない限り、プラグインは決して使用しないでください。

そうは言っても、それらが唯一の選択肢である場合はたくさんあります。

拡張機能

拡張機能はブラウザ固有のものであり、ブラウザごとに少し異なりますが、ブラウザの全体的な状態について詳しく知ることができる傾向があります。それらは自動的にページに追加されたり、ページとは別にアクセスしたりすることができます。

アドオン

アドオンは、より多くの異なることを意味するために使用される一般的な用語です。それが実際に何を意味するかは、誰が話しているかによって異なりますが、mozillaの定義はおそらく他のものと同等です。コンテキストに関係なく、Webブラウザに機能を追加するものであれば何でもかまいません。

主な違い

拡張機能は、インストールされると自動的になる傾向があります。プラグインは、2つの方法のいずれかでインスタンス化されます。1)WebページのHTMLの<object>または<embed>タグによって、または2)ブラウザがMIMEタイプのハンドラーとして登録されているためサポートしていません。

ファイアブレス

FireBreathはプラグインを扱います。通常のブラウザ拡張機能とは関係なく、プラグインのみです。 Javascriptフレームワークではなく、C++フレームワークであり、Webページ内から使用できる機能を追加できます。通常、FireBreathプラグインは<object>タグ内から使用されます。

FireBreath post-NPAPI

ご存じかもしれませんが、ChromeはNPAPIプラグインのサポートを廃止し(バージョン45の時点)、Firefoxはバージョン52の時点でサポートを終了しました(バージョン52の延長サポートリリースを除く。別の年)。 FireBreath 2.0は現在、いくつかの企業で実稼働で使用されており、ヘルパー拡張機能を介してネイティブメッセージング経由でGoogle ChromeおよびFirefoxで動作できる「プラグイン」(実際にはプラグインではなく、同様に動作します)を生成できます。主な制限は描画です。ネイティブメッセージングを介してブラウザに直接描画する方法はありません(まあ、良い方法ではなく、Windows以外のプラットフォームではまったく方法がありません)。

最終的には、FireBreath 2.0のネイティブメッセージングブリッジ上でCanvas/WebGLを使用して描画するための抽象化のサポートを追加する可能性がありますが、まだ行われていません。率直に言って、私はそれを必要としないので、私はそれをすることを気にしませんでした。 FireBreathはオープンソースフレームワークであり、残念ながら過去数年間ユーザーから十分なサポートを受けていないため、ドキュメントは少し時代遅れであり、まだ行われていない小さなことがたくさんあります。

ネイティブメッセージングメソッドは拡張機能に依存しています-これは主にすべての人を混乱させるために行いましたが、Google ChromeのページからFireBreathプラグインと通信できるようにする唯一の方法でもあったためですFirefox。

*(最終更新日:2017年3月6日; Firefox 52は明日リリースされる予定です)

それが役に立てば幸いです。こちらもご覧ください:

13
taxilian