Introduction
Helium is a Chrome Extension API emulation layer designed for proxy-based browsers. It enables real Chrome extensions to run entirely within a web environment — no native browser integration required.
Who is this for?
Section titled “Who is this for?”- Proxy browser developers (e.g., DaydreamX) who want to add Chrome extension support
- Extension authors who want to understand how their extensions behave in a proxy environment
- Contributors working on Helium itself
How it works
Section titled “How it works”Helium sits between Chrome extensions and the proxy browser, translating chrome.* API calls into web-native operations:
| Chrome API | Helium Strategy |
|---|---|
chrome.storage | IndexedDB with WAL + snapshots |
chrome.tabs | Host-bound (DaydreamX provides tab management) |
chrome.runtime.sendMessage | SharedWorker message backbone |
chrome.webRequest | BareMux network middleware |
| Content script isolation | 4-layer proxy membrane sandbox |
Specification structure
Section titled “Specification structure”The spec is organized into 7 documents:
-
System Architecture — The 6-layer stack, design principles, threading model, and data flow diagrams.
-
Message Passing — The SharedWorker-based message backbone, including
sendMessage,connect, long-lived ports, mesh relay fallback, and crash recovery. -
Execution Contexts — How background pages, content scripts, dedicated workers, and extension pages are emulated.
-
API Binding — The handler registry that maps host application functions into
chrome.*APIs, including the fail-safe contract and graceful degradation. -
API Implementation — Per-namespace implementation details for all 4 tiers of Chrome APIs, from
chrome.runtimetochrome.tts. -
Proxy Integration — How Helium integrates with Reflux (content injection) and BareMux (network interception), including the bootstrap script, DNR evaluation, and cookie jar.
-
Manifest & CRX Loader — CRX3 unpacking, manifest parsing, permission resolution, virtual filesystem, and the atomic staging-then-swap install mechanism.