Chromium Source Tree Overview

This document provides a high-level map to the Chromium source code, explaining the purpose of the major top-level directories.

Core Application Logic

  • //chrome: The code for the Chrome browser application itself. This layer integrates all the underlying components into the final product. It includes UI, browser-specific features, and application logic.
  • //components: Reusable modules that provide specific features (e.g., autofill, bookmarks, signin, policy). They are designed to be layered on top of //content and have minimal dependencies on each other.

Core Abstraction Layers

  • //content: The core multi-process rendering engine abstraction. It encapsulates the sandbox and the browser/renderer process model. Most features are built on top of the Content API. It is the layer below //chrome.
  • //third_party/blink: The Blink rendering engine. This is where the open web platform is implemented (e.g., DOM, CSS, JavaScript APIs). It runs inside the sandboxed renderer process.

Foundational Libraries

  • //base: The fundamental building blocks of Chromium. Contains essential utilities for C++, data structures, threading primitives (base::Callback, base::TaskRunner), and platform abstractions. Most other code depends on //base.
  • //net: The networking stack. Implements everything from HTTP to QUIC and provides abstractions for network requests.
  • //mojo: The core IPC (Inter-Process Communication) library used for communication between processes and services.
  • //services: A collection of standalone services that are often run in their own processes and communicate via Mojo interfaces.

UI Toolkits

  • //ui: The foundational toolkit for building user interfaces.
  • //ui/views: The primary framework for building cross-platform desktop UI (Windows, Linux, ChromeOS). It provides a widget-based system for creating native-feeling interfaces.