EFL メモ(EFL memo)

EFL のメモ用、Tizen もあるよ。(Memo for EFL, Sometimes Tizen )

Webkit と Webkit2 の違い

はじめに

webkit のソースの中に WebKit と WebKit2 たるものがあって、正直なところ僕はその違いについて理解していませんでした。
WebKit と WebKit2 の違いについて図解している資料があったので覚書します。

図解 "WebKit vs. WebKit2"

資料は Tizen Developer Conference の WebKit/EFL & WebKit2/EFL の P.19 から。

f:id:TNaruto:20120923181618p:plain

表を日本語化したのは以下。

WebKit WebKit2
プロセスモデル シングルプロセス マルチプロセス
API タイプ ブロッキング API ノンブロッキング API

二つのレイヤー図は左が WebKit でソフトウェアを作成した際のレイヤー図、右が WebKit2 でソフトウェアを作成した際のレイヤー図です。水色の点線枠はプロセスの境界線になります。つまり水色の点線枠に囲まれているのが一つのプロセスです。

WebKit は UI 処理と Web の描画処理を一つのプロセスで行うシングルプロセスモデルです。WebKitWebCore を関数コールで実行しています。API タイプは API の処理が完了するまで待つブロッキングです。

WebKit2 は UI 処理と Web 描画処理のプロセスを分けているマルチプロセスモデルです。分かれている UI 処理のプロセスと Web 描画処理のプロセスは IPC(プロセス間通信) でやりとりします。API タイプは API の処理の完了を待たないノンブロッキングです。

API タイプまで書いてあるので有益な資料ですね。

あと WebKit/EFL & WebKit2/EFL にも書いてますけど、EFL では UI と Web を切り分けている WebKit2 の方がスクロールパフォーマンスやタッチレスポンスなどが良いみたいですね。

おわりに

WebKit と WebKit2 の違いについてまとめました。

tizen の標準ブラウザや wrt は EFL/WebKit と EFL/WebKit2 のどちらを使ってるんだろう?

追記 2012-09-25

WebKit2 と愉快な仲間たち

WebKitプロセスモデルについて詳しい解説がありますので、詳細は上記参照してください。

(情報 THX! @dynamitterさん)