用語辞典・OS・ブラウザ

Chrome

Chromeとは

Google Chrome(グーグル・クローム)は、Googleが開発するChromium系のWebブラウザです。アドレス欄、タブ、履歴、ブックマーク、ダウンロード、パスワード管理、プロファイル、拡張等を備えた、利用者がインストールして使う完成した製品です。

多くのプラットフォーム版はオープンソースプロジェクトのChromiumを基盤に、レンダリングのBlink(ブリンク)、JavaScript・WebAssembly実行のV8(ブイエイト)、グラフィックスのSkia(スキア)等を組み合わせます。

ChromeとChromiumは同義ではありません。共通ソースがあっても、配布、更新、署名、プロファイル同期、メディア対応、方針、branding、サポートを含む製品全体は別です。

完成したブラウザー製品の機能群を、共通基盤・処理分離・エンジン・ネットワーク・保存領域の上へ重ねるツールバーの見た目、製品サービス、Chromiumのソース層を分ける
一般的なブラウザー製品のタブ、アドレス欄、ブックマーク、ダウンロード、プロファイル、パスワード、安全性、同期、設定の上層と、サンドボックス、複数描画処理、ネットワーク、描画、保存領域からなる下層を分けたピクトグラム図解
図1利用者が触るChromeは、Webコンテンツを処理するエンジンだけでなく、更新・プロファイル・設定・安全機能を含むブラウザー製品です。

Chromeを六つの層で見る

Browser UIタブとナビゲーションを操作

アドレス欄、戻る・進む、ブックマーク、ダウンロード、設定を提供します。

Product services更新とプロファイルを管理

配布チャネル、署名更新、同期、管理対象方針等を製品として運用します。

Blink文書を解釈して描画

HTML・CSS・DOM・レイアウト・描画等のWebプラットフォーム処理を担います。

V8スクリプトとモジュールを実行

JavaScriptとWebAssemblyを解析、コンパイル、executeします。

Services通信と保存を分離

ネットワーク、GPU、保存領域等を処理やサービスとして協調させます。

サンドボックスサイトの影響範囲を狭める

描画プロセスを分離し、権限を持つ仲介プロセスへ必要な操作だけを依頼します。

アドレス欄はURL入力と検索の入口を兼ねる

Chromeのアドレス欄はomnibox(オムニボックス)と呼ばれ、URL、検索語、履歴・ブックマーク候補、タブ検索等を同じ入力面で扱います。入力がURLらしいか検索語らしいかを判定し、選択した検索エンジンやナビゲーションへ渡します。

同じ欄に見えるため「Webサイト内検索」と混同しやすいのですが、ページ内の検索ボックスとは別です。アドレス欄の鍵やサイト情報アイコンは現在のオリジンと接続状態を示し、検索結果の安全性を保証する印ではありません。

一つのプログラムでも処理は一つではない

ブラウザープロセスがウィンドウ、タブ、権限、ナビゲーションを調整し、描画プロセスがサイトコンテンツを処理します。さらにネットワークサービス、GPUプロセス、補助プロセス等へ役割を分けます。

site isolation(サイト・アイソレーション)では異なるサイトを別描画処理へ分け、侵害時に読み取れるデータを狭めます。ただし処理数とメモリー使用量には交換条件があり、タブ一枚=処理一個と固定して説明できません。

BlinkとV8は担当が違う

レンダリングエンジンのBlinkはHTML・CSSからDOM、スタイル、レイアウト、描画を作ります。V8はJavaScriptWebAssemblyを実行します。スクリプトがDOMを変更すると、その結果をBlinkが再計算・再描画します。

「Chromeのエンジン」を広く言うとBlink、V8、ネットワーク、処理基盤等を含める場合があり、狭く言うとレンダリングエンジンだけを指す場合があります。比較表では定義範囲を確認します。

Chromium系ブラウザーが同じ動作とは限らない

同じBlink・V8の系統でも、リリース時期、機能フラグ、コーデック、証明書保存、追跡保護、拡張方針、既定検索、企業設定が違えば結果は変わります。製品名だけでWeb API対応を断定せず、バージョンと機能検出を使います。

Chrome自身もStable、Beta、Dev、Canaryなど配布チャネルで更新速度と安定性が異なります。検証用チャネルを日常用プロファイルと分けると、実験設定の混入を防げます。

プラットフォームによって同じ製品名でもエンジン条件が異なる

デスクトップやAndroidのChromeはChromium基盤を使いますが、iPhone・iPad上ではプラットフォーム規則と実装によりWebKit系エンジンを使う版があります。したがって「Chromeという製品名=常にBlink」とは断定しません。

Chromeは、Chromiumのソースと複数エンジン・サービスへ、Googleの配布・更新・プロファイル・方針・セキュリティを重ねたブラウザー製品です。製品、プロジェクト、エンジンを別の層として読みます。

Blink、V8、Skiaを含むChromium系browserのrenderingとplatform構成、iOS・iPadOS上のengine差:Chrome for Developers「Blink」。browser・renderer等を分離するarchitecture:Chromium「Multi-process Architecture」

関連用語