第498回:WebKit とは
「WebKit」とは、Webブラウザ用のレンダリングエンジンです。
“レンダリングエンジン”とは、データを読み込んで、そのデータ形式に従ってレイアウトなどを決め、画面に表示するための中核ソフトウェアです。つまり、WebKitは、Webデータを表示・再生するための中核となるモジュールであると言えます。
「WebKit」の特徴の1つは、非常に多くの製品で採用されていることです。パソコンでの有名な採用例としては、表示スピードが速いと評判の「Google Chrome」、Mac OS用として知られる「Safari」などが挙げられます。
携帯電話関係では、スマートフォンの2大プラットフォームであるAndroidとiPhoneのどちらにも利用されています。Android標準ブラウザのエンジン、あるいはiPhone標準ブラウザの「Safari」のエンジンとして採用されています。
このほか、RIM(Research In Motion)の新しいBlackBerryに搭載されている、BlackBerry Browser バージョン6以降でも、WebKitが使われています。
WebKitは、現在、オープンソースで開発が進められています。その中でも、中心であるWebコア部分とJavaScriptコア部分はLGPLというライセンスで、それ以外の部分は修正BSDライセンスで配布されています。
ちなみにLGPLは、製作者が著作権上の訴えを起こさないコピーレフトソフトウェア(ただし、公開されたソースコードを改変して利用した場合はその部分のソースは公開する)で、修正BSDライセンスも、配布されているプログラムを商用プログラムなどにもコード非公開で組み込みできるなど、企業も利しやすいライセンスです。そうした環境ということもあり、WebKitは非常に多くのWebブラウザで利用されているのです。
■Linux向けからさまざまな製品に
多くのシステムで利用されている背景としては、著名な多くの製作者の手によって日々改良されているという信頼性があるでしょう。また、iPhone(iOS)や、AndroidといったUNIX系のOSと関連の深いコードから開発されていることも挙げられるでしょう。
WebKitのコードを手がけているのは、iPhoneのメーカーであるアップルや、ChromeやAndroidのブラウザの開発をリードするGoogle、KDEの開発者、そしてそれ以外の多くのソフト開発者です。
WebKitは、もともとLinuxなどのOS向けのウィンドウシステムKDE(旧称:Kデスクトップ環境)向けとして開発されたプログラムを起源としています。まず、KDE向けにHTMLデータをレンダリングするエンジン「KHTML」、そして、これと連携するためのJavaScriptエンジン「KJS」が開発されました。さらにKDEではWebブラウズ、ファイルリストの表示や操作をする機能、そしてファイルビュー機能なども含むファイルマネージャー「Konqueror」が作成されました。
そして、アップル社がSafari用のレンダリングエンジンとして利用するために、KonquerorからHTMLレンダリングエンジンとJavaScriptエンジンを切り出し、リファインを行いました。これが最初のWebKitです。それから、さまざまな開発者の手によって改良が加えられ、現在のWebKitが作られているのです。
オープンソースのWebKit開発ウェブサイト。iPhoneやAndroidにも採用されているwebブラウザの中核がここで開発されている。 |
WebKitは、現在も改良が加えられ、日々「現在開発中のWebKit」が開発者や先端ユーザー向けに提供されています。
ある程度、安定した機能を次のリリース用として仕様を固めたバージョンが、開発中バージョンとは別に作られ、一般ユーザーにも使えるよう、バグが少ない安定したコードになるまでデバッグが繰り返されます。
そして安定したバージョンを、各ソフトウェア提供企業が採用して、製品に使われるようになるのです。
■最新のHTML5などもサポート
WebKitのメリットとしては、多くの開発者によって開発が進められているため、最新の技術もフォローしていることも挙げられます。
たとえば、HTML、CSS、JavaScriptなども含めて、新しいHTML規格のサポートという点では、WebKitは非常に早い段階で規格に従った動作が実装されます。2011年1月現在、WebKitの機能としては、HTML5、CSS3仕様の多くをサポートしています。
クライアントでデータを保管できるローカルストレージ、セッションストレージ、画面にさまざまな図形なども描画できるCanvas、JavaScriptをバックグラウンドで処理するWeb Workers機能、これまでJavaScriptで実行するのが一般的だった入力パラメーターを正当なものか検証するバリデーション機能、自動フォーカスやオートコンプリートといった入力補助機能がHTMLのパラメータのみで可能になるなど、HTML5では非常に多くの機能が新たに定義されています。HTML4以下からするとこれらは非常に大きな変更なのですが、WebKitでは、多くのこれらの機能が既にサポートされているのです。
実際に、WebKitが採用されているiPhoneやAndroidでも、これらのサポートされた新機能の多くが既に利用可能になっています。
2011/1/11 14:12