2

Native Clientを初めて使用しています。プラグイン/拡張機能も新しくなりました。これは、プラグイン/機能拡張がいくつかの点でのNaClよりも「より良い」であることを私を打つ:Google Chromeのネイティブクライアントとプラグインまたは拡張機能の比較

  1. は、昔ながらのDLLまたは.soのを生産するためにどこか/とにかくプラグイン/拡張機能をコンパイルすることができます。 NaCLは、NaClツールチェーンによってのみ生成されるバイナリを必要とします。

  2. プラグイン/拡張機能は、ブラウザ間で移植可能です(例:FIrefox以上、Chromeでも動作するはずです)。それがすべて本当だ場合のNetscape 3で

を導入事実上の標準に準拠し、このプラグイン/拡張するので、その後のプラグイン/拡張オーバーのNaClの利点は何ですか?

+0

ヒント:Windowsは唯一のオペレーティングシステムではありません;) –

答えて

7

単語:セキュリティ。 NPAPIプラグインはアンアンドボックス可能です。それらはネイティブコードであり、プロセス外で実行され、ブラウザのサンドボックスの外で実行されます。つまり、マシン上で何かを行うことができます。

NaClは、Chromeのサンドボックス内で実行され、明確に定義されたAPIセットにのみアクセスできます。賢明なコンパイルトリックは、コードが(意図的にまたは偶然に)悪意を持って信頼できないメソッドを実行して起動したり開始したりしないようにします。

http://www.chromium.org/nativeclient/getting-started/getting-started-background-and-basicsは、相違点の概要を示す優れた資料です。 NaClが達成しようとしていることのアイデアを得るために、少なくともそれをスキミングすることをお勧めします。

+0

マイクさん、ありがとうございました。 –

+0

まだ、私はそれを取得しません。結局のところ、実行しているコードなので、セキュリティ上のリスクはありません。さらに、NaClはプラグインとして実行されます。だから、私が言うように、私はそれを取得しません。 –

+0

@PeteWilson:セキュリティ上のリスクはA)あなたのコードにバグがあり、B)あなたのコードが悪意のあるコードであること(他の人があなたの内線を使用する予定がある場合)です。また、MetroモードでChromeを実行しているときにNPAPIが動作しません。 – Brian

7

まず「プラグイン/拡張機能」と言っていますが、拡張機能とNPAPIプラグインはが完全にです。 NPAPIプラグインはバイナリで、(あなたが言ったように)クロスブラウザです。拡張子はブラウザごとです。各ブラウザには独自の拡張APIと機能がありますが、一般にHTML/CSS/JSで記述されています。

あなたの疑問にお答えします:他の答えに記載されている非常に重要なセキュリティ面に加えて:プラットフォームの移植性。描画、イベント処理、サウンド再生などをNPAPIで行いたい場合は、Windows、Mac、Linuxの3つの全く異なる実装を記述する必要があります。また、プラグインを別々に3つ配布する必要があります。 NaCl/Pepperには、すべてのものに対してプラットフォームに依存しない抽象があります。

+0

ありがとう、ありがとう。私はドキュメントでプラットフォーム中立な抽象化についての部分をキャッチしませんでした。非常に重要です、確かに。 –

関連する問題