Windows Internet Explorer 8

マルチコアの活用、性能の改善、セキュリティの向上、安定性の向上といった目的を実現するため、ブラウザの設計を単一プロセスアーキテクチャからマルチプロセスアーキテクチャへ移行する動きが続いている。メジャーブラウザで最初に取り組みを開始したのはIEだ。Chromeで知名度が高まり、FirefoxもWebKit2もマルチコアアーキテクチャへの移行を進めている。

マルチコアアーキテクチャで実現を目指すところはどのブラウザもよく似ているが、そのアプローチはそれぞれ異なっている。IE8におけるプロセスモデルと、IE7以前との動作の違い、またその動作の違いを解消するための設定方法がJapan IE Support Team Blog : IE8 のプロセスモデルについてにおいて紹介されている。

IE8 のプロセスモデルについてではまずIE8のプロセスモデルであるLCIE(Loosely-Coupled IE)を紹介。LCIEはコンテンツ部分とウィンドウ部分を分離したプロセスモデルで、プロセス名はどちらもiexplore.exeになる。新規タブに新しくプロセスが割り当てられるかどうかは環境の状況によって判断される仕組みになっている。

IE8とIE7/IE6では基本的に仕組みがことなるため、これに起因した動作の違いが現れることがある。どのような違いがあるかは説明されている内容によれば次のとおり。

  • IE8では別のウィンドウから同じコンテンツにアクセスするとセッション情報が共有される。
  • IE8ではポップアップウィンドウが表示されないケースがある。
  • IE8では認証情報が付与されずに認証を求めるダイアログが起動してくるケースがある。

それぞれの問題に対処する細かい方法はIE8 のプロセスモデルについてにまとまっている。基本的には新しくキーHKLM\Software\Microsoft\Internet Explorer\MainまたはHKCU\Software\Microsoft\Internet Explorer\MainにREG_DWORD値でTabProcGrowthというレジストリを追加し、この値を0または1にすることで制御する。どういった仕組みの違いがこうした動作の違いを引き起こしているのか簡潔にまとまっていて参考になる。今後IE8のシェアが増えることを考えるとIE8の動作へ適合するように変更する方がいい対処方法と言えるが、仕組みの理解以外にも一時的な回避方法として参考になる。