How to Set Up the Brave Browser Build Environment for Windows Development
To build Brave Browser on Windows, install Visual Studio 2022 with the C++ workload, clone the brave/brave-browser repository, run npm install and npm run init -- --target_os=win, then use gn gen and autoninja to compile.
Setting up the Brave Browser build environment for Windows development requires configuring a Chromium-based toolchain that integrates Brave-specific patches and dependencies. The brave/brave-browser repository serves as the entry point, orchestrating the download of Chromium source code via depot_tools and applying Brave-core modifications located in src/brave.
Prerequisites for Windows Development
Building Brave on Windows depends on the same foundational tools used for Chromium, with specific version requirements enforced by the build scripts in package.json.
Visual Studio 2022
Install Visual Studio 2022 with the "Desktop development with C++" workload. The build system specifically requires:
- MSVC v143 toolset (Visual Studio 2022)
- Windows 10 SDK (latest version available in the installer)
Verify installation by running vswhere -latest -requires Microsoft.Component.MSBuild from a command prompt.
Python, Git, and Node.js
- Python 3.10: Required for Chromium's GN and GYP meta-build scripts. Ensure
pythonis available in yourPATH. - Git: Needed for repository cloning and
depot_toolsoperations. - Node.js ≥16 and npm: The
brave-browserrepository uses npm scripts defined inpackage.jsonto orchestrate the build process.
depot_tools
depot_tools is Google's suite of build tools that includes gclient, gn, and ninja. Clone the repository and add it to the front of your system PATH:
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
set PATH=C:\path\to\depot_tools;%PATH%
Clone the brave-browser Repository
Create a working directory with at least 150 GB of free space, then clone the main repository:
mkdir C:\brave && cd C:\brave
git clone https://github.com/brave/brave-browser.git
cd brave-browser
git submodule update --init --recursive
This initializes the brave-core submodule mounted at src/brave, which contains the Brave-specific source code and patches referenced in src/brave/DEPS.
Initialize the Build Environment
Install the npm dependencies and fetch the Chromium source code:
npm install
npm run init -- --target_os=win --target_arch=x64
The npm run init command performs several critical operations:
- Downloads Chromium: Uses
depot_tools/gclient syncto fetch the specific Chromium revision pinned insrc/brave/DEPS. - Applies Patches: Automatically applies Brave-specific patches located in
src/brave/patches/to the Chromium source tree. - Installs Dependencies: Fetches third-party libraries such as
adblock-rustreferenced inpackage.json.
Configure the Build with GN
Chromium uses the GN meta-build system to generate Ninja files. Create a build configuration in the out directory:
gn gen out\BraveDebug --args="is_debug=true is_component_build=true target_os=\"win\" target_cpu=\"x64\" symbol_level=1"
Key GN arguments for Windows development:
target_os="win": Configures the toolchain to use the Windows SDK.target_cpu="x64": Builds 64-bit binaries (recommended for modern Windows).is_component_build=true: Enables component builds for faster incremental compilation during development.symbol_level=1: Reduces symbol generation time while maintaining stack traces.
For a release build optimized for distribution:
gn gen out\BraveRelease --args="is_debug=false is_component_build=false target_os=\"win\" target_cpu=\"x64\""
Compile Brave Browser on Windows
Use autoninja (a wrapper around Ninja provided by depot_tools) to compile:
autoninja -C out\BraveDebug brave
The autoninja command automatically detects available CPU cores and parallelizes the build. The brave target builds the full desktop browser executable.
For release builds:
autoninja -C out\BraveRelease brave
Run and Test Your Build
Launch the compiled browser directly:
out\BraveDebug\brave.exe
Alternatively, use the npm wrapper which configures the correct environment:
npm start Debug
Running Tests
Execute the test suites to verify your build:
# Unit tests
npm run test brave_unit_tests
# Browser tests
npm run test brave_browser_tests
# JavaScript tests within brave-core
cd src\brave && npm run test-unit
These commands are documented in the CONTRIBUTING.md file under the testing workflow section.
Troubleshooting Common Windows Build Issues
| Issue | Cause | Solution |
|---|---|---|
ninja not recognized |
depot_tools not in PATH |
Add C:\path\to\depot_tools to the front of your system PATH and restart your terminal. |
| MSVC version mismatch | Visual Studio 2019 or older installed | Install Visual Studio 2022 with the "Desktop development with C++" workload and ensure MSVC v143 is selected. |
python resolves to Python 2 |
Legacy Python in PATH |
Use py -3 explicitly or reinstall Python 3.10 and prioritize it in your PATH. |
| Large download stalls | Insufficient disk space or network timeout | Ensure at least 200 GB free space; run git config --global http.postBuffer 524288000 to increase Git buffer size. |
| Patch application failures | Corrupted Chromium source or stale patches | Run npm run sync -- --force to re-sync and re-apply patches from src/brave/patches/. |
Summary
Setting up the Brave Browser build environment for Windows development involves installing Visual Studio 2022 with C++ support, configuring depot_tools, and using npm scripts to orchestrate the Chromium fetch and build process.
- Install Visual Studio 2022 with the Desktop C++ workload and MSVC v143 toolset.
- Clone
brave/brave-browserand initialize submodules withgit submodule update --init --recursive. - Run
npm installfollowed bynpm run init -- --target_os=win --target_arch=x64to fetch Chromium and apply Brave patches. - Use
gn gento configure build arguments for Windows, then compile withautoninja -C out\BraveDebug brave. - Launch with
out\BraveDebug\brave.exeornpm start Debug, and run tests vianpm run test brave_unit_tests.
Frequently Asked Questions
What version of Visual Studio is required to build Brave on Windows?
Brave Browser requires Visual Studio 2022 with the "Desktop development with C++" workload installed. Specifically, you need the MSVC v143 toolset and the latest Windows 10 SDK. Older versions like Visual Studio 2019 are not supported by the current Chromium codebase that Brave is built upon.
How much disk space is needed to build Brave Browser on Windows?
You should allocate at least 150–200 GB of free disk space. The build process downloads the entire Chromium source tree (approximately 20–30 GB), Brave-core source, various third-party dependencies defined in src/brave/DEPS, and generates build artifacts that can exceed 50 GB for debug builds with symbols.
Why does npm run init fail with patch application errors?
Patch failures typically occur when the Chromium source code has been updated but the Brave patches in src/brave/patches/ have not been refreshed, or if the source tree is corrupted. To resolve this, run npm run sync -- --force to re-synchronize the Chromium revision and re-apply all patches. If issues persist, delete the src directory and run npm run init again.
Can I build Brave for Windows on a different operating system?
No, you cannot perform a native Windows build on macOS or Linux. The build system requires the Windows SDK, MSVC compiler, and Windows-specific headers that are only available on Windows. However, you can use a Windows virtual machine or cloud-based Windows instances (such as Azure VMs) to perform the build if you are developing from a different host OS.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →