連載
» 2016年09月29日 05時00分 UPDATE

Tech Basics/Catalog:HTMLレンダリングエンジン

Webブラウザの主要コンポーネントであるHTMLレンダリングエンジンとは、どういった機能を提供するものなのか。またどのようなHTMLレンダリングエンジンがあるのか。主要なHTMLレンダリングエンジンの一覧とその特徴などを解説する。

[小林章彦,デジタルアドバンテージ]

 HTMLレンダリングエンジンとは、HTML(Webページの記述用言語)で書かれた文書を解釈し、記述された文書や画像などを描画するプログラムのこと。HTMLの他、CSSXやMLなども、HTMLレンダリングエンジンによって解釈、描画される。

 例えば、HTMLで「<b>太字</b>」と書かれていた場合、HTMLレンダリングエンジンは、「<b>」と「</b>」で挟まれた部分は太字にすると解釈し、描画する文字を太字にする。この記事も、HTMLで記述されており、読者のWebブラウザ内のHTMLレンダリングエンジンで解釈、描画されているわけだ。

Webブラウザから分離・独立したHTMLレンダリングエンジン

 Webブラウザが登場した当時は、WebブラウザとHTMLレンダリングエンジンは一体であった。その後、メールクライアントやエクスプローラなどさまざまなアプリケーションでHTMLの表示機能がサポートされるようになると、それぞれでHTMLレンダリングエンジンを実装するよりも、HTMLレンダリングエンジンを独立させ、それをアプリケーションで利用する形態に変わってきた。

 HTMLが高機能化・複雑化する過程で、HTMLレンダリングエンジンの開発が大規模で難しくなってきていることもHTMLレンダリングエンジンが独立して開発された背景にあった。

 例えば、AppleのSafariなどで採用されていたWebKitは、もともとLinuxなどで採用されていたHTMLレンダリングエンジンのKHTMLを基にAppleを中心に開発したものだった。その後、Googleも開発に参加し、Google ChromeでもWebKitが採用されてきた。

HTMLレンダリングエンジンが差し代わる!?

 しかし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
主なHTMLレンダリングエンジンとWebブラウザの関係
「html5test.comスコア」は、Windows OS(SafariはmacOS)上の代表的なWebブラウザで実測した値である(値が大きいほど、より忠実にHTML5に対応している)。

■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から別のブラウザに変更する」参照のこと)。

Tridentを採用するInternet Explorer 11の画面 Tridentを採用するInternet Explorer 11の画面

■Gecko
 「Gecko(ゲッコー)」は、Mozillaプロジェクトが開発されているオープンソースのHTMLレンダリングエンジンで、もともとは「NGLayout」という名称だった。MozillaのWebブラウザ「Firefox」やメールクライアント「Mozilla Thunderbird」で採用されている。

 Windows OS/macOS/Linux/iOS/Android OSの他、BSD UNIXやSolaris、AIXなど幅広い環境に実装されているのが特徴である。

Geckoを採用するFirefox 49.0.1の画面 Geckoを採用するFirefox 49.0.1の画面

■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レンダリングエンジンとなっている。

WebKit2を採用するSafariの画面 WebKit2を採用するSafariの画面

■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レンダリングエンジンの中で最も高い値となっている。

Blinkを採用するChromeの画面 Blinkを採用するChromeの画面

Blinkを採用するVivaldiの画面 Blinkを採用するVivaldiの画面

■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のスコアに近づいている。

Edgeを採用するMicrosoft Edgeの画面 Edgeを採用するMicrosoft Edgeの画面

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。