ケータイ用語の基礎知識

第693回:WebView とは

アプリでHTMLコンテンツを表示するための仕組み

 「WebView」とは、アプリ開発の際に利用できる機能のひとつで、アプリ内でWebページを表示できます。多くのアプリケーションで利用されています。

 スマートフォンやタブレットで採用されているAndroidにはこの機能があり、また、iPhoneやiPadで利用されているiOSにも同様の機能があります。

 ちなみに、Android用として提供されているWebViewでは、HTMLコンテンツの表示のほかにも表示などに関するいくつかの機能も持っています。たとえばAndroid 5.0のWebViewではHTMLの表示のほか、グラフィックエンジンであるWebGLのサポートや、オーディオ関連の機能であるWebオーディオなどの機能も用意されています。

Android 5.0以降からはOS組み込みのコンポーネントではなくなった

 AndroidのWebViewの場合、Android 4.4(Kitkat)までは、OSにWebViewコンポーネントが組み込まれていましたので、WebView関連のバグ修正や機能追加をするためには、OS自体のアップデートが必要となっていました。

 Android 4.1~4.3までWebViewのブラウザエンジンに用いられているWebkitは、オープンソースで開発されています。問題やセキュリティ上の脆弱性が見つかるとインターネット上でそれを回避する「パッチ」プログラムがユーザーらによって開発され、公開されてきました。

 AndroidのWebView向けには、同じ問題やセキュリティ上の脆弱性があると判断された場合はそのパッチをGoogleがAndroid用に移植し、「Android Open Source Project」と呼ばれる、Androidの内容を公開しているサイトで配布してきました。各端末メーカーは、この「Android Open Source Project」からバグ修正プログラムやセキュリティパッチを入手し、販売しているスマートフォンやタブレットに適用してきたわけです。

 一方、Android 5.0以降では、WebViewという機能はスマートフォンやタブレットにあらかじめインストールされているものの、OSへの組み込みではなく、「Android System WebView」という名前で、別コンポーネントとして提供されるようになりました。これによって、WebView機能のバグ修正や機能追加をする場合は、Google Playストアからアップデートされるようになりました。

Googleによる更新プログラム作成はAndroid 4.4以降

 AndroidのWebView機能は、アプリケーションから使う際には、Android 5.0のものでもあるいはそれより古いものでも後方互換性があり、同じように扱うことができるのですが、実は同じWebViewでも仕組みは違うものが利用されています。

 さきほど少し触れたように、Android 4.3までのWebViewでは、オープンソースで作られている「WebKit」というWebレンダリングエンジンをベースにした仕組みを利用していました。一方、Android 4.4以降では「Chromium Blink」と呼ばれるエンジンをベースにしたものに変更されました。これはGoogleが主導して開発、メンテナンスされているWebレンダリングエンジンをベースにしたものです。ちなみにWebkitは、iOSのUIWebViewと呼ばれるWebViewコンポーネントやSafariなどでも使われているWebレンダリングエンジンです。
 ChromiumのBlinkは、Webkitのエンジンがベースになっているものの、マルチプロセス技術を用いたアーキテクチャーの変更やコードの変更などが行われており、内部構造はWebKitからはかなり異なったものとなりました。

Googleによるアップデートは、今後Android 4.4以降に

 なお、Googleは、2015年1月現在、WebKitベースのWebViewに関しては、これ以上のパッチを作成しないとしています。

 WebKitベースのWebView機能には、OSが提供されてから、たとえば本物のドキュメントになりすまして偽のドキュメントを表示することができるなど、セキュリティ上の欠陥が既に多く見つかり、セキュリティ研究者などによって公表されているのですが、これらの修正もGoogleの手では、行われないということになります。Googleのリードセキュリティエンジニアであるエイドリアン・ラドウィグ(Adrian Ludwig)氏は、WebKitが500万行を超える複雑なコードになっていること、Android 4.4以降にアップデートしたり、最新機種への乗り換えで古い機種を使う人が日々、減っている、と説明しています。またブラウザアプリの「Chrome」「FireFox」の利用を勧めています。

 なお、Android OSはインターネット上の「Android Open Source Project」でオープンに開発が行われていて、世界中の誰でもがバグ修正やセキュリティパッチの開発を行うことができ、その成果をインターネットを通じて配布することができますから、今後、Android 4.3以前のOSに搭載されているWebViewに関するセキュリティパッチなどはこれらGoogle以外の開発者によって開発されることになるでしょう。そうして提供されるセキュリティパッチをもとに、古いバージョンのAndroidのアップデートを行うかどうかは、各端末メーカーの判断ということになります。

大和 哲

1968年生まれ東京都出身。88年8月、Oh!X(日本ソフトバンク)にて「我ら電脳遊戯民」を執筆。以来、パソコン誌にて初歩のプログラミング、HTML、CGI、インターネットプロトコルなどの解説記事、インターネット関連のQ&A、ゲーム分析記事などを書く。兼業テクニカルライター。ホームページはこちら
(イラスト : 高橋哲史)