Introduction
Helium is a privacy-focused Chromium-based web browser built on top of ungoogled-chromium. This page provides an overview of the project architecture and development workflow.Architecture
Helium’s architecture consists of several key components:Base Layer: Chromium
Helium is built on Chromium version 145.0.7632.116, providing a solid foundation with:- Modern web standards support
- Security updates from the Chromium project
- Cross-platform compatibility (macOS, Linux, Windows)
Privacy Layer: ungoogled-chromium
Built on ungoogled-chromium, Helium inherits:- Removal of Google integration and dependencies
- Disabled automatic connections to Google services
- No crash reporting or metrics collection
- Removed binary blobs where possible
Helium Enhancements
Helium adds its own features and modifications:Privacy Features
- Canvas, audio, and hardware fingerprinting noise
- Reduced Accept-Language headers
- Disabled ad topics and privacy sandbox
- Client hints removal
UI Improvements
- Custom color scheme and theming
- Redesigned toolbar and tabs
- Cleaner new tab page
- Removed unnecessary UI elements
Integrated Components
- uBlock Origin as a built-in component
- Helium Services integration
- Custom onboarding experience
- Native bang support
Browser Behavior
- Parallel downloading enabled
- Infinite tab freezing for memory savings
- MRU tab cycling
- Split view support
Patch-Based Development
Helium uses a patch-based development model inherited from ungoogled-chromium:Patch Categories
Patches are organized by source and purpose:upstream-fixes
upstream-fixes
Fixes from Chromium upstream, particularly for vertical tabs and other features backported to the current version.
ungoogled-chromium
ungoogled-chromium
Core privacy patches that disable Google services, telemetry, and tracking. These form the foundation of Helium’s privacy features.
helium/core
helium/core
Core Helium functionality including services integration, branding, search engine configuration, and feature flags.
helium/ui
helium/ui
User interface modifications including layout changes, color schemes, toolbar redesign, and visual improvements.
helium/settings
helium/settings
Settings page modifications to remove unnecessary options and add Helium-specific configurations.
Build System
Helium uses the standard Chromium build system with customizations:GN (Generate Ninja)
Build configuration is defined inflags.gn:
Ninja
The actual build is performed by Ninja, a fast parallel build system.Python Utilities
Helium includes custom Python utilities for:- clone.py - Cloning Chromium source with dependencies
- patches.py - Applying GNU Quilt-formatted patches
- downloads.py - Downloading and verifying additional components
Platform Packaging
Helium is packaged separately for each platform:macOS
Universal binary with auto-updates
Linux
AppImage format for wide compatibility
Windows
Standalone installer
Development Workflow
The typical development workflow involves:Download Components
Use
downloads.py to retrieve uBlock Origin, onboarding page, and search engine dataRelated Repositories
Helium Services
Backend services for extension proxying and updates
Helium Onboarding
Welcome page shown at
helium://setupuBlock Origin CRX
Packaging repository for uBlock Origin integration
Continuous Integration
Helium uses Cirrus CI for automated testing:- Code quality checks - yapf formatting and pylint linting
- Configuration validation - Verify config files are valid
- Patch validation - Test that all patches apply cleanly
- Build verification - Ensure the source tree builds successfully
The CI pipeline runs on containers with 8 CPU cores and 32GB memory to handle Chromium’s large codebase.