QtWebKit 2.3 リリース

以前に ベータ1 をお伝えした QtWebKit 2.3 ですが、しばらくフォローできない間に ベータ2RC が過ぎ、リリース を迎えることとなりました。

QtWebKit 2.3 とは Qt5 の QtWebKit 3.0 を Qt4 にバックポートする非公式プロジェクトです。Qt5 特有の QQuickWebView などは対応していませんが、WebKit1 ベースの改善のほとんどを取り込んであるそうです。API/ABI ともに Qt 4.8 の QtWebKit 2.2 との互換を維持しているので、Qt4 で QtWebKit を使っている人は試してみると面白いと思います。Arch Linux など、いくつかのディストリビューションでは採用の動きもあるようです。

QtWebKit 2.3β1

Qt の WebKit モジュール(QtWebKit)には Qt 自身のバージョンとは個別のバージョン番号があることをご存じですか。例えば、Qt 4.8 に同梱されている QtWebKit は 2.2 ですし、Qt 5.0 では QtWebKit 3.0 になります。

Qt Project では Qt の新機能の開発は Qt5 に対して行われていて、Qt4 はメンテナンスモードになっています。QtWebKit も Qt4 向けの 2.x 系は公式にはメンテナンスモードなのですが、非公式のプロジェクトとして Qt5 の QtWebKit 3.0 同等の機能を Qt4 で実現する QtWebKit 2.3 が開発されています。

その QtWebKit 2.3 が β1 となりました。QtWebKit 2.3 では QtWebKit 3.0 同様に多くのバグフィックスと WebGL, CSS Animation, CSS Shader 等の新機能の追加が行われています。

詳しくは以下の記事を参照してください。

Qt5 の QtWebKit の SQLite 依存について

WebKit は以前から(Qt に関係無く)、SQLite に依存していたのですが、Qt 5 でその依存性の解決方法を変更したとのことです。QtWebKit 単体でクロスコンパイルや Windows でビルドする場合に影響があるようなので、注意してください。

[Development] heads-up: QtWebKit’s SQLite dependency

新しい方法では以下の順番で検索するそうです。

  1. pkg-config を使って SQLite を検索。ただし、Mac では標準の SQLite を使う。
  2. Qt5 のソースツリー内の QtWebKit をビルドする場合、qtbase/src/3rdparty/sqlite にある SQLite を使う。
  3. SQLITE3SRCDIR 環境変数が指し示す SQLite を使う。

What’s new in QtWebKit in Qt 5

Qt5 で大きく代わったモジュールとしては Qt Quick や QtGUI があげられますが、もう一つがこの QtWebKit になるでしょう。Qt5 では WebKit2 への移行が最初から予定されていましたが、このセッションではその詳細を Simon Hausmann が説明しました。

WebKit には 150 万行のコードがあり、(WebKit を含めた場合の) Qt 全体の約 30 %を占める非常に大きなモジュールとなっています。
セッションでは大きく以下の話題に分けて説明しました。

  • WebCore
  • Qt C++ API
  • プロセス分離
  • QML2 インテグレーション
  • 今後の展望

“What’s new in QtWebKit in Qt 5” の続きを読む