「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」も設けられていた。

「こどもプログラミングサークル‘スクラッチ'(OtOMO)」のコーナーでは、小学校低学年の子供たちが、ビジュアルプログラミング言語でプログラミングするところを実演し自ら説明していた
ウェブページ中に出てくるキーワードを自動的にリンクに変え、スマートフォンやタブレットでコピー&ペーストしなくてもGoogleやWikiPediaなどで検索できるようにする「Phroni」物体にプロジェクターで投影する表現手法、プロジェクションマッピングの紹介
東大の女性研究者7人による活動「CHORD xx CODE」。体形標本アプリや日光に反応する宝石などを展示

関連情報

(高橋 正和)

2012/1/23 12:19