ブラウザエンジン(レイアウトエンジンまたはレンダリングエンジンとも呼ばれる)は、主要なウェブブラウザすべてに共通するコアソフトウェアコンポーネントです。ブラウザエンジンの主な役割は、 HTMLドキュメントやウェブページのその他のリソースを、ユーザーのデバイス上でインタラクティブな視覚表現に変換することです。
「ブラウザエンジン」の他に、「レイアウトエンジン」と「レンダリングエンジン」という関連用語がよく使われます。[ 1 ] [ 2 ] [ 3 ]理論的には、レイアウトとレンダリング(または「ペイント」)は異なるエンジンで処理できます。しかし実際には、これらのコンポーネントは密接に結合しており、ブラウザエンジン以外で単独で見られることはほとんどありません。[ 1 ] [ 4 ]
レイアウトとレンダリングに加えて、ブラウザエンジンはドキュメント間のセキュリティ ポリシーを適用し、ハイパー リンクによるナビゲーションとフォームから送信されたデータを処理し、ドキュメントに関連付けられたスクリプトに公開されるドキュメント オブジェクト モデル(DOM)を実装します。[ 1 ] [ 4 ]
ウェブページに幅広い動的な動作を提供するために、主要なブラウザはすべてJavaScriptをサポートしています。ただし、JavaScriptは独立したJavaScriptエンジンとして実装されており、他の場所での使用が可能になっています。ブラウザでは、2つのエンジンはDOMとWeb IDLバインディングを介して連携しています。[ 4 ]
ブラウザエンジンは、ブラウザ以外のアプリケーションでも使用されます。電子メールクライアントは、HTMLメールを表示するためにブラウザエンジンを必要とします。2010年代以降、 GoogleのChromiumプロジェクトに基づくフレームワークを使用して多くのアプリが作成されました。これらのスタンドアロンアプリはそれぞれ、Webアプリとよく似た機能を持ちます。(SpotifyとSlackはその2つの例です。)[ 5 ] [ 6 ]
ウェブページのレイアウトは通常、カスケーディングスタイルシート(CSS)によって指定されます。各スタイルシートは、ページをどのように表示するかに関する一連のルールです。たとえば、フォント、色、テキストサイズなどのタイポグラフィの詳細を指定するルールもあれば、画像の配置を決定するルールもあります。エンジンは、関連するすべてのCSSルールを組み合わせて、画面に描画する視覚表現の正確なグラフィック座標とピクセル値を計算します。[ 1 ] [ 4 ]
エンジンは、ユーザーがページをスクロールしたり、コンテンツが非同期で取得されたり、ビデオが再生されたり、キャンバスアニメーションが実行されたりするなど、新しいイベントに応じて視覚表現を更新します。また、ページのリソースがダウンロードされる前にレンダリングを開始することもあり、その結果、より多くのデータが受信されるにつれて、画像が徐々に塗りつぶされたり、スタイルが適用されていないコンテンツが一瞬表示されたりするなど、視覚的な変化が生じる可能性があります。[ 7 ]
以下の表は、このセクションで取り上げた各エンジンのアクティブな開発期間(関連する新しいWeb標準が継続的に追加されている期間)を示しています。Gecko、WebKit、およびBlinkは現在も活発に開発されていることに注意してください。

デスクトップクライアントで使用されている優れたChromium Embedded Frameworkのソースコードはこちらです。
プラットフォームの制約により、すべてのブラウザは WebKit レンダリング エンジン上に構築する必要があります。