Privacy First: Helium services are completely optional. The browser works fully offline when services are disabled.
Architecture Overview
Core Components
Service Registry
Centralized preference-based service configuration
Schema Versioning
User notification system for behavior changes
URL Builder
Dynamic URL construction based on preferences
Settings UI
User-facing service management interface
Service Types
1. Extension Updates
Provides privacy-respecting extension update checks:- No tracking or analytics
- Only checks for user-installed extensions
- Respects user privacy preferences
- Can be completely disabled
helium.services.extension_updating
2. Browser Updates
Automatic browser update notifications:- ✅ macOS: Full auto-update support
- ✅ Linux: Update notifications (manual install via package manager)
- 🔄 Windows: In development
helium.services.update_fetching_enabled
3. uBlock Origin Assets
Proxied filter list updates:How uBlock Integration Works
How uBlock Integration Works
- Default lists are bundled with Helium and loaded from local storage
- When services enabled: Lists are updated via proxied requests through Helium services
- Privacy benefit: Filter list providers don’t see user IP addresses
- Optional lists: User-added lists are fetched directly (not proxied)
~/workspace/source/patches/helium/core/ublock-helium-services.patch
Preference: helium.services.ublock_assets
4. Native Bangs
DuckDuckGo-style search shortcuts:!g query→ Google search!gh query→ GitHub search!w query→ Wikipedia search
helium.services.bangs_enabled
5. Spellcheck Dictionaries
Downloads language dictionaries for spell checking:helium.services.spellcheck_files
Schema Versioning System
Helium uses a schema versioning system to ensure users are informed about service behavior changes.Current Schema Version
~/workspace/source/components/helium_services/schema.h:737
How It Works
Schema Version Increment
When services behavior changes significantly, the schema version is incremented.
User Notification
User sees a notification in the app menu and settings page explaining the changes.
Notification UI
When schema changes are pending:App Menu Badge
“Services updated” label appears on the app menu button
Settings Alert
Prominent notification on the Helium services settings page
Changelog Example
~/workspace/source/components/helium_services/schema.cc:708-716
Service Configuration
Default Origin
Custom Origin
Users can self-host Helium services:Origin Validation
~/workspace/source/components/helium_services/helium_services_helpers.cc:486-502
Preferences
All service preferences are stored in the user’s profile:Master Toggle
Master Toggle
Preference:
Type: Boolean
Default:
Description: Master switch for all Helium services
helium.services.enabledType: Boolean
Default:
trueDescription: Master switch for all Helium services
Custom Origin
Custom Origin
Preference:
Type: String
Default:
Description: Custom self-hosted origin URL
helium.services.origin_overrideType: String
Default:
"" (empty)Description: Custom self-hosted origin URL
Schema Version
Schema Version
Preference:
Type: Integer
Default:
Description: Last acknowledged schema version
helium.services.schema_versionType: Integer
Default:
0Description: Last acknowledged schema version
Disable Schema Alerts
Disable Schema Alerts
Preference:
Type: Boolean
Default:
Description: Auto-accept all future schema changes
helium.services.disable_schema_alertsType: Boolean
Default:
falseDescription: Auto-accept all future schema changes
Individual Services
Individual Services
helium.services.extension_updating(Boolean)helium.services.update_fetching_enabled(Boolean)helium.services.ublock_assets(Boolean)helium.services.bangs_enabled(Boolean)helium.services.spellcheck_files(Boolean)
~/workspace/source/components/helium_services/pref_names.h
Settings UI Implementation
The Helium services settings page is implemented as a Polymer component:- HTML Template
- TypeScript Logic
- Backend Handler
~/workspace/source/chrome/browser/resources/settings/privacy_page/services_page.html:229-233Privacy Guarantees
No Tracking
Services don’t log IP addresses, user agents, or create persistent identifiers
No Analytics
No usage statistics or telemetry collected
Minimal Data
Only necessary information sent (e.g., extension ID for updates)
Open Source
Services implementation will be published at helium-services
Self-Hosting Guide
To host your own Helium services instance:Self-hosting documentation is available in the helium-services repository.
Next Steps
Architecture Overview
See how services fit into Helium’s architecture
Onboarding System
Learn how users consent to services during setup