EdgeのIEモードやさまざまなアプリのために
IEのコンポーネントはシステム内に残る
下の図は、MSのサイトにあるIEの構造図だ。図の一番上にあるのがIEの実行ファイルであるiexplorer.exe。しかし、IEをブラウザとして成り立たせるための機能の大半が、iexplorer.exeの外にあるDLL(Dynamic Link Library)ファイルに分散されて格納されている。
●Internet Explorer Architecture
https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/aa741312(v=vs.85)
つまり、2022年6月15日で終わりになるのは、一番上の部分だけで残りの部分はそのまま残る。というか、これが残らないとEdgeのIEモードが動かない。IEモードは、Edgeという枠の中でIE11と同等の機能を動かすもので、そのためにはIE11のDLLが必要になるからだ。また、世の中にはこれらの「コンポーネント」に依存したプログラムが多数ある。マイクロソフトはアプリケーション開発者向けに「Web Browserコントロール」などの形で、IEの機能を提供していたからだ。コンポーネントがなくなったら、それらが全部動かなくなってしまう。
どうして、こんな構造になったのかというと、話は1997年のIE4にさかのぼる。このバージョンからIEは、Windowsの一部となり、Windowsとともに提供されるようになった。このとき、Windows ExplorerはIEと同じく、MSHTMLなどのコンポーネントを利用するようになった。
たとえばWindows XPまでは、Explorerのアドレス欄には、URLを入れることができ、そうすると、Explorerが普段ファイルを表示している領域にWebページが表示される。いま手元にXPマシンがないので、仮想マシンに入れてみたのがだ。
ExplorerにURLを入れるとファイルの代わりにウェブページが表示されるようになる。また、IEとExplorerはツールバーがよく似ており、左側のボタンのところが共通だ。Windows 95や98の頃は、デスクトップ自体がウェブブラウザだった。ある日PCを起動してみたらデスクトップが404になっていることもあった。
そしてアプリケーションは、Explorer同様にIEの機能を利用できるようになった。これらは、COMコンポーネントとして実現されており、アプリケーションからは比較的簡単に利用できた。ソフトウェア開発者から見ると、これは大きな進歩だった。自分のアプリケーションのウィンドウの中で、IEのようにHTMLをインターネットから持ってきて表示できるのである。こんなものをゼロから作ることを考えただけでぞっとする。
このためにIEは、Windows 98からはWindowsと一緒に配布されるようになった。これを世間は「IEがWindowsにバンドルされている」と解した。これでマイクロソフトはかなり損したのではないかと思う。しかも、「IEはWindowsに組み込まれていて分離できない」と正論でしか反論していない。結果的にWindows 7では、Windows Media Playerなども含まれていないEU向けの「N」が付くエディションを作り、他社ブラウザを選択できる「Choice Screen」をつけることでEUと合意した。
IEのスクリプト実行機能も別コンポーネントとして独立しており、これをWindows側にスクリプト言語として開放したのがWSH(Windows Scripting Host)だ。JavaScriptはIEの競合であるNetscapeの提案になるものだが、ECMA(当時はEuropean Computer Manufacturers Association)で規格化されたため、Microsoftも採用せざるを得なくなった。マイクロソフトには、Visual BASICをベースにしたVBScriptがあったため、どちらもコンポーネント化した。
こうしたコンポーネント化が進み、多くのIE関連技術は、Windows側でも利用することから、さまざまに拡張された。1番大きな貢献は、ブラウザのJavaScript(マイクロソフトはJScriptと呼んだ)から、HTTPプロトコルを使ってデータを取得できるようになったことだろう。
これが可能になる前、ウェブはいわば紙芝居のようなものだった。リンクに埋め込まれたURLからHTMLを取得して新しいページを表示することの繰り返ししかできなかった。しかし、ウェブページに含まれるJavaScriptがHTTPプロトコルを直接使ってデータを受け取ることができるなら、それを使ってページの一部を書き換えることもできる。つまり、紙芝居がテレビになったのである。
当時これはDynamic HTMLなどと呼ばれていたが、大きな可能性を多数のユーザーに見せたのは2005年のGoogleマップだった。当時のマイクロソフトは、ウェブサービス(インターネットを使ってサーバー同士が連携するもの)や.NETの普及が全社的な方針であり、Windows VistaやAzureの開発に追われていた。その結果、IEがのちにAjaxと呼ばれる技術の「苗床」であることにまったく無頓着なように見えた。しかし、Googleマップの成功によって、グーグルは自社製ブラウザの開発に進むことになる。ChromeはGoogleマップを可能にしたIEを手本とし、これを追い越すために作られたブラウザーなのである。
マイクロソフトは、JITコンパイラーを内蔵するJavaScriptエンジンであるChakraを開発してIE9から搭載するが、Windows 8でのつまずきなどもあり、IEでのシェア挽回はならなかった。Windows 10では過去のしがらみ(互換性)を捨て、作り直したEdgeに切り替え捲土重来を図った。このときIEは開発中止となり運命が決まった。しかし、IEを開発中止に追い込んだEdgeもまた終了。マイクロソフトはオープンソース版のChromeであるChromiumから作ったブラウザにEdgeという名前を付けた。そして、その方針をいま淡淡と実行し、IE11の寿命を2029年と定めたわけだ。
そういうわけで、iexplorer.exeは来年からは動かなくなるが、根幹部分であるMSHTMLなどのコンポーネントは、2029年まで残ることになる。その意味では「Internet Explorer」は、まだ「終わって」はいない。
この連載の記事
-
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る -
第448回
PC
PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道 -
第447回
PC
この秋登場のWindows 11の新バージョン、Ver.24H2の状況を見る - この連載の一覧へ