ご存知の通り、Appleは最近Safariのアップデートをリリースし、バージョン2.0.1(10.4をご利用の場合)または1.3.9(10.3.xをご利用の場合)になりました。しかし、ご存知ない方もいるかもしれません。これはSafariの最新バージョンではありません。今年初め、AppleはWebKitと呼ばれる技術を正式にオープンソース化しました。WebKitオープンソースプロジェクトページでAppleが説明しているように、WebKitとは…
…Mac OS XのSafari、Dashboard、Mail.app、その他多くのOS Xアプリケーションで使用されるシステムフレームワーク。KDEのKHTMLエンジンをベースにしています。
これはつまり、Safariが実際にウェブページを描画するために使用するコードが、誰でも公開されるようになったことを意味します。開発者はコードを閲覧し、バグを修正し、さらには新機能を提案(そして実装)し、それらの変更をプロジェクトにフィードバックして、WebKitの将来のバージョンに組み込むことができます。開発者でない人にとって、なぜこのオープンソースプロジェクトに関心を持つべきなのでしょうか?それは、数日前にアップデートしたばかりのSafariよりもさらに新しいバージョンを実行できるからです。つまり、通常のソフトウェアアップデートでリリースされるよりもずっと前に、バグ修正や新機能を入手できるということです。
それがなぜ有益であるかの例として、次の画像を検討してください。

これらは、Acid2ブラウザテストと呼ばれるもののスクリーンショット2枚です。これは、ブラウザ開発者が自社製品が定義されたWeb標準に準拠していることを確認するのに役立つテストです。理想的な結果は極めてシンプルで、黄色い背景に笑顔の顔が表示されるというものです。しかし、この結果を得るには、ブラウザがCSS、HTML、PNG、そしてHTMLコード内に小さなデータ項目を埋め込む方法であるデータURLと呼ばれるものを正常に処理する必要があります。上のスクリーンショットの左側は、Safari 2.0.1で笑顔の顔がどのようにレンダリングされるかを示しています。右側は、オープンソースのWeb Kit版Safariを使用した場合の結果です。明らかに、オープンソース版は現在のOS X版よりもテストにおいてはるかに優れた結果を出しています。
他にも利点があります。現在のバージョンのWebKitでは、フォーム要素のスタイル設定が可能です。フォーム要素とは、ラジオボタン、チェックボックス、OKボタンなどのことです。Safariでは、これらのオブジェクトはすべてAquaルックアンドフィールになりますが、これは多くのWebデザイナーにとって悩みの種です。Aquaルックアンドフィールが、作成中のページのデザインと合わないことがあるからです。SafariをオープンソースのWebKitと連携させることで、他のほとんどのブラウザと同様に、これらの要素をページに合わせてスタイル設定できるようになりました。
ただし、すべてが順調というわけではありません。このページでは、WebKit版Safariと「本物」版Safariを比較した場合の動作の違いをいくつか挙げています。また、ビルドしたバージョンがバグだらけで不安定になる可能性もあります(ただし、私は今のところ幸運にもそのような問題に遭遇していません)。WebKit版を独自にビルドすることで、まさに最先端のコードを試すことができます。ありがたいことに、標準のWebKitを搭載したSafariは引き続き問題なく動作し、オープンソース版WebKitを搭載したSafariと併用することも可能です。
Web Kit版Safariのインストールは必ずしも複雑ではありませんが、いくつか前提条件があります。まず、私の最初のGeeky Fridayブログ記事で説明したように、Xcode 2.1がインストールされている必要があります。次に、OS X 10.4を実行している必要があります。申し訳ありませんが、それ以前のバージョンのOS X向けに独自のSafariを構築することはできません。最後に、ターミナルでのコマンド入力に多少なりとも慣れている必要があります(ただし、インストールにUnixの知識は必要ありません)。
注: オープンソースのWebKit版Safariをお使いのマシンにインストールする最も簡単な方法をお探しなら、NightShiftというプログラム(VersionTrackerページ、MacUpdateページ)がおすすめです。このプログラムは、Macに最新バージョンのWebKitを自動的にダウンロードしてインストールします。ご自身でインストールする方法を知りたい方は、以下をお読みください。
オープンソースのWebKitをビルドする最も手軽な「実践的な」方法は、コードの入手とビルドの両方においてAppleの指示に従うことです。以下に記す手順は、Appleの指示をそのまま引用し、経験の浅い方のために多くの説明を加えています。
最初のステップは、WebKitファイルを保存するフォルダを作成することです(Shift-⌘-N)。このフォルダへのフルパスにはスペースが含まれていないことが重要です。そのため、ユーザーフォルダ内にフォルダを作成することをお勧めします。私の場合は、ユーザーフォルダの最上位(ドキュメント、ピクチャなどのフォルダの隣)に「builds」(コードをコンパイルするプロセスを表す用語)という名前のフォルダを作成しました。このフォルダは好きな場所に配置できますが、パス上のフォルダ名にスペースが含まれていないことを確認してください。
フォルダを作成したら、Xcode(/Developer/Applications)を起動し、「Xcode: 環境設定」を選択します。ツールバーの「ビルド」アイコンをクリックし、パネルの「ビルド製品の配置場所」セクションで「カスタマイズされた場所」をクリックします。「選択」ボタンをクリックし、先ほど作成した新しいフォルダに移動して、「選択」ボタンをクリックしてフォルダを選択します。完了すると、以下のようになります(もちろん、パスとフォルダはあなたの設定ではなく、あなたの設定に従ってください)。

これが完了したら、Xcode を終了してターミナルを開きます。WebKit コードを取得する準備が整いました。特に指定がない限り、以下の各コマンドの後に Return キーを押す必要があることに注意してください。まず、ファイル用に作成したディレクトリにいることを確認するために、 と入力します cd /path/to/folder/to/use。私の場合、そのコマンドは でした cd ~/builds。WebKit ファイルは、並行バージョン管理システム (CVS) と呼ばれる場所に保存されます。CVS を使用すると、多くの人が同時に同じコード部分で作業することが容易になります。CVS にあるものを使用するには、それをチェックアウトする必要があります。まず、これまで CVS にアクセスしたことがない場合は、 と入力します touch ~/.cvspass。これは 1 回だけ実行する必要があります。これは、これまで CVS を使用したことがない場合に発生する可能性のある問題を回避するためです。
次に、次のコマンドで Apple の CVS マシンにログインします。
cvs -d :pserver:[email protected]:/cvs/root ログイン
パスワードの入力を求められます。anonymous と入力してReturnキーを押します。ターミナルプロンプトが表示されるだけで、何も起こらないように見えますが、これでAppleのWebKit CVSに接続できました。次のステップは、WebKitの操作をはるかに簡単にするツールセットを「チェックアウト」(ダウンロード)することです。以下のコマンドを入力してください。
cvs -d :pserver:[email protected]:/cvs/root co -P WebKitTools
いくつかのコマンドが流れ、完了すると再びパスワードプロンプトが表示されます。これでWebKitツールが使えるようになったので、CVSから実際のWebKitコードを取得できます。以下のコマンドを入力してください。
WebKitTools/チェックアウト
この手順は、接続速度によっては時間がかかる場合があります。画面には、ダウンロード中のファイルを示すメッセージが多数表示されます。すべて完了すると、最後に次のようなメッセージが表示されます。
====================================================================== Web Kit のソースがチェックアウトされ、ビルドの準備が整いました。Xcode 内のプロジェクトごと、または build-webkit スクリプトを使ってビルドできます。build-webkit スクリプトは、他の便利なスクリプトと一緒に WebKitTools/Scripts 内にあります。このディレクトリをシェルの検索パスに追加しておくことをお勧めします。=====================================================================
ここに短いムービー [2.2MB] があります。これは、ターミナルに入力された最初のコマンドが正確にどのように表示されるかを示したもので、手順が少し明確になるかもしれません。
この長いダウンロードは一度だけ実行すれば済みます checkout 。将来、WebKit の新しいバージョンにアップデートしたい場合(通常は毎日変更が行われます)、builds ディレクトリから以下のコマンドを実行できます。
WebKitTools/スクリプト/webkit の更新
これにより、コードの最新アップデートが取得されます(この操作後、Safariを再度ビルドする必要があります。詳細は下記をご覧ください)。これでWebKitのオープンソース版をビルドするために必要なコードがすべて揃いました。最後のステップは、以下のコマンドでビルドすることです。
WebKitTools/スクリプト/build-webkit
WebKit のビルドにかかる時間は、お使いのマシンの速度によって異なります。デュアル 2.0GHz G5 では、約 6 分(他のアプリケーションをいくつか実行中)でした。PowerBook G4 1.33GHz では、ほとんど何も実行していない状態で、約 17 分かかりました。つまり、コーヒーを飲んだり、クロスワードパズルを解いたり、ゲームをしたり、ウェブを閲覧したり、ターミナル画面を見つめてビルドの完了を待つ以外のことを何でもできるということです。いずれは完了します…
ビルドが最終的に完了すると、次のメッセージが表示されます。
================================================================= Web Kit がビルドされました。この新しくビルドされたコードで Safari を実行するには、run-safari スクリプトを使用してください。 ================================================================
余談ですが、 update-webkit コマンドを使用するたびに WebKit を再構築する必要があることに注意してください。つまり、 を使用して update-webkit 新しいパーツを取得し、 build-webkit それらのパーツを組み合わせて完成品を作成する必要があります。
さて、そろそろ新しいバージョンのSafariを起動したいところでしょう。まずは念のため、「本物の」バージョンのSafariが起動していないことを確認してから、次のコマンドを入力してください。
WebKitTools/スクリプト/run-safari
繰り返しますが、これはbuildsディレクトリ内(WebKitToolsディレクトリがあるディレクトリ)から実行します。Returnキーを押すと、ターミナルにいくつかのメッセージが表示され、Safariが開きます。Acid2のテストページで、新しく改良されたスマイルを確認したり、その他の新機能(主にWebサイトデザイナー向け)を試したりしてみてください。完了したら、他の通常のアプリケーションと同じように、⌘-Qで「新しいSafari」を終了してください。後で再度実行するには、ターミナルを開き、 cd buildsディレクトリに移動して上記の run-safari コマンドを実行してください。
AppleのWebKitページは、WebKitプロジェクトについてさらに詳しく知りたい場合に最適な出発点です。既に提供されているリンクに加えて、膨大な情報が掲載されたアクティブなWiki、WebKitの進捗状況を更新するブログページ、そして現在の問題を確認したい場合は、WebKitの未解決のバグをすべて検索することもできます。WebKitがオープンソースプロジェクトとして公開されているということは、Appleが継続的に追加している機能やバグ修正をすべてSafariに取り込み、比較的簡単に最新の状態に保つことができることを意味します。
この記事は、「armadillo」からのフィードバックに基づいて修正され、NightShift プログラムに関する情報が追加され、WebKit が正確に何であるかという説明における技術的な誤りがいくつか修正されました。