Google Chrome いろいろ2008年09月12日 04時34分12秒

前エントリでごにょごにょいってるわりに、合間合間にGoogle Chromeの実験ばかりしてたりして。で、そのメモっつーか。

Portable Chrome、まともに動くじゃないっスか!

前エントリのコメントトラックバックで黒翼猫さんよりご指摘いただきました。試してたポータブル版ではなく0.2.149.29だとKDWでラッパー入れなくてもクラッシュせずに動作します。「Win2K使うんじゃねぇよ、ゴルァ」の消し方はトラックバック元の記事を参照のこと。黒翼猫さん、ほんと感謝です。

ちなみに前回試したやつ(Portable_Chrome_08.09.208.exe)は0.2.151.0版で、どうもテストビルドバージョンみたいね。

どうでもいいが、前の記事のタイトル、「Potable Chrome」とか書いちゃってるし。なんだよ、ポタブルって。

それどころか、ちゃんとインストールできるじゃないっスか!

で、先ほどのコメント見てもらうとわかるんだけども、元々Google ChromeはWin2Kでクラッシュせずに動作するんだったのね。ただし、

  • 普通のダウンロードページにアクセスするとWin2Kではリンクが示されない(=ダウンロードできない)。なんか方法があるみたいだけどソース失念しちゃったのでわからん(^-^)
  • セットアップ関連の実行ファイルがいくつかWin2Kでは動作しない
ってのが壁として立ちはだかると。

んで、黒翼猫さんの最初の記事で配布している「chrome2k.zip」は、ここらへんの壁をいきなり取っ払っちゃってるわけですな。こんな具合で。

  • IEの実行ファイルを別名コピー
  • コピーIEとセットアップ時に互換性で問題がある実行ファイルを「XP互換モード」で動作させるようにレジストリ登録する(詳しいことは黒翼猫さんのサイトをよく読むこと)。
  • 互換モードで動作するコピーIEでダウンロードページを開く
というところまでバッチファイルがやってくれて、その後は手動でセットアップをダウンロードしてから起動すると、見事にインストールされると。うん、ポータブル版こねくり回すよりよっぽど簡単じゃん

Greasemetalは挫折

これもすでにあちこちで話題になってるんだけど、サイボウズ・ラボの奥氏が、Chromeにユーザスクリプト機能(平たくいえばグリモン)を追加するGreasemetalを開発した、と(参考:ChromeにJavaScriptで機能追加、サイボウズ・ラボの奥氏が開発 - @IT)。

もうね、当然興奮しましたよ、えぇ。AutoPagerize使えるだけでぐんと操作性よくなるし。注意点は

  • Greasemetalを有効にするにはChromeが起動していない状態からGreasemetalを起動する必要がある(Greasemetalが自動的にChromeを起動する)。Chromeを直接起動してもGreasemetalは起動しないので当然スクリプトは動作しない、と。
  • 動かないグリモンスクリプトが結構ありそう。グリモンが独自に提供している「GM_」プレフィックス付きの関数なんかは当然提供されていないからね。
といったあたり。なので、OperaやSafariで動作するユーザスクリプトを探してくるか、自前でごりごり改良/スクラッチする必要がある。

で、早速AutoPagerize_opera改め、Opera専用oAutoPagerizeからSafari対応版を落として試してみたんだけども、動いたり動かなかったり。正確には1回しか動いてないんですけど...orz

Greasemetal自体がリリースされたばっかり(っていうか、このタイミングでリリースできるだけでもものすごいことなのだが)ってこともあり、まだちょっと実用とまではいかない感じなので、あえなく挫折、と。願わくばGoogleが拡張APIを用意してくますように。プロセス間通信じゃ開発の敷居高いし。

safebrowsing/downloadsへの定期アクセスのナゾ

アドレスバーのSuggest機能について、なんだかなぁ、という記事を見たので、なんとなくChrome起動した状態でパケットキャプチャしてたら、about:blankを表示しているだけなのに勝手にjp-in-fxxx.google.comにPOSTが発生してるし。

リクエストURLはhttp://jp-in-fxxx.google.com/safebrowsing/downloadsに対して行われてて、こちらの記事で取り上げられてる内容ときわめて似通ってる(URLに含まれるクエリパラメータに、アプリケーション固有だか端末固有だかのwrkeyが付いてたけど)。ま、パケットの中身見たところ、めちゃくちゃ不振ってワケじゃないんだけど、なんだか気になる。

さらに、昼間試してたWin2Kの環境では、大体3分に1回このリクエストが発生してるたんだよね。POSTデータ見たところフィッシング保護用のデータ取り寄せてるみたいなんだけど、なんでこんな高頻度でリクエストする必要があるんだろう

と思ってたら、自宅のXP環境ではこんな頻度ではリクエスト投げてないんだよなぁ。その代わりかしらんが、なんかUDPのポート空けてるみたい。TCPViewで眺めてたらリモートは*.*になってるのでブロードキャスト待ちなのかな。そのわりには起動ごとに違うローカルポート使ってるけど。

ちなみにChromeの[オプション] - [高度な設定] で「フィッシングや不正なソフトウェアからの保護を有効にする」のチェックをはずしておくとjp-in-fxxx.google.com/safebrowsing/downloadsへのリクエストは出さないっぽい。あとでまたWin2Kで確認してみるかな。

その他

あとは「オレオレ証明書なSSLサイトに接続しても、まっとうな証明書のサイトに接続してるのと見た目上違わなそう」とか、「for in でのプロパティ列挙で、列挙順が定義順ではない」とか細かく気になるところはあるんだけど、検証が充分じゃないのでいずれ別記事で(といって書かないことも多いんだが > 俺)。

やっぱChrome速いって。2008年09月12日 04時57分06秒

またChromeネタ。しかも中身ないし。

Chrome、速くねぇよ」とかって意見もあるわけだが、個人的にはとっても速いと思う。

上のリンクでは、「DOM操作が大したことねぇよ、Safari最強!」ってな感じだったので、ドキュメントロード時に5000個ほどノード作成→bodyにappendしてその時間を計るようなテストをしてみたら、確かにSafariには及ばないが、それでもOpera9.5よりもFirefox3よりも速い。大体こんな感じだった。

Safari > Chrome > Opera9.5 >> Firefox3 >>> IE7

これだけ見るとSafari最強!って思わなくもないんだけど、ブラウザ自体の起動速度と、ウィンドウ自体やメニューなんかの非HTML領域の描画速度が決定的に違う。Chrome最強。

Chromeはここら辺に引っ掛かりがないので体感上はSafariよりかなり速く感じる(というか、Safariは独自UIを持ち込んじゃってるのでこのあたりが軽いってことはWindows上ではありえないだろ)。でもそのうちテーマ対応したり拡張APIが提供されて拡張しまくったりとかでもっさり起動になることもあるのかも。

ま、こういう部分が気にならないスペックのPCを使ってる場合は、Firefoxつかっててもぜんぜんストレス感じないわけで、そういう環境ではSafariどころかChromeもメインブラウザの選択肢にはならんかな、と思ってたり。

あとね、こちらのエントリにあるように、canvasのパフォーマンスはもう並ぶものがない勢い。リンク先のコンテンツはcanvasを使った3Dゲーム風のデモなんだけども、元々負荷の高いコンテンツなのでウチのしょぼスペックPCだとストレスないのはChromeのみ、かろうじてSafariまでは、ってな感じ。こうね。

Chrome >>> Safari >>>> Opera >>>>>>>>>> Firefox3 >>>>> IE7

IEを比較しちゃうのは気の毒なんだけどね。しかし俺のPC、どんだけしょぼいのかと。

自分でcanvasで遊んだときは「Safari、圧倒的じゃん」というくらいSafariのcanvasは良いパフォーマンスを見せてくれてたんだけど、こういうコンテンツは、それこそV8効果なのかも。浮動小数点演算しまくるだろうから。

あー、あとどこかで書かれてたけど、setInterval/setTimeout系はChromeの独壇場みたいね。タイミング保証できちゃうようなレベル。

ってな、中身のない記事でした。