Windows 10用のWebブラウザーとして、「Project Spartan」の開発が進められている。以前のレポート記事で述べたように、下位互換性を維持するため、従来のTridentエンジンと新たなEdgeエンジンの両方を搭載する予定だ。その具体的な相違点や内容について、Project SpartanのプリシンバルプログラムマネジャーであるCharles Morris氏の投稿記事を読み解く。

現在開発中の「Project Spartan」。タッチや音声など新たな操作に対応する予定だ

新レンダリングエンジン「Edge」に至った理由とは

2015年はInternet Explorerのファーストバージョンリリースから数えて、ちょうど20年目にあたる。当初はSpyglassからライセンスを受けたNCSA Mosaicをベースに開発し、現在のTridentエンジンに切り替わったのは1997年リリースのInternet Explorer 4以降。その後もバージョンアップを繰り返してきた。

大きく変化したのはTrident 4.0(2009年のInternet Explorer 8)からである。Webコンテンツをスピーディかつ最適に表示するため、サブシステムという仕組みを加えた。下図はInternet Explorer 11のサブシステム構造である。例えばHTMLセクションは、ネットワークから受信したデータを、HTMLサブシステムに渡してドキュメントを解析し、ドキュメントの構造表現を作成するという。

(公式ブログより)IEにおけるサブシステムの概要(図はInternet Explorer 11の構成)

Internet Explorer 11のTridentはバージョン7.0だが、この十数年はサブシステム単位の最適化や新Web技術への対応、標準規格への準拠、GPUなどのハードウェアアクセラレーションを利用など、少しずつ歩みを進めてきた。一見すると乏しい改良で凌いできた印象を持ちかねないが、開発チームは440億ものWebサイトからトラフィック量の88%を占める9,000のWebサイトをテスト対象として選考。新しいTridentエンジンが正しく動作するかテストしてきたと、Morris氏は述べている。それでも同僚や家族からマイナーなWebサイトで正しく動作しないなどの苦情はあったそうだ。

Project SpartanのプリシンバルプログラムマネジャーであるCharles Morris氏

この点を改善するためWebブラウザー開発チームは、以下4つのアプローチで対応を試みた。1つめは「モダンvsレガシー」。多くの企業内イントラネットは先進性よりも互換性が重要だが、モダンWebブラウザーはHTML5といった新たな技術をサポートしなければならない。Microsoftはドキュメント互換モードをInternet Explorer 8から搭載してきたが、完全互換には至らなかった。

2つめは「CV(互換表示)一覧」。あらかじめ正しく表示されないWebサイトをデータベース化し、マッチするサイトは互換表示で古いInternet Explorerの動作をエミュレートするというものだ。3つめは「ユーザーエージェント」。ドキュメント内やHTTPヘッダー内のX-UA-Compatibleメタtagでレンダリングエンジンのバージョンを指定する。そして4つめは「標準化」。HTML5を焦点にエンジンを構築するというものだが、開発時点におけるW3Cの標準ドキュメントはドラフトだったため、結果的に多くのバグが発生するに至ったとMorris氏は語っている。

チーム内で議論を重ねる開発メンバー。付箋を指差しているのがシニアプログラムマネージャーのJacob Rossi氏

開発チームが舵を切ったのは、Microsoft CEOであるSatya Nadella氏の発言「現実に直面する勇気」だという。Nadella氏の就任が同社に大きな変化を与えてるのは周知のとおりだが、その影響はWebブラウザーにも及んだといえよう。EdgeはTrident(MSHTML.dll)をフォーク(分岐)し、古いドキュメントモードと古いInternet Explorerの実装を取り除いているが、下位互換性を維持するため、EdgeとTridentをシームレスに切り替える機能も実装する予定。それに伴い新しいユーザーエージェントの採用やCVリストへの依存を減らことに成功したという。

現在、Microsoftは内部の開発プロセスを修正し、3,000以上もの相互運用バグをつぶすことに成功したという。その開発状況はstatus.modern.IEで確認でき、執筆時点では47ものWeb技術に対応したことが見て取れる。中には、JavaScriptの実行速度を改善する「ASM.js」や、今後の標準プロトコルとなる「HTTP/2」が並んでいた。

Webブラウザーの開発状況を示すWebサイト。昨今話題の「ASM.js」もリストに並んでいる

過去からの脱却を目指す新Webブラウザーの登場は、Internet ExplorerがMozilla FirefoxやGoogle Chromeとの混戦状態から抜きん出るために必要な一手である。SaaSなどあらゆるクラウドサービスの窓口となるWebブラウザーの重要性は語るまでもないが、クラウド時代に担うにふさわしいProject Spartanの登場を心待ちにしたい。

阿久津良和(Cactus)