Webブラウザの主要コンポーネントであるHTMLレンダリングエンジンとは、どういった機能を提供するものなのか。またどのようなHTMLレンダリングエンジンがあるのか。主要なHTMLレンダリングエンジンの一覧とその特徴などを解説する。
HTMLレンダリングエンジンとは、HTML(Webページの記述用言語)で書かれた文書を解釈し、記述された文書や画像などを描画するプログラムのこと。HTMLの他、CSSXやMLなども、HTMLレンダリングエンジンによって解釈、描画される。
例えば、HTMLで「<b>太字</b>」と書かれていた場合、HTMLレンダリングエンジンは、「<b>」と「</b>」で挟まれた部分は太字にすると解釈し、描画する文字を太字にする。この記事も、HTMLで記述されており、読者のWebブラウザ内のHTMLレンダリングエンジンで解釈、描画されているわけだ。
Webブラウザが登場した当時は、WebブラウザとHTMLレンダリングエンジンは一体であった。その後、メールクライアントやエクスプローラなどさまざまなアプリケーションでHTMLの表示機能がサポートされるようになると、それぞれでHTMLレンダリングエンジンを実装するよりも、HTMLレンダリングエンジンを独立させ、それをアプリケーションで利用する形態に変わってきた。
HTMLが高機能化・複雑化する過程で、HTMLレンダリングエンジンの開発が大規模で難しくなってきていることもHTMLレンダリングエンジンが独立して開発された背景にあった。
例えば、AppleのSafariなどで採用されていたWebKitは、もともとLinuxなどで採用されていたHTMLレンダリングエンジンのKHTMLを基にAppleを中心に開発したものだった。その後、Googleも開発に参加し、Google ChromeでもWebKitが採用されてきた。
しかしGoogleは、Chromiumプロジェクトで2013年にWebKitを基にした新しいHTMLレンダリングエンジン「Blink」の開発を開始し、これをGoogle ChromeのHTMLレンダリングエンジンに変更した。ほぼ同時に、WebKitを採用していたOperaもBlinkへの移行を行っている。
このようにWebブラウザやそのバージョンによっても、採用するHTMLレンダリングエンジンが変わってきている。そこで、主なHTMLレンダリングエンジンと、それを採用するWebブラウザの関係を下表にまとめてみた。他にもKonquerorが採用するKHTMLやQtHTMLなどのHTMLレンダリングエンジンもあるが、著名(シェアが高い)Webブラウザで採用しているものがないのでここでは取り上げない。
なお、各HTMLレンダリングエンジンの紹介部分で掲載している画面は、Windows OS(SafariはOS X)上の代表的なWebブラウザで、HMTL5の対応状況をスコアで示してくれる「html5test.com(June 2016 - version 8.0)」で計測した結果である。
レンダリングエンジン | 対応OS | html5test.comスコア | ||||
---|---|---|---|---|---|---|
Windows | macOS | Linux | iOS | Android | ||
Trident | Internet Explorer | − | − | − | − | 312 |
Gecko | Firefox | Firefox | Firefox | Firefox | Firefox | 465 |
WebKit2 | − | Safari 5.1以降 | − | Safari(iOS 8以降) | − | 380 |
Blink | Chrome 28以降 Opera 15以降 Vivaldi Sleipnir 4.3.0.4000以降 |
Chrome 28以降 Opera 15以降 Vivaldi |
Chrome 28以降 Opera 15以降 Vivaldi |
Chrome 28以降 | Android 4.4以降の標準ブラウザ Chrome Opera Mobile |
499 |
Edge | Microsoft Edge | − | − | − | − | 460 |
■Trident
「Trident(トライデント)」は、MicrosoftがInternet Explorer(IE)向けに開発したHTMLレンダリングエンジンで、ライブラリ名にちなんで「MSHTML」と呼ばれることもある。最新のInternet Explorer 11では、「Trident/7.0」が採用されている。
Microsoftは、Tridentを利用したWebブラウザの機能を他のアプリケーションからも使用可能にする「IEコンポーネント」という形でも提供している。そのため、このIEコンポーネントの形でTridentをHTMLレンダリングエンジンとして利用しているアプリケーションが多く存在する。例えば、ChromeやFirefoxなどの上で、IEと同じ描画を可能とする「IE Tab」といった拡張機能や、RealPlayerなどのアプリケーションのビルトインブラウザとしても採用されている。
Tridentは、過去との互換性を維持するため、逆に最新の規格や仕様への対応が遅れたり、矛盾が生じたりするといった不都合も生じていた。そのためWeb開発者は、最新のWebページの表示において、WebKitやBlinkといった他のHTMLレンダリングエンジンに対して、Tridentを別扱いで処理しなければならないことがあった。
そこでMicrosoftは、Windows 10より、後述する「Microsoft Edge」を標準Webブラウザに変更している。Tridentを採用するIE 11もWindows 10には搭載されているものの、デフォルトブラウザはMicrosoft Edgeとなっている(変更は可能。Tech TIPS:「Windows 10のデフォルトのWebブラウザをMicrosoft Edgeから別のブラウザに変更する」参照のこと)。
■Gecko
「Gecko(ゲッコー)」は、Mozillaプロジェクトが開発されているオープンソースのHTMLレンダリングエンジンで、もともとは「NGLayout」という名称だった。MozillaのWebブラウザ「Firefox」やメールクライアント「Mozilla Thunderbird」で採用されている。
Windows OS/macOS/Linux/iOS/Android OSの他、BSD UNIXやSolaris、AIXなど幅広い環境に実装されているのが特徴である。
■WebKit2
「WebKit2」は、Appleが中心に開発を行っているオープンソースのHTMLレンダリングエンジンである。
前述の通り、WebKit2の前身となる「WebKit」は、KHTMLを基にMac OS X(現macOS)に搭載するSafari用のHTMLレンダリングエンジンとして開発が行われたものだ。その後、WebKitから分離プロセスモデルを採用するなど、大幅にAPIの仕様などを変更したWebKit2に変わっている。さらにAppleとGoogle間の開発方針の衝突などから、WebKit2の開発からGoogleが抜け、その影響からWebKit2からGoogle V8 JavaScript Engine(JavaScript実行エンジン)など主にGoogleが開発を主導したChrome主体のコードを排除するなどしている。
以前はWindows OS版のSafariも提供されていたが、現在、提供は中止されている。そのためWebKit2は、macOSとiOSのSafari用HTMLレンダリングエンジンとなっている。
■Blink
「Blink(ブリンク)」は、WebKitを基にChromiumプロジェクトで開発を行っているオープンソースのHTMLレンダリングエンジンである。前述の通り、ChromeやOperaはWebKitを採用してきたが、Appleとの開発方針などの違いから、WebKitを基にしたBlinkを開発した。そのため、Chrome 28、Opera 15以降は、HTMLレンダリングエンジンにBlinkを採用している(それ以前はWebKit)。
Blinkは、Chromeの他にもOpera、Vivaldi、Sleipnirなどが採用しており、さまざまな調査により、現在最も普及率の高いHTMLレンダリングエンジンとなっている。HTML5への対応も早く、html5test.comにおいて、555ポイント中499ポイントと今回取り上げたHTMLレンダリングエンジンの中で最も高い値となっている。
■Edge
「Edge(エッジ)」は、Windows 10の標準Webブラウザ「Microsoft Edge」のHTMLレンダリングエンジンとして、Tridentをベースとして開発された。ライブラリ名にちなんで「EdgeHTML」と呼ばれることもある。Tridentから、ドキュメントモードやIE固有の機能を300以上削除し、4200以上の修正を行ってWebkitやBlink、Geckoとの相互運用性を確保したという。
EdgeもTridentと同様、Webブラウザの機能を他のアプリケーションからも使用可能にする「コンポーネント」という形でも提供されている。
なおWindows 10 2016 Anniversary Updateでは、Edge 14が提供されている。Edge 14では、WebRTC 1.0のサポートを追加やHTML5への対応強化などが行われているとのこと。実際、html5test.comのスコアは、Anniversary Update のEdge 13では433であったスコアが、Edge 14では460まで上がっており、Geckoのスコアに近づいている。
Copyright© Digital Advantage Corp. All Rights Reserved.