blob: 2ac44b514c98a89759ef56bd33fc7cb3cdca4050 [file] [log] [blame] [view]
# 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.