特別企画

Webスタンダードを積極的にサポートするMicrosoft Edge

Windows 10 Anniversary Updateでの強化点を見る

WebスタンダードをサポートするEdgeHTML

 MicrosoftはEdgeを作る上で、HTMLレンダリングエンジンはWebスタンダードに従い、独自規格を作らないことを目指している。また新機能に関しては、できるだけW3Cなどに規格を提案して、スタンダード化されたモノをサポートするようにしている。これは、HTMLレンダリングエンジンだけでなく、JavaScriptエンジンに関しても同じだスタンスだ(一部、規格化途中のモノをサポートしているが)。

 面白いのは、ChromeやFirefoxとの互換性を高くするために、動画コンテナフォーマットのWebM、動画コーデックのVP9、音声コーデックのOpusをサポートしていることだ。ある意味スタンダードになった規格は、ライバル会社のモノでも積極的にサポートしていくというスタンスに変わっている。

2016年のEdgeにおけるアップデート方針は、拡張性、アクセス性、セキュリティ性、Webスタンダードへのより高い対応、オープン性などだ
2016年のEdgeではさまざまな機能の追加が行われるが、すべての機能は、W3CなどのWebスタンダードに準拠したモノになっている。またユーザーのニーズにより、機能追加のプライオリティが変化する
HTML5の互換性テストでは、Firefoxには勝っているが、Chromeには引き離されている。Microsoftの目標としては、Chromeよりも互換性が高いブラウザにしたいと考えている

 これ以外には、ブラウザ上で音声合成を行うW3CのWeb Speech Synthesis Markup Language、Web通知機能(Web Notifications)、ブラウザのFetch(フェッチ)処理を行うFetch API(Service Workerコンポーネントの一部を先取りして搭載)、Beacon API、WOFF2.0、High Resolution Time Level 2などのサポートが行われる。

Speech Synthesisがサポートされたため、Windows 10の音声合成機能を使って、Webサイトから音声を出すことができる
Fetch APIは、今後追加されるServiceWorkerで利用するAPIだ。ServiceWorkerを使うことで、オフラインでのWebアプリケーションの動作が可能になる
Woff2.0のサポートにより、Webサイトからフォントをブラウザにダウンロードすることができる。1.0に比べるとフォントの圧縮率が高くなっている
Web Notificationもサポートされた
Googleが作ったコーデックVP9やWeb MなどもWebでのスタンダードになったため、Edgeでもサポートされる
試験的なサポートとして、TCP Fast Openなど、Webサイトとのコネクションを高速化する機能が入っている

 JavaScriptエンジンに関しては、一層のパフォーマンスの向上を目指している。Microsoftのベンチマークでは、JavaScriptエンジンのChakraがほかのブラウザのJavaScriptエンジンよりも高い性能を示している。

 各社がブラウザのアップデートすれば、ベンチマークの結果も変わってくる。ただ、Microsoftのスタンスとしては、Chakraエンジンが常にトップスコアがとれるようにチューニングしていったり、高速化の新たなテクノロジーの採用などを行っていくと明言している。例えば、今回のChakraエンジンでは、ECMAScript2015のサポートやECMAScript2016の一部の機能をサポートするなどしている。

 特にChakraに関しては、オープンソースのChakraCoreにフィードバックされているため、将来的には、オープンソースのChakraCoreを使用したサードパーティのブラウザが出てくるかもしれない。

 レンダリングエンジンのEdgeHTMLに関しても、現状ではオープンソース化されていないが、将来的にはオープンソース化される可能性は否定できない。

ECMAScript2015に対応する互換性は、ChromeやFirefoxに少し負けている
今後ECMA Scriptの新規格を積極的にサポートしていく。新しいEdgeでは、ECMAScript2016やECMAScript2017の機能を一部取り込んでいる
オープンソースのChakraCoreとオリジナルのChakraの違い。ChakraCoreは、COMとのインターフェイス、ブラウザとのインターフェイス、UWPとのインターフェイスがない。これらの機能は、Windows以外のOSでは必要ない部分だ
Microsoftでは、ChakraCoreをサーバー側で使用し、Node.jsなどのパフォーマンスをアップしようと考えている。このため、Windowsだけでなく、Linuxなどの移植が行われている
Microsoftのテストでは、Chakraが現状においてもっとも高速なJavaScriptエンジンだ