GeckoView 計画

Firefox for Androidに関連して、ごく一部でにわかに注目を集めているバグがある。これね。

867517 – Gecko-based WebView for Android

概要

バグでは完全に実装に関連する話しかされてないので、イマイチ何を目的としているのかわかりにくい。なので、MLにMark Finkleが投稿したメールを引いてみる。

  • Create a View and support interfaces needed to allow developers to use Gecko in place of a WebView
    ビューを作成し、WebViewの代替として開発者がGeckoを使えるようなインターフェースをサポートする
  • Create a library (JAR) that makes it easy to pull in the Gecko code into a normal Android application. Devs should not need to build Mozilla/Gecko to get this to work.
    通常のAndroid中のアプリケーションにGeckoのコードを封入しやすいようにライブラリ(JAR)を作る。この目的の為にデベロッパーがMozilla/Geckoを自分でビルドするのはナンセンス。
  • Use GeckoView in Firefox for Android as a first class citizen.
    Firefox for AndroidでGeckoViewを第一級市民(訳注:APIとしてそのまま扱うという意味で良いと思う)として使用する
  • We'd like to support using more than one GeckoView in an application.
    アプリケーションにて複数のGeckoViewの使用をサポートしたい

というのが目的。 この作業が上手く行けば、悪名高いAndroidのWebViewの代わりにGeckoを使えるようになるので、Android OSのバージョンなどを抽象化できる。Geckoが上手く動作できない端末の問題は有るし、apkパッケージサイズが大きめにはなるけれども、現状であればAndroid 2.2~4.xまでを丸々抽象化できて、且つ最新のWeb APIを使用できるので、WebViewを使っていたような地獄のアプリ開発に使い道が幾らかあるんじゃないかな。

ちなみに、mfinkleのメールには以下の事がnon-goalとして記載されている。

  • Firefox for Androidをインストールさえしていれば、GeckoViewを他のアプリから使えるようにはなりません
  • WebViewを丸まる置き換えるつもりはありません

特に下については、WebViewがOSとセットのAPIとして提供されていることを考えれば当然だよね。

進捗

Bradのパッチの第一弾が投入されてる。とはいえもう少し関連パッチを投入する必要が有る状態で、現在開発中。ターゲットについて明確なバージョンは目にしてないけど、Firefox 24~25までの間にある程度の形になるんじゃないかと予想してる。