9
07
2009
Galleria WP と WebKit系ブラウザの相性問題
Galleria WP(WordPress2.8.x)をWebKit系ブラウザで動かすとクラッシュする問題
Galleria WP をWordPress2.8系で動かしていると、Safari, Google Chrome などのWebKit系ブラウザではメモリ消費量が異常に大きくなってブラウザがクラッシュすることが頻繁に起きるようになりました.FireFox系では問題は起きないようです.
この原因はまだ突き止めていませんが、サムネイル画像を “jCarousel” でスクロール表示する部分に問題が有るようです.当面のクラッシュ回避策としては、Galleria WPの設定メニューで、サムネイル画像をタイリングモード(Tiled) に変更すれば大丈夫です.
【追記 9/14 2009】
上記の問題がどのような場合に生じるのかある程度原因を突き止めました.どうやら’jCarousel’ がサムネイル画像データの実際の width, height と、イメージタグの width, height 属性 の間に矛盾があると、UL リスト内のサムネイル画像のサイズの計算が上手く行かずに、無限ループに陥ってしまうようです.
このエラーは NextGen Gallery との組み合わせで時々起きるようで、 NextGen Gallery がサムネイル画像を生成する際に、PHPのGDライブラリを使って縮小画像を作るらしいのですが、同じ大きさの画像データでも、画像によって横幅が数ピクセル程度ばらつくことが原因のようです.
‘jCarousel’ のコードを見直して、どんな場合でもサムネイル画像のサイズの計算が正しく行えるように改善する予定です.
試しにクラッシュするNextGen Gallery のサムネイル画像を取り出し、その横幅と高さを同じサイズにクロップしなおして、正しいwidth, heightにしたところクラッシュしなくなりました.
これまでにクラッシュしたことのあるブラウザは、Safari と Google Chrome だけでしたが、FireFox系はまったくクラッシュしませんでした.
Galleria WP を使う場合は、Safari, Google Chrome とNextGen Gallery の組み合わせはなるべく避けた方が良いでしょう.