Advertisement

More Related Content

Slideshows for you(20)

Advertisement

せっかくだから俺はこの NPAPI の話をするぜ

  1. せっかくだから俺はこの NPAPI の話をするぜ Naruto TAKAHASHI(tnaruto@gmail.com) Gecko Study meeting 2013/09/30
  2. はじめに • “Gecko” の勉強会ですが、ソースを見る時間なかった ので NPAPI の葬式も兼ねてせっかくだから NPAPI の 状況をまとめしたいと思います。 • Android, B2G, Rust, Servo の話はないよ!
  3. Who’s Guy? Naruto TAKAHASHI(@TNaruto) • Mail: tnaruto@gmail.com • Blog: http://eflmemo.hatenablog.com/ • Company: Turbo Systems Co, Ltd. Interesting Keyboards • EFL(Enlightenment Foundation Libraries) • Tizen • WebKit
  4. NPAPI 歴 • Android 向け NFC NPAPI Plugin の開発 • 鬼門だらけの開発 • Android + NPAPI • JNI で C のプラグインから NFC サービスを触る • Javascript, C++, JAVA のジェットストリームア タック
  5. NPAPI 歴(cont) • 大変な作業な割に情報がないので勉強会で発表 • http://www.slideshare.net/TNaruto/android- web-kit • 国内外より NPAPI に関する質問が複数ありました
  6. NPAPI とは • 複雑で面倒なプラグインシステム。 • 面倒なのに使われ続けているのは代替がないから。 • プラグイン実装例。 • Flash • Unity • Silverlight
  7. 各プラットフォームのNPAPI対応状況
  8. Google Chrome • NPAPI に限界を感じ、より使いやすいフレームワークを求めて PPAPI を作成。 • 来年から NPAPI を排除する方向へ • 複雑だし、セキュリティ面でも良いとは言えないため。 • 20世紀のソフトウェアと位置づけ • 利用者の多い Flash は PPAPI へ移植済み
  9. Firefox • NPAPI のサポートを続ける。 • PPAPI の開発には参加せず。 • NPAPI を Gecko Plugin API を呼ぶぐらいに愛でてる • でも 次の Firefox からは標準設定でプラグインを自動ロードをしなく なる。('A`) • NPAPI プラグインがロードできる環境で有り続ける
  10. Internet Explore • 見られるんじゃない? • よくしらないです。
  11. Opera • 見られると思うよ。 • すみません、ほんとしりません
  12. iOS • Flash はアレなんで HTML5 をプッシュ • 2009年か2010年あたりから • Flash 排除 • それは NPAPI も排除を意味する。
  13. Android WebKit(Blink) • NPAPI のロード可能 • オフィシャルにサンプルも用意。 • ただし、Android を弄れないとロードできない。 • Adobe が Android 4.2 以降 Flash パッケージを提供 しなくなった。
  14. Android WebKit(Blink)(Cont) • 近い未来、Webkit から Blink へ置き換えられたら? • Chrome が NPAPI 排除の方針 • Blink は Chrome のためのレンダリングエンジン • Android で Blink が採用されたら NPAPI がブロックさ れる? • 扱いづらい上に今後 Android でも利用できるか不透明
  15. Android Firefox • Android Webkit のプラグインロード部分をパクっt…尊 重しそのままの形でインスパイアして NPAPI ロードのオ ポチュニティを実現。 • Android Firefox 上で NPAPI が使える? • Android で NPAPI が使いたいときは Firefox を使えば 良い?
  16. Firefox OS • "Webがプラットフォーム" • HTML, Javascript, CSS • NPAPI • ネイティブじゃね? • 仮想敵じゃね? • ソース見てないけどそんなに積極的じゃなさそう
  17. • モバイルプラットフォームは NPAPI プラグインの利 用を収束する傾向にある。 • ところが。。
  18. Tizen • Tizen 2.0 からサポート始めたよ!(バーン) • 2012年に突然の NPAPI サポート宣言 • プラグインのサンプルもオフィシャルに出しているよ • ただしバイナリのみ。 • S@msung の人から質問メール来るレベル • いや、あのね…。 • 他は NPAPI を捨てる方針なんだからさ…。
  19. NPAPI 状況のまとめ • PCブラウザではフラグメント発生中。 • NPAPI • PPAPI • モバイルプラットフォームではほとんど扱えず。 • NPAPI を使いたいときは Firefox ブラウザを使いましょう。
  20. NPAPI 実装
  21. NPAPI SDK • https://code.google.com/p/npapi-sdk • Win, MacOS, Linux 対応
  22. NPAPI Scripting • Scripting(DOM への API の追加)の実装方法が色々あ ります。 • LiveConnect • XPConnect • NPRuntime
  23. NPAPI Scripting(Cont) • NPAPI Scripting 実装方法が複数あり情報が交錯している。 • 現在のスタンダードは NPRuntime の利用。 • XPConnect は Piro さんより発表していただけます。  • 個人的には Scripting には NPRuntime 利用を強く推奨し ています。
  24. NPRuntime サンプル • 簡易サンプルの作成 • https://github.com/Naruto/npruntime-sample • Linux only
  25. NPRuntime サンプル ビルド • ビルド&インストール • make • sudo cp libtestplugin.so /usr/lib/mozilla/plugins/
  26. プラグインロードを確認 • about:plugins へアクセスする
  27. Scripting API の実行を確認 • xdp-open ./test_plugin.html
  28. NPAPI 今後の話 どういう使い方をしていく?
  29. NPAPI 活用例 • ケース: Web アプリケーションから PC で動作している PluseAudio を触って、 出力先デバイスをスピーカーから Bluetooth ヘッドセットへ切り替えたい。 • 最初のアンサー: クライアント上で Web サーバを立ち上げて、php スクリプ ト経由で PulseAuido を触れば良いのでは? • サーバー立ち上げも面倒だし、php からシステムのリソースを触るのはセ キュリティの懸念事項ふえるよね。 • 正直、面倒い。
  30. NPAPI 活用例(cont) • 次のアンサー: PulseAudio を触る NPAPI プラグイン を作れば良いのでは? • インストール簡単。 • セキュリティの懸念する範囲が狭い。
  31. NPAPI 今後 • プラットフォームとしての利用 • HTML5 が同等かそれ以上のことが出来るようになるまで使 われる。 • Web API のラピッドプロトタイピング向け • レンダリングエンジンの仕組みを知らなくても API 追加可能 • API の追加にはプラグインのコンパイルのみ • Ad-hoc な Web API 追加方法としても使える
  32. まとめ
  33. NPAPI は死んだ、何故だ! • 坊やd... • 枯れたのと技術が進歩して一部を代替できるように なった。 • 全部代替できたら今頃は Flash は無くなってるはず
  34. ゾンビだからさ • NPAPI は今後も残り続けると予想。 • 今のところまだ、完全に代替できる仕組みがない。 • NPAPI 上のプラットフォームは使い続けるしかない。 • Ad-hoc な API 追加方法としての活用もある。
  35. 総括 • 終わったと放棄するより、NPAPI で何が出来るかを 知っておいた方が有益です。 • でも、個人的にはブラウザで何でも出来る時代が来て 欲しいです。
  36. ご清聴ありがとうございまし た。
Advertisement