なげやりろぐ

フテイキコウシン

IE9 Platform Preview がお披露目

IE9の開発状況はどの程度すすんでいるのかいなとか思っていたら、突然現状報告版みたいなものをリリースしてくれましたよMSさん。
早速ネットブックに突っ込んでTest Driveページを閲覧してみたら・・・ナニコレすごい!
レンダリングの一部にDirectXテクノロジーを利用しているそうで、ctrlキーと+キーで拡大していっても文字の周囲に破綻がありません。まるでベクターグラフィックで書かれているような感じ。
しかもjavascriptの実行エンジンであるjscript9.dllがかなり頑張っていて、Firefox3.6とベンチマークで比較してみてもほぼ同等のスコアを出してくれました。
それと何と言っても待ち望んでいたborder-radiusの実装。あこがれの角丸がCSSで出来ちゃうわけですよ。これでTwitterのHomeのコンテンツエリア上部の角が取れてより親しみやすくなるってモンです♪*1

早速いたずら♪

'`ィ (゚д゚)/ヒトバシラーやります(笑)


IE8のプレビューがでたときにギークな方はほとんどやったであろうjscript.dllの入れ替えをまずは試して見ました。
IE9ppをインストールしたあとにProgram Filesに作成されているInternet Explorer Platform Previewフォルダの中にもう一つ、iepreview.exe.localというフォルダが作成されて、実はこの中に本来ならSystemへ登録されるファイル群が納められています。もちろんこれは既存の環境を壊さないための措置なんでしょうけど、おかげでファイルが扱いやすくて助かります。
この中にあるjscript9.dllをjscript.dllへとリネーム。次にWindous\system32にあるIE8のjscript.dllを適当なフォルダへとコピーしてバックアップ。
お次はオリジナルのjscript.dllのプロパティから所有者とアクセス権を変更。つまりこのファイルに対して神様権限を与えたのちにサクッとリネーム版jscript.dllwを上書き。
で、ブラウザを立ち上げると新しいjavascriptエンジン(コードネームはチャクラだそうで)が利用可能になるという寸法。


で、定番のjavascriptベンチマークとなっているSunSpiderで使用前、使用後の比較をしてみると・・・スゲえぇぇぇ!!!

  • 使用前

  • 使用後


↑実際は600ms前後になるはずなんですが、みんなベンチやりまくっててサイトの負荷が高かったのかも(笑)


実際にブラウザ上でスクリプトを利用してみるとあきらかな速度向上を体感できました。IE9の正式リリースまでにはもっと熟成が進んでくるでしょうから楽しみですね。
ただ、手放しで喜んでばかりもいられません。と、いうのは多分IE8のレンダリングエンジンとjscript9.dllの整合性の問題だと思われますが、一部のSeahorseスクリプトやUserActionスクリプトでエラーを吐いて実行が止まってしまうのです。
もっとも、イレギュラーなことをしているわけですから多少の問題が起きるのはやむをえないですね…

チョーシに乗ってみる♪

IE9のレンダリングエンジンとjscript9.dllをそのままSleipnirで利用出来ればかなり美味しいんじゃね!?
…みたいなノリでやっちゃいましたよシステムの書き換え♪
結果から先にいうと、動きましたよマジで。

  • IE9のエンジンとjscript9.dllが使えるようになったSleipnir2.9.3test2の図
    IE8のエンジンでは5fpsほどしかでなくてカクカクのコマ落ちになります。

  • 角丸もおOK!
    決してActiveGeckoやChrome Frameじゃナイですよ♪ 見にくいけどアドレスバーとステータスバー左側見ればわかりますよね。


実は実機で試すのはあまりにもリスクが大きいので、上の画像はVMware WorkStation上のWin7を犠牲? にして試しました。
実際、使えるようになるとは言えかなり問題があります。オリジナルのIEが立ち上がらなくなるとか(まぁ当然ですが)IEオプションが呼び出せないとかビュー上でコンテキストメニューが出ないとかその他諸々…
でもブラウジングそのものには問題アリマセン、というか快適すぎてどうしましょ、みたいな(笑)
IE8+jscript9.dllで遭遇した問題もなく、マウスジェスチャーも効きますしSeahorseスクリプトやUserActionスクリプトも快適に動作してくれています。

試して見たい?

ここで詳しくやり方を書いても再現性の問題とか質問が来ても困るので軽く説明するにとどめますね。
追試される方はもちろん自己責任でおねがいしますよ。

  1. まず最初にシステムのプロパティから復元ポイントを作成しておく。
  2. 次にIE9 Platform Previewをインストール。
  3. システムファイルの入れ替えをするのでOSをセーフモードで立ち上げ直す。
  4. Windows\system32フォルダのプロパティを開き、セキュリティタブから所有者をログオンユーザーへ変更、次にアクセス権をログオンユーザーで継承オプションをチェックしフルアクセスへ。
  5. IE9 Platform Previewインスコフォルダ内のiepreview.exe.localフォルダの中身をすべてsystem32へコピー*2
  6. 一部使用中のためコピーできないファイルがあると警告される。
  7. コピーできなかったファイル名をメモっておき、system32側の当該ファイルをリネーム(神様権限+セーフモードならではの技(笑))
  8. 先ほどコピーに失敗したファイルを再度コピー。今度はすんなりいくはず。
  9. system32の権限を元に戻す。
  10. 再起動


くどいようですが常用マシンで試される場合はくれぐれも自己責任で。それと復元ポイント作成は必須ですよ。

*1:いや、実は俺様CSS適用しちゃっているのででそのあたりは既に跡形もないんですけどねw

*2:依存関係が不明なためすべてコピーしてみました。