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

  • 4,492 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,492
On Slideshare
0
From Embeds
0
Number of Embeds
8

Actions

Shares
Downloads
10
Comments
0
Likes
9

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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. ご清聴ありがとうございまし た。