web-dev-qa-db-ja.com

Firefox拡張機能とプラグインの違いは何ですか?

Firefoxにはプラグインと拡張機能があります。これらのアドオンの名前とタブが異なる理由を教えてください。それらは非常に異なるので、異なる名前が必要ですか?これらを異ならせるのは少し不自然だと思います。拡張機能には非常に多くの機能がありますが、プラグインと比較して何が欠けていますか?

22

違いは歴史的かつ現実的です。

  • プラグインはコンパイルされたロード可能なモジュールであり、元々は [〜#〜] npapi [〜#〜] ;から派生しています。それらはブラウザのプロセススペースの外に住むことができます(これはあらゆる種類の楽しい相互運用性の問題と脆弱性につながります)。これらの最も一般的な例はFlashとJava-両方ともサブウィンドウ( "ビューポート"または "キャンバス"(HTML5のcanvasではない)を要求します-それはまったく別のものです:a Webページのネイティブ部分))Webページ内で、ブラウザからほとんど独立した方法でそれ自体を処理します。
  • 拡張機能は主にJavaScriptと [〜#〜] xul [〜#〜] で記述されています。拡張機能はブラウザの一部として機能するため、JS-in-a-webpageよりも広いアクセス権限がありますが、それでもいくつかの制限があります。統合の最も一般的な方法は、FFの機能の一部にフックして、extendすることです。

したがって、プラグインと拡張機能は関連しているように見えるかもしれませんが、舞台裏では非常に異なるテクノロジーです。

Mozillaによると、プラグインはブラウザがメディアの再生などのコンテンツを表示するのに役立ちます。拡張機能は実際にブラウザに新しい機能を追加します。

ここで最初のいくつかの段落を参照してください: https://developer.mozilla.org/en/extensions

11

1つは、Firefoxと並行して実行されるプログラムです。彼らはキャンバスを手に入れ、キャンバスにペイントすると、Firefoxがそれをレンダリングします。注目すべき例:Flash、Java、QuakeLive。

もう1つは、Firefoxのjavascriptインタープリター/コンパイラーで実行されるプログラムです。これらはFirefoxの内部にアクセスでき、単なるキャンバスではないため、Firefoxの機能をより直接的に拡張します。また、オペレーティングシステムの基本的なサポートをそれほど必要としないため、移植性がはるかに高くなります。

どちらのアプローチにも長所と短所があり、さまざまなタスクを解決します。

5