用語辞典・OS・ブラウザ

Chromium

Chromiumとは

Chromium(クロミウム)は、Google ChromeやMicrosoft Edgeなどの基盤になるオープンソースのブラウザプロジェクトです。ソースコード、設計文書、ビルドシステム、試験基盤、問題追跡、コミュニティー contributionを含みます。

HTML・CSS処理のBlink、JavaScript・WebAssembly実行のV8、2DグラフィックスのSkia、ネットワークスタック、保存領域、メディア、マルチプロセス・サンドボックス等、多数の構成要素を統合してブラウザーを構築します。

Chromiumは「Chromeの無料版」という一行では表せません。プロジェクトのソース、誰かが作ったスナップショットビルド、それを基盤にベンダーが配布する完成ブラウザーは、それぞれ更新と責任の範囲が違います。

コミュニティーの変更をレビュー・ビルド・試験し、共通構成要素群から複数の異なるブラウザー製品へ分岐する共有ソース、開発ビルド、完成製品、更新経路を別々に見る
複数の開発者、レビュー、ソースブロック、ビルドconveyor、試験保護、ブラウザー処理、レンダリング、JavaScript、ネットワーク、保存領域からなる共有プロジェクトが、機能と配色の異なる三つのブラウザー製品と開発ビルドへ分岐するピクトグラム図解
図1同じプロジェクトから作られても、採用改訂、ビルドフラグ、追加サービス、コーデック、更新機能が違えば同一バイナリーにはなりません。

プロジェクトの流れを六段階で見る

Contribution変更案を提出

開発者がソース、試験、設計説明を用意し、レビューを受けます。

Repository多数構成要素を統合

ブラウザー、描画処理、Blink、V8、ネットワーク、UI等を依存関係ごと管理します。

Build対象プラットフォーム向けに作る

ツールチェーン、フラグ、コーデック、brandingリソース等でバイナリーの内容が変わります。

Test回帰と安全性を検査

単位、統合、Web Platform Tests、fuzzing等を継続実行します。

Snapshot開発時点のビルドを得る

特定改訂の確認用で、通常の自動更新製品とは限りません。

Productベンダーが製品化

署名、インストーラー、更新、方針、サービス、サポートを加えて配布します。

ブラウザーを作る共通構成要素群

Blink(ブリンク)がHTML・CSS・DOM・レンダリングを、V8(ブイエイト)がJavaScript・WebAssemblyを、Skia(スキア)がグラフィックス処理を担います。さらにネットワークサービス、メディア処理経路、データベース・キャッシュ、アクセシビリティ、拡張基盤等が必要です。

これらは一枚岩ではなく、ブラウザープロセス、描画プロセス、GPUプロセス、ネットワークサービス等へ分離されます。ソースコードの構成要素と、実行時のプロセス境界は同じ切り方とは限りません。

Chromiumビルドは一種類ではない

公式プロジェクトが示すダウンロード先にも、開発者向けスナップショット、testing向けビルド等があります。改訂が新しいほど安定版とは限らず、ある時点の変更がコンパイルできた確認用ビルドには未解決不具合が含まれます。

配布者が独自にコンパイルしたバイナリーは、ビルドフラグ、パッチ、証明書、コーデック、更新サービスを確認できなければ安全性を評価できません。日常利用では出所と更新経路が明確な製品を選びます。

ChromeやEdgeはChromiumに製品層を加える

ChromeEdge、その他のChromium系ブラウザーは、基盤ソースの一部を共有しつつ、アカウント、同期、追跡保護、拡張方針、メディア対応、既定検索、企業管理、brandingを個別に構成します。

同じ改訂を基にしても設定やサービスが違えばネットワーク要求、保存データ、UI、更新時期は変わります。「Chromium-基づく」という一語はエンジン系統を示す手掛かりで、製品仕様書の代わりではありません。

開くソースでも変更が自動的に取り込まれるわけではない

変更はコードレビュー、自動化された試験、セキュリティレビュー、互換性検討を通り、主要分岐へ統合されます。ブラウザーベンダーはそこから特定分岐や改訂を採用し、自社リリースへ統合します。

Chromiumで修正済みでも、利用製品の安定更新へ届く時期はベンダーとチャネルで異なります。セキュリティ助言では製品バージョンと更新状態を確認します。

Web互換性は一社の実装だけで決めない

Chromiumの市場利用が広くても、Web標準はChromium固有APIを標準にする仕組みではありません。仕様、multi-vendorレビュー、Web Platform Tests、Mozilla・WebKit等の実装を見ます。

Chromiumはブラウザーを作る共有プロジェクトです。ソース、構成要素、スナップショットビルド、ベンダー製品、更新チャネルを区別すると、「同じChromiumなのに挙動が違う」理由を正しく説明できます。

Chromium buildとChrome for Testing、snapshot・更新差の案内:Chromium「Download Chromium」。browser・renderer processとBlink、sandboxのarchitecture:Chromium「Multi-process Architecture」

関連用語