IE8 と Loosely-Coupled IE (LCIE)

更新日: 2008 年 3 月 12 日


本記事は、Internet Explorer 開発チーム ブログ (英語) の翻訳記事です。本記事に含まれる情報は、Internet Explorer 開発チームブログ (英語) が作成された時点の内容であり、製品の仕様や動作内容を保証するものではありません。本記事に含まれる情報の利用については、使用条件をご参照ください。また、本記事掲載時点で、Internet Explorer 開発チーム ブログ (英語) の内容が変更されている場合があります。最新情報については、Internet Explorer 開発チームブログ (英語) をご参照ください。

翻訳元 : IE8 and Loosely-Coupled IE (LCIE) (英語)



こんにちは。Internet Explore Foundation チームのプログラム マネージャ、Andy Zeigler です。今回は、Loosely-Coupled IE、略して LCIE と呼ばれている、新しい IE8 の機能についてご説明します。

基本的に LCIE は、ブラウザの信頼性、パフォーマンス、およびスケーラビリティを改良するInternet Explorer の内部アーキテクチャの変更をまとめたものです。また、セキュリティやユーザビリティを含む、他の領域における将来的な改良への布石でもあります。私たちはこのために、ブラウザ フレームとタブを分離し、コンポーネント間の非同期通信を使用するように変更しました。

この投稿では、IE8 Beta 1 に加えた変更点について順を追って説明していきます。

コンピュータは、あらゆる種類のソフトウェアがプリロードされた状態で出荷されることにお気づきかと思います。プリロードされたソフトウェアの多くは有用で正しく動作しますが、IE のアドオンを含むそのうちのいくつかは、クラッシュしたり、ブラウジング エクスペリエンスを妨害したりする可能性があります。Internet Explorer のサードパーティ アドオンは COM ベースであり、開発者は高パフォーマンスで強力な機能を持ったアドオンを作成することが可能です。これは、IE と実行中のアドオンは同じプロセスとメモリ アドレス空間を共有していることも意味します。なので、アドオンがクラッシュすれば、ブラウザ全体がクラッシュします。Windows エラー報告のデータを分析したところ、IE のハングやクラッシュの原因の 70% 以上はサードパーティのアドオンによるものでした。私たちはインストール率の高いアドオンのベンダと協力し、アドオンの品質向上に尽力しています。ですが、利用できるアドオンの数が多いため、すべての開発者に協力することは現実的には難しいところがあります。

IE プロセス モデル

LCIE での実施内容の一部は、フレームをタブから分離し、より自律的に機能できるようにしたことです。少し気分を変えましょう。IE7 のプロセス モデルを少し単純化したブロック図を次に示します。

IE7 モデルでは、各ブラウザ ウィンドウ (UI フレーム) は通常、独自のプロセスを持っていますが、いくつか例外があります。たとえば、ctrl キーを押しながら n キーを押して新規ウィンドウを開く場合、IE は同一プロセス内に新規 UI フレームを作成します。タブ、ツールバー拡張機能、ブラウザ ヘルパー オブジェクト、およびActiveX コントロールは、すべてブラウザ ウィンドウと同一プロセスにあります。このモデルの問題は、アクセス違反、スタック オーバーフロー、その他の障害が 1 つ起こっただけで、ブラウザ全体およびすべてのタブがクラッシュすることです。

次に示すのは、このプロセス モデルを IE8 でどのように変更したかを示すブロック図です。

いくつかの注目すべき変更点を次に示します。

  • タブはフレームから分離され、独立したプロセスに存在

これにより、IE はタブ プロセスで生じる多くの障害を分離することが可能になり、他のブラウジング セッションに与えるダメージの量を軽減します。

  • フレームとブローカオブジェクトは同一プロセス内に存在

これにより、スタートアップ パフォーマンスは向上しますブローカ オブジェクトは URL を検査し、保護モードでロードすべきかどうかを決定し、IE を適切な整合性レベルで起動します。ブラウザの他のオブジェクトをロードする前に、保護モード ブローカ オブジェクトのスタートアップ プロセスを待つ必要はもうありません。

  • 低および中間整合性タブは同一UIフレームに存在可能

Windows 統合メカニズムはプロセス単位で動作します。タブをそのタブ自身のプロセスに置けるようになったため、タブごとに保護モードをオンまたはオフにできます。これは、ユーザビリティの大きな改良です。これからは、サイトを表示するときに、保護モードのオン/オフごとに別々のブラウザ ウィンドウを立ち上げる必要はありません。

LCIE の動作を見る

これらはすべて内部アーキテクチャの変更ですが、その効果はいくつかの方法で目視できます。

一例を挙げましょう。Windows Vista が動作しているコンピュータで Internet Explorer を開き、Web サイトをいくつか参照し、次にハード ディスクから HTML ページを開きます。そのページが、既存のタブに並んで、同一ウィンドウのタブで開くことに注意してください。従来は、「Internet Explorer はこの Web ページを新規ウィンドウに表示する必要があります」というダイアログを表示していました。これは、インターネット ファイルは保護モードで実行する必要がある一方で、ローカル ファイルは保護モード外で開く必要があり、単一のプロセスは 1 つの整合性レベルに関してしか実行できなかったためです。LCIE では、単純に 2 つのタブ プロセスを、1 つはインターネット ファイル用の保護モードで、1 つはローカル ファイル用に保護モードをオフで作成します。上述のダイアログはもう表示されません。

IE8 には、Automatic Crash Recovery と呼ばれる新機能もあります。これはタブ分離を利用して、とても新しくエキサイティングな方法でクラッシュから回復する機能です。この新機能についても、まもなく投稿する予定です。

ありがとうございました。

Andy Zeigler
プログラム マネージャ

編集 : 1 番目のイメージを更新。「LCIE の動作を見る」のセクションの説明を追加。

2008 年 3 月 11 日 火曜日 午後 3 時 50 分発行 (ieblog (英語) 上)

タグ : General IE Information (英語)、Developers (英語)

 

ページのトップへページのトップへ