Skip to main content

Overview

The downloads.ini file configures the download of the official Chromium source code archive. This is the base source code that Helium patches and builds upon.
This file only handles the Chromium source archive. Additional dependencies are configured in deps.ini.

File Format

The file uses INI format with a single [chromium] section:
[chromium]
key = value

Configuration Fields

Basic Fields

url
string
required
Download URL for the Chromium source archive. Uses the -lite variant which excludes Git history to reduce download size.Variable substitution: %(_chromium_version)s is automatically replaced with the target Chromium version.
download_filename
string
required
Filename to use when saving the downloaded archive locally.Format: chromium-%(_chromium_version)s-lite.tar.xz
output_path
string
required
Relative path where the source code should be extracted. Use ./ for the source root directory.
strip_leading_dirs
string
required
Top-level directory name to strip from the archive. The official Chromium archives contain a chromium-VERSION directory.Example: chromium-%(_chromium_version)s

Hash Verification

hash_url
string
required
Special field for fetching and verifying the archive hash. Uses a pipe-delimited format:
identifier|filename|url
  • identifier: Internal name (e.g., chromium)
  • filename: Name of the hash file (e.g., chromium-VERSION-lite.tar.xz.hashes)
  • url: Full URL to download the hash file

Automatic Variables

Variables beginning with underscore are provided by the build system:
_chromium_version
string
The target Chromium version being built. This is read from the build configuration and automatically substituted.Example: 133.0.6943.137

Example Configuration

[chromium]
url = https://commondatastorage.googleapis.com/chromium-browser-official/chromium-%(_chromium_version)s-lite.tar.xz
download_filename = chromium-%(_chromium_version)s-lite.tar.xz
hash_url = chromium|chromium-%(_chromium_version)s-lite.tar.xz.hashes|https://commondatastorage.googleapis.com/chromium-browser-official/chromium-%(_chromium_version)s-lite.tar.xz.hashes
output_path = ./
strip_leading_dirs = chromium-%(_chromium_version)s

Chromium Archive Variants

Chromium provides two archive types:

Standard

Format: chromium-VERSION.tar.xzIncludes full Git history and all development files. Much larger download (5-10 GB).

Lite

Format: chromium-VERSION-lite.tar.xzExcludes Git history. Smaller and faster to download (2-3 GB). Recommended for Helium builds.
Helium uses the -lite variant to reduce build setup time and disk usage.

Hash Verification Process

The build system performs the following steps:
1

Download hash file

Fetches the .hashes file from the URL specified in hash_url.
2

Download source archive

Downloads the Chromium source from the url field.
3

Compute local hash

Calculates the SHA-256 hash of the downloaded archive.
4

Compare hashes

Verifies the computed hash matches one in the .hashes file. Aborts build if verification fails.
Never skip hash verification. This ensures the downloaded source hasn’t been tampered with.

Download Source

Chromium source archives are hosted on Google Cloud Storage:
https://commondatastorage.googleapis.com/chromium-browser-official/
This CDN contains:
  • Official release archives for all Chromium versions
  • Corresponding .hashes files for verification
  • Both standard and -lite variants

Updating Chromium Version

To update to a new Chromium version:
1

Update version variable

Modify the _chromium_version variable in your build configuration (typically in a separate version file or build script).
2

Verify archive exists

Check that the new version is available:
curl -I https://commondatastorage.googleapis.com/chromium-browser-official/chromium-VERSION-lite.tar.xz
3

No changes needed

The downloads.ini file uses automatic substitution, so no changes are needed here.
4

Update patches

Review and update patches in patches/series to ensure compatibility with the new Chromium version.

Troubleshooting

The specified Chromium version may not exist. Verify the version number and check the Chromium release schedule.
The downloaded archive may be corrupted. Delete the cached download and try again. If the issue persists, the CDN may be serving a corrupted file.
Ensure strip_leading_dirs matches the actual directory name in the archive. You can inspect the archive:
tar -tf chromium-VERSION-lite.tar.xz | head
  • deps.ini - Additional dependencies downloaded after Chromium
  • flags.gn - Build configuration flags
  • patches/series - Patches applied to Chromium source

Build docs developers (and LLMs) love