あんなこといいな、できたらいいな……と思っていたワイヤレスでのタイムマシーンのバックアップ。はい、タイムカプセルの出荷が始まっています。1TBか500GBかで悩んでいるのですが、やはり1TBでしょうかね。でも、ちょっと予算オーバー。ふしぎなポッケがあればいいのですけど。
さて、今回は「WebKit」について。2月に取りあげたばかりだが、Acid3テストをクリアするなど、その後の状況は変化している。Windows版も正式にリリースされるなど、近頃勢いが増しているSafariを"先取り"できるこのアプリケーションを、いろいろな角度から見てみよう。
祝・Acid3テストクリア
まずはWebKitの最新情報から。最新版が日々アップロードされるナイトリービルドからバイナリパッケージを入手したうえで読み進めていただくと、臨場感が増すこと受け合いだ。
最大のニュースは、Acid3テストのクリア。Webブラウザの標準規格達成度をチェックすることを目的としたこのオンラインテストは、3月3日の正式公開以降、いろいろなWebブラウザの開発チームが躍起になってパーフェクト達成を目指していたものの、なかなかクリアされずにいた。WebKitもAcid3テストクリアのため、3月はかなりの勢いで検証と不具合修正が続けられていたようだ。果たしてその結果は……こちらの記事にあるとおり、タッチの差でOperaに敗れてしまったが、めでたく3月26日にクリアしている。
このテストは、ECMAScript 262(JavaScript / JScriptの標準化を目的として制定された言語仕様)やW3C Document Object Model 2(DOM2、HTML / XML文書を利用するためのAPI仕様)の標準規格を満たすかどうかが目的だが、その裏に隠された意味は見逃せない。テストにいち早くクリアすることで、いわゆる「Web 2.0」レディなWebブラウザとして認知されるだけでなく、ベンダーとしての標準規格に対する認識度合いや開発のアクティブさもアピールできるからだ。"Acid3祭り"もむべなるかな、といったところだ。
Safari以外にも採用が進むWebKit
Windows版Safariは、OS Xで2Dグラフィック描画機能(Quartz)として使われている「CoreGraphics」を移植する、という"大技"により実現されている。しかし、このCoreGraphics.dllやCoreFoundation.dll、CFNetwork.dllといったライブラリ(以下、Appleライブラリ)はオープンソース化されていないため、実質的にApple以外の団体が再配布することはできない。
そこで気になるのが、描画バックエンド用のライブラリ。HTMLの表示にWebKitを使用するAdobe AIRの場合、Windows版では「Cairo」を使用するため、一部機能に差が生じることは第230回でご報告したとおりだが、PC-UNIXを中心に多くのユーザを抱える統合デスクトップ環境「Gnome」の標準Webブラウザ「Epiphany」も、このたびWebKit陣営に属することとなった。しかし、LinuxやFreeBSDなどPC-UNIX向けにAppleがSafariをリリースする可能性は低く、結果としてAppleライブラリのポーティングは期待できない。WebKit版Epiphanyは必然的にCairoベースになる、ということだ。
いまのところ、AppleライブラリベースとCairoベースのWebKitの機能差は、カラーマネジメント機能などわずかだが、将来のことはわからない。全機能をオープンソースで実装すべく、CairoベースのWebKitを出そうという動きもある。WebKit開発プロジェクトが分岐する、という可能性も考えられないことはない。一方で、Appleライブラリのオープンソース化は考えにくい。プロプライエタリなライブラリに依存し続けるのではなく、可能なものはオープンソースに置き換えることが時代の趨勢だと思うのだが……。
おまけ ~WebKit常用に向けて~
状況説明だけではナニなので、WebKit(WebKit.app)のTIPSをいくつか紹介しておこう。以下のコマンドラインは、WebKitのスタートアップ画面(Thank you for testing WebKit!)を非表示にする、よく知られたTIPSだ。
$ defaults write org.webkit.nightly.WebKit StartPageDisabled -bool YES
おすすめはこちら、「フルページ・ズーミング」。通常、文字を拡大(Command+[+]キー)すると、文字だけ拡大され画像の大きさは不変だが、以下のコマンドを実行すると、文字と画像のバランスを維持しつつ拡大できる。最新のWebKit(3月21日以降のナイトリー版)のみ対応する新機能だ。
$ defaults write com.apple.Safari WebKitDebugFullPageZoomPreferenceKey 1