Hatena::Groupsubtech

ういはるかぜの化学

Friday, December 06, 2013

Internet Explorer環境依存トラブルの原因を探る 14:01 Internet Explorerの環境依存トラブルの原因を探る - ういはるかぜの化学 を含むブックマーク はてなブックマーク - Internet Explorerの環境依存トラブルの原因を探る - ういはるかぜの化学

このエントリーInternet Explorer Advent Calendar 2013の6日目です。

ちょうど電話番号が載っているサイトをIE10で見ると真っ暗になったりフリーズする!? | 東京上野のWeb制作会社LIGというエントリちょっと話題になっていました。どうも電話番号的な文字列が含まれているとハングアップするバグがある!!という話ですが、以下の理由からInternet Explorerバグというより何らかの外的要因(環境依存)の予感がしています

特に最後のは何かしらが電話番号的な文字列を探して加工しているような感じの挙動に見えます

問題の出どころと試してみること

実際にブラウザに影響を与える外的要因となるのは以下のようなものがあるのでこのあたりを疑っていきます

問題は外的な要因によるものと仮定して原因を探るには以下のような方法があります

例の問題はコンテンツレンダリングによるものというよりはコンテンツのものに干渉しようとした何かが問題となっている雰囲気があるのでGPUアクセラレーションオフにするとかでは解決しない気がしますね。

アドオンをすべて無効にして起動する

まず最初に試してみるべきはアドオンを完全無効化した状態で起動してみることです。アドオン無効にするにはアドオン管理画面からぽちぽちやるのではなくInternet Explorerアドオンなしモードで起動するのが漏れもなく簡単です。

Windows 7/Vista

スタートメニューでInternet Explorer検索すると「Internet Explorer (アドオンなし)」という項目が見つかるのでそれで起動します。

Windows 8

ファイル名を指定して実行やコマンドプロンプトから iexplore.exe -extoff とオプションを指定して起動します。

f:id:mayuki:20131207135333p:image

スクリーンショットInternet Explorer 11

この状態ではInternet Explorerアドオン無効となっています。これで問題が発生するかどうかを確認します。

もし問題が発生しないのであれば問題の原因はアドオンにあることになるのでアドオン管理から一つ一つしらみつぶししていくことになります

Internet Explorerの設定をリセットする

アドオン無効にしてもやはり問題が発生する、そんなときInternet Explorerの設定をリセットします。リセットするとすべての設定はデフォルトに戻り、アドオンはすべて無効化されます。なおユーザーデーター(お気に入りとかパスワードとか履歴とか)は残ります

リセットインターネットオプションの「詳細設定」からリセット」をクリックすることで実行できます

f:id:mayuki:20131207135500p:image

それでも問題が起こる…

ここまで来ると問題を見つけるのはかなり難しくなりますアドオン以外で怪しいものとすると、GPUや外部プロセスといったあたりになります

GPUアクセラレーションオフにする

色々なサイトでちょこちょこ固まったりクラッシュするという場合にはGPUアクセラレーションを疑ってみるのも解決になるかもしれません。

まずはドライバ更新がないか確認してみます特にない場合にはGPUアクセラレーションオフにするのを試してみます

GPUアクセラレーションオフにするにはインターネットオプションの詳細設定からGPU レンダリングでなく、ソフトウェア レンダリングを使用する」のチェックを入れることでGPUを使わなくなります(当然パフォーマンスが落ちます)。なおチェックを付けられないときはそもそもGPUを利用していません。

f:id:mayuki:20131207135335p:image

それ以外で問題を引き起こすもの

外部のアプリケーションから干渉を受けている場合、なかなか問題の原因を見つけようにも見つけにくいので結構お手上げ状態になります。あのアプリが実はページの内容を見張っていた!とか探すのが難しいです。

それでもできるいくつかの試せることとして以下のようなものがあります

この辺を試してちゃんと動くとすればそれはやはり外部から影響を受けているとみてよいでしょう。

まとめ

あの環境では起こるのに他のほとんどの環境では起こらないというときはまずInternet Explorerのものバグというよりは環境依存の問題のほうが高くなります。逆に大多数の環境で再現するのであればInternet Explorerバグ、と考えても大丈夫だと思います

またアドオンは知らないうちに仕込まれていたりするので一度無効にして起動してみるというのは覚えておいて損はないと思います

おまけ: (超上級者向け)IEDiagCmd.exeレポートを出して眺める

Program Files\Internet Explorerにiediagcmd.exeという実行ファイルがありまして、これを実行すると診断情報を詰め込んだIEDiag.cabというものを吐きだしてくれます

この中にはアドオン情報などが入ったXMLログファイルが詰め込まれているのですが、残念なことにビューアーがない(Platform Preview時代とかはあった)のでエクストリームXML閲覧となります

誰かこれのビューアーを作ってくれないですかねー。

トラックバック - http://subtech.g.hatena.ne.jp/mayuki/20131206