Google Chrome、その後2008年09月16日 03時17分08秒

まだしつこくChromeで遊んでるので、前回前々回のその後をば。大したネタじゃないんだけど。

Greasemetalは動きますな。

前々回のエントリではSafari対応版のoAutoPagerizeがうまく動かないって話書いたんだけど、どうもページ表示直後に動作しない状態だったらしく、ちょっと待つと動いたり、リロードすると動いたり、といった感じのようですな。

プロセス間通信のオーバーヘッドも大きいのか、自宅PCではちと負荷が高めだし、Firefoxのようにさくさくとはいかないけどtumblrのダッシュボード限定とかいった感じで使えてます。

ほんとはグリモンよりJSActionのほうがほしいんだけどねぇ。

safebrowsing/downloadsへのアクセス

やっぱりWin2Kだとなぜか約3分に1回アクセスしてる。けど、「フィッシングや不正なソフトウェアからの保護を有効にする」をオフにしておけばアクセスそのものが発生しないので、まぁ気にするほどでもないかと。

ちなみに上記URLからのリスト取得(というか「Safe Browsing」機能、か)はFirefox3にも実装されてて、こちらは30分ごとにアクセスしてるみたい。

あ、あと

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

canvasの速さ

てっきりV8パワーかと思ってたんだけど、前回のエントリをネタにしてくださったロックスターになりたいさんでこんな記述が。

chromeのcanvasはskiaのパワーみたいです。
なるほど、グラフィックライブラリの性能ってのも要因足りうるのかぁ。

そんで、使うの?使わんの?

レンダリングには問題ないし、動作はきびきびしている(たまにメニュークリックしても反応しないことがあるが)し、単純なWebブラウジングの性能はまったく文句ないんだけど、個人的には最低限JSActionのような、メニューから実行するユーザスクリプト機能がないとメインブラウザにはできないなぁ。

あと、これはまず無理だけど、Tomblooみたいなtumblrへのクイックポスト機能もはずせないんだよなぁ。

やっぱ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の独壇場みたいね。タイミング保証できちゃうようなレベル。

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

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 でのプロパティ列挙で、列挙順が定義順ではない」とか細かく気になるところはあるんだけど、検証が充分じゃないのでいずれ別記事で(といって書かないことも多いんだが > 俺)。

Potable ChromeをWin2Kに入れてみた2008年09月10日 04時34分14秒

Google Chromeっすか!

前のエントリでも書いたが、9月の頭から1週間ほど現実逃避をしていたのだが、その間のコンピュータのコの字もない生活をしているうちにGoogle ChromeなるWebブラウザをリリースしており、あちこちで当然のごとく話題に上っていた。

どうやらめちゃっ速らしいので早速インストールしてみたところ、確かに目が覚めるように速いのだが、

  • グリモンやらJSAやらAll-in-One Gesturesやらで重装備したFirefoxの操作性にはかなわない
  • こんな話が聞こえてくるぐらい、プライバシーに対する基本的な考え方が疑問
なので、当面レンダリングの確認やらスクリプトのチェックくらいにとどめておこうかといった按配だった。

Win2Kで動くかな?

が、GMail限定とかなら先にあげたネガティブ要素くらいは気にならないので、会社のセカンドマシン(Win2K)に入れようかと思ったが、これまたXP/Vista向けってことで調べてみることに。

google chrome win2kなんてベタキーワードでお伺いをたててみると真っ先に引っかかるのが以前Win2KでSafariを安定動作させる方法をトラックバックで教えてくださった黒翼猫氏の記事。やっぱりWin2Kに対する愛が違うなぁ。

で、その記事を見てみると、ダウンロードページで阻害され、インストーラがヘソを曲げ、といった、予想以上の厳しさ

ポータブル版ならインストール楽じゃね?

氏の記事の手順で確かに動かせるのだが、インストーラの段階からいろいろしなきゃならない(黒翼猫氏がこの辺りを楽にできるバッチを配布してはいるのだが)のはさすがにしんどいと思っていたらMOONGIFTにこの記事が。

ポータブル版ならうまくすれば単なるZIPアーカイブとかの可能性が高いので早速こちらのページからダウンロードしてみたら、7-zipの自己解凍形式。よし!

早速クラッシュですよ?

で、ダウンロードしたexeを解凍ツールで解凍してローカルディスクに配置、起動。早速「Win2Kじゃ保証しねぇぞ、ゴルァ」とアラートがでることは覚悟していたのだが秒速クラッシュ。しかもタチが悪いことにエラーダイアログを閉じるとまた速攻クラッシュの無間地獄に陥るし。きつぅ。

解決策を探ると、またもや...

で、またまたGoogle先生のご神託を賜ったところ、またもや黒翼猫氏が動作させてるし。ほんとにすごい人だな。

手順は黒翼猫氏の記事のとおりでほぼ問題ないが、一応流れをまとめてみる。

  1. まずGoogle Gears\localserver.db がファイルであることを確認。氏の記事は04.09.2008版のようだが、この記事を書いている段階ではより新しい08.09.208版がダウンロードでき、dara-jが確認した限りではこの問題は解消されているようだったが、念のため。
  2. 氏の作成したXP向けAPI提供ツールセットKDWをダウンロード、任意のフォルダに展開する。
  3. 展開したKDWフォルダ内のkdllinst.exeを起動、記事を参考に必要なラッパーDLLを[Portable Chromeのインストールフォルダ]\Chrome にEz Install。氏の記事の図中の番号どおりに操作をするように。

chrome.dllを書き換える場合は

単にKDWでラッパーをインストールしただけだと起動時に毎回「Win2Kじゃ保証しねぇぞ、ゴルァ」アラートが表示されるのだが、これが気になる向き(って、みんな気になるわな)は、やはり氏の記事に示されている手順でchrome.dllを書き換える必要がある。

ところが、現在ダウンロードできるPortable Chromeは氏の記事で動かしているものより新しいバージョンになるため、書き換え対象のアドレスが変更されている。04.09.2008版では0x0008F317となっているが、dara-jが動作させてみた08.09.208版では0x00090D05になっていたのでご注意されたし。

余談

Google Chromeが速いのはメモリ消費量とのトレードオフだ、みたいな話もあるようだが、すくなくともdara-jの環境ではFirefoxのほうがよっぽどメモリを消費しているので、気にならない。厳密に比べてみてはいないがOperaやSafariも同程度のメモリ消費なのでは?といった感じだ。ただしChromeはマルチプロセスで起動するようなので、タブをいっぱい開くとこの限りではないかも。

あと、細かく検証していないが下記の2点がちと気になっている。

  • オレオレ証明書なSSLサイトに接続しても警告してくれない風味。職場の環境でしか試していないのでどっかオレオレ証明書サイトを探して追加確認してみるかな。
  • JavaScriptから別ウィンドウ(別タブ)開くときにポップアップブロックに引っかからない風味。Firefoxみたいにオープンできる数に制限でも設けてるのだろうか。それとも新規ウィンドウ開きまくるブラクラは大歓迎といった姿勢なのだろうか。