三代目MacBook Proが出ましたね。厳密な意味でのSanta Rosaベースではないそうですが、Intel PM965 Expressチップセット搭載ということで、性能向上が期待できます。近々何らかの形で使用感などをお伝えできると思いますので、ご期待ください。

さて、今回は「Safari 3」について。今回のWWDC 2007は度肝を抜くようなハードウェアのリリースこそなかったものの、いろいろ興味深い発表があり、Safari 3はその筆頭に挙げられる。Public Beta版(以下、Safari 3 PB)のレビューとあわせ、お読みいただきたい。

Windows版Safariが意味すること

そのSafari 3だが、リファインされた検索ツールなど新機能もさりながら、Windows版の登場が最大の衝撃。WebKitはオープンソースだから移植はさほど驚くべき話ではない、と考える向きもあるだろうが、既報のとおりSafariのフォルダを開いてビックリ。何とそこには「CoreGraphics.dll」が、すなわちCoreGraphicsがWindowsに移植されていたからだ。

Safariのエンジン部分ともいえるWebKitは、すでにAdobe AIR(旧Apollo)という形でWindows上で動作実績を持つ。ちなみに、iTunes Storeの表示にはWebKitが使われているという噂があるが、Safariの開発者が明確に否定しているので、完全にコミュニティ主導でリリースされているものを除けば、WebKitを採用したWindowsソフトでは2番目ということになる。

同じWebKitベースなだけに動作は同じかというと、微妙に異なる。クロスプラットフォームのAdobe AIRだが、描画バックエンドはOS XがCoreGraphics、WindowsがCairoという二段構えだからだ。この違いはWebブラウザの機能差として現れるため、見逃せない。

試しに、以下の内容のサンプルHTMLファイルを用意し、開いてほしい。

230-sample.html


<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>Test</title>
<style type="text/css">
<!--
body { margin:0px; }
div {position:absolute;border:2px black solid;left:30px;top:30px;width:200px;height:50px;font-size:25pt;text-shadow:8px 4px 2px #f08080;
}
-->
</style>
</head>
<body>
<div>Safari or Not</div>
</body>
</html>

バージョン1.1以降のSafariでは「Safari or Not」の文字に朱色の影が付き、IEやFirefoxなどSafari以外のブラウザでは影が付かないはず。CairoベースのWebKitを使うAdobe AIR用Webブラウザウィジェット「Scout」も同様、影は付かない。これは、テキストに影を付けるCSSの表示効果「text-shadow」を実装しているブラウザが、おそらく現時点ではCoreGraphicsベースのSafariだけだからだ。カラーマネジメント機能も、CairoベースのAdobe AIRは非対応だ(ここでチェックできる)。

Adobe AIR用ブラウザScoutとWindows版Safariで、「text-shadow」のテストをしたところ。同じWebKitベースでも結果は異なる

OS Xの主要なAPIレイヤーの1つであるCoreGraphicsが移植された意味だが、今後もSafari限定とは考えにくい。すでにWindows版が存在するiTunesとQuickTime Playerは、いずれこの高機能なライブラリの力を使うことだろう。ひょっとすると、Windowsで動くApple製ソフトが増える契機になるかもしれない。CoreGraphics.dllは特に変哲のないWin32 DLLなので、勝手にリンクしてお力拝借、というフリーウェアが登場する可能性もある。

DLL Toys」を使いCoreGraphics.dllの関数名を表示したところ

Safari 3 PBのリリースから数日が経過した現在、オープンソースプロジェクトとしてのWebKitはどう変化したかというと、Appleが秘密裏に進めていたWindows版のソースコードがマージされ、オープンソースコミュニティに開放されている。CoreGraphicsのライブラリ本体は「WebKitSupportLibrary」として別配布され、プロプライエタリなままだが、ヘッダファイルは付属している。Visual Studioなどの開発ツールが手元にあるユーザは、Windows上でのビルドに挑戦してみてほしい。

Windows版Safariで日本語を表示する

デフォルトでは日本語を表示できないWindows版Safariだが、内部的にマルチバイト文字非対応とは考えにくい。おそらくはフォントファイル名の処理に問題があるのだろうとの予想のもと、設定ファイルを探すと……各種アプリケーションのユーザ別設定情報が記録されるディレクトリに、Safari用の領域(C:\Documents and Settings\ユーザ名\Application Data\Apple Computer\Safari)を発見。調べると、WebKitPreferences.plistというファイルに使用するフォントが記述されていた。

フォントは数種類定義されているが、手始めに「WebKitStandardFont」にあるTimes New Romanを「MS UI Gothic」に変更、上書き保存後Safariを起動すると……ドンピシャリ、日本語ページを表示できた。フォントの問題はいずれ解消されるはずだが、そんなに待てない、というAppleシンパのWindowsユーザ(?)にはぜひ試してほしいTIPSだ。

……
……
WebKitStandardFont
MS UI Gothic ←Times New Romanから変更
……
……

Windows版Safariでも日本語を表示できました