「Mozilla Vision 2012」、スマホ向けOSやAndroid版Firefox高速化などを解説
Mozilla Japanは1月21日・22日、イベント「Mozilla Vision 2012」を開催した。ウェブ技術を中心に、アートや教育などもまじえてテーマを設定。1日目が講演中心の「Conference Day」、2日目が参加型の「Workshop Day」として行われ、来場者を集めた。ここでは、Conference Dayの講演からいくつかレポートする。
Mozilla Vision 2012 |
●スマートフォン向けのウェブ技術OS「Boot to Gecko」を実演
Boot to Geckoのホーム画面。デモした端末はGalaxy S II |
Conference Dayのセッションでは、Mozilla CorporationのChris Jones氏が、スマートフォン向けの新しい“Mozilla OS”ともいえる「Boot to Gecko」(B2G)について、実機でのデモもまじえて解説した。
Boot to Geckoでは、Firefoxと同じエンジンでOSのユーザーインターフェイス「Gaia Phone UI」が動く。OSのカーネルやデバイス関連の低位ライブラリはAndroidのものを使い、その上で独自のGeckoランタイムを動作させる。アプリケーションもHTMLやJavaScriptなどのウェブ技術により作る。
Jones氏はプロジェクトの背景として、ウェブブラウザーの選択肢が増えたことで標準化や性能向上が図られたことを挙げ、プラットフォームにロックインされているスマートフォンのアプリをウェブ技術ベースで作ることによりオープンにすると語った。
ネイティブアプリに比べるとウェブ技術は機能が限られる。しかしJones氏によると、ウェブ標準やBoot to Geckoでは、通話やジェスチャー、マルチタッチ、オーディオ、位置情報、連絡先、NFC、カメラ、Bluetoothなど、必要な機能にどんどん対応しているという。
また、ロックインのないエコシステムとして、アプリのオープンなマーケットや、購入したアプリやコンテンツを同じユーザーが複数の端末で使えるようにするための同期の機能やIDなどが必要となると語った。
提供方法としては、Mozilla自身が端末を出すようなことはなく、オープンソースで公開するほか、ハードウェアベンダーと話を進めており、パートナーシップによって提供すると説明した。
Chris Jones氏(Mozilla Corporation) | Boot to Geckoの内部構成 |
Galaxy S IIで動くBoot to Geckoの実機デモも行なわれた。電源オフの状態から起動して、アプリの並ぶホーム画面を表示。電話や連絡先、SMS、ウェブブラウザーなどの内蔵アプリと、アプリのストアなどを操作してみせた。また、ウェブ上の動画や3Dゲーム(Quake IIをGoogleのエンジニアがブラウザー上に移植したQuake II GWT Portと思われる。残念ながら途中でクラッシュ)などで、動画や音声の再生に十分な性能を実現しているとアピールした。
Jones氏は、Boot to Geckoが成功する理由として、既存のウェブ開発者や開発ツールなどがそのままBoot to Geckoに対応することを挙げ、「みなさん、アプリケーションを書いてみてください」と聴衆に呼びかけた。
Boot to Geckoから電話をかけるところ | 連絡先アプリ |
ストアからアプリをインストールするところ | ウェブ技術で作られているところを見せるため、ホーム画面のHTMLソースを表示 |
●Android版Firefoxはバージョン11で大きく性能を改善
Mozilla CorporationのMark Finkle氏は、Android版FirefoxをFirefox 11 for Androidから大きく作り直して、性能や機能を改善したことについて解説した。
まず、現在β版段階のFirefox 10 for Androidと、開発中のFirefox 11 for Androidを比較。Firefox 10ではすべてのユーザーインターフェイスをXULベースでクロスプラットフォームにし、内部動作をマルチプロセスにして1つのタブがクラッシュしても全体は止まらないようにしている。それに対し、Firefox 11 for Androidでは、ユーザーインターフェイスをAndroidネイティブのウィジェットで作り、内部もシングルプロセスに戻した。
Finkle氏はこれについて「後戻りしているように見えるかもしれない」と断りつつ、現在のFirefox for Androidへのユーザーの不満として、起動に時間がかかること、Flashが動かないこと、メモリを使いすぎること、スワイプなどの操作をサポートしていないこと、動画再生が途切れたりすることなどを紹介。これらの問題に、Androidのウィジェットとシングルプロセスで作り変えることによって対応することを決断したと語った。
起動については、Androidウィジェットを使い、ユーザーインターフェイスとGeckoの起動を分離。シングルプロセスの中でUIスレッドとGeckoスレッドのマルチスレッドを分けて、メッセージングAPIでやりとりする。Flashについてはシングルプロセスにすることと、非公式APIを解析することで対応。また、メモリ消費量は約半分になったという。ただし、作り直したことにより、従来のXULやJavaScript APIを使った拡張機能はそのままでは動かないことも説明された。
実演では、Firefox 10 for AndroidとFirefox 11 for Androidでそれぞれ起動を比較。また、Android 4.xに合わせたメニューを見せつつ、設定画面はAndroidウィジェットを使いつつもFirefoxのルックアンドフィールに合わせていることを紹介した。さらに、ブラウザー間でブックマークや履歴などを同期するFirefox Syncについても、Androidサービスにしたことで、Firefoxが起動していなくても動くことを説明した。
最後に、近い将来の予定として、タブレット対応や、ホーム画面用の検索などのウィジェット、PC用のウェブページを読みやすくする表示モードなどを挙げた。
Mark Finkle氏(Mozilla Corporation) | ユーザーから寄せられた不満。起動時間やFlashサポート、メモリ消費など |
Flashへの対応 | スレッドの分離 |
Firefox 10 for Androidでは起動を待つ間にロゴが表示される | Firefox 11 for Androidではロゴを表示するまでもなく起動する |
●PDFをJavaScriptにより実用的な速度で描画する技法を解説
再び登壇したMozilla CorporationのChris Jones氏は、ブラウザー上のJavaScriptでPDFを解釈し表示する「PDF.js」とその実装を紹介し、聴衆のエンジニアたちの関心を集めた。
Jones氏はまず、PDF.jsの意義として、Acrobatの脆弱性に伴う単一実装の危険や、迅速なアップデート、起動時間の短縮、モバイルを含めたクロスプラットフォームとクロスブラウザーなどを挙げた。
PDF.jsでは、HTMLの2D Canvas上でページを描画し、文字はCSSの@font-faceルールを使って表示する。SVGやHTMLを使わなかったのは「遅いから」だとJones氏は説明する。ただし、ハイパーリンクや文字の選択、検索に対応するために、Canvasを描画した後で透明なHTML表示を上に重ねているという。
サーバーからはPDFファイルをtyped array形式で受け取り、JavaScriptでパースして描画する。破線など2D Canvasになかった要素については、高速化のためCanvas側に機能を追加し、これはWebKitにも採用されたという。
また、FirefoxでサポートしていないJPEG2000やBMPなどの画像形式についてはJavaScriptでデコード。Type1フォントについては内部でOpenTypeに変換して対応したという。さらに、ページサムネールや、シェーディング、マスク、PostScriptオブジェクト、Type3フォントなどについてもJavaScriptで対応したと、Jones氏はさも大したことでもないかのように語った。
さらに、高速化として、PDF命令のJavaScriptへのJITコンパイルや、Web WorkersによるPDF解釈や描画の並列処理も紹介した。
現状としては、ほとんどの機能が完成し、パフォーマンスも良好で、Jones氏も「日々使っている」と語った。現在、Firefoxの拡張機能と、Google Chromeの実験的な拡張機能もあり、将来はFirefoxに標準で付属させたいという。Jones氏は「いっしょにハックしましょう」と聴衆に呼びかけて講演を締めくくった。
PDF.jsを使ってモバイル端末のブラウザーでPDFを表示 | 講演資料と同じ内容のPDFをFirefoxとPDF.jsで表示 |
ページのサムネール表示 | Web Workersを使った並列処理の説明 |
●アートや教育関連のデモ展示も
Conference Dayの会場では、主にアートや教育に関連したテーマについて展示する「DemoPit」も設けられていた。
関連情報
(高橋 正和)
2012/1/23 12:19
-ページの先頭へ-