The Browser That Runs Chromium Outside itself
OpenAI's Atlas browser represents something rare in software engineering: an architecture that solves cultural problems as much as technical ones. Alex Xu documents how the team achieved instant startup, rich animations, and hundreds of tabs without modifying Chromium itself.
The Chromium Trap
Chromium powers Chrome, Edge, Brave, and countless other browsers. Its rendering engine is state-of-the-art. But Chromium also imposes rigid constraints on boot sequences, threading models, and tab management. Xu writes, "Making substantial changes to Chromium's core would mean maintaining a large set of custom patches. Every time a new Chromium version was released, merging those changes would become increasingly difficult and time-consuming."
OpenAI faced another obstacle: their engineering culture. The company practices "shipping on day one," where new engineers merge code on their first afternoon. Chromium takes hours to build from source. Xu notes, "Making this requirement work with traditional Chromium integration seemed nearly impossible."
OWL: Running Chromium as a Separate Process
The solution was OWL — OpenAI's Web Layer. Instead of embedding Chromium inside Atlas, the team runs Chromium's browser process outside the main application. Xu explains, "In this architecture, Atlas is the OWL Client, and the Chromium browser process is the OWL Host. These two components communicate through IPC using Mojo, which is Chromium's own message-passing system."
IPC stands for inter-process communication. Mojo is Chromium's protocol for sending messages between separate programs running on the same machine. Xu writes that OpenAI "wrote custom Swift and TypeScript bindings for Mojo, allowing their Swift-based Atlas application to call Chromium functions directly."
"Instead of embedding Chromium inside the Atlas application, OpenAI runs Chromium's browser process outside the main Atlas application process."
Rendering Across Process Boundaries
How do pixels rendered in one process appear in windows belonging to another? OpenAI borrowed from macOS graphics primitives. On the Chromium side, web content renders to a CALayer with a unique context ID. On the Atlas side, an NSView embeds this layer using the private CALayerHost API. Xu writes, "The context ID tells Atlas which layer to display."
The GPU compositor handles this efficiently because both processes share graphics memory. When switching tabs, Atlas swaps which WebView connects to the visible container. Xu notes, "Multiple tabs can share a single compositing container."
Input events require similar care. Normally Chromium translates macOS NSEvents into Blink's WebInputEvent format. In OWL, Atlas performs this translation and forwards already-translated events over IPC. Xu explains, "If a web page indicates it did not handle an event, Chromium returns it to the Atlas client. When this happens, Atlas resynthesizes an NSEvent and gives the rest of the application a chance to handle the input."
Agent Mode's Special Requirements
Atlas includes agentic browsing where ChatGPT controls the browser. This poses unique challenges. The computer use model expects a single screenshot, but dropdown menus render outside main tab bounds. Xu writes, "To solve this, Atlas composites these pop-up windows back into the main page image at their correct coordinates in Agent mode."
Security matters here. Agent-generated events route directly to the web page renderer, never passing through the privileged browser layer. Xu notes this "preserves the security sandbox even under automated control." Ephemeral sessions use Chromium's StoragePartition infrastructure to create isolated, in-memory data stores. Each agent session starts fresh; cookies and site data discard when the session ends.
Benefits and Trade-offs
OWL delivers fast startup because Chromium boots asynchronously while Atlas UI appears instantly. Xu writes, "Users see pixels on screen within milliseconds, even though the web engine may still be initializing." Process isolation means Atlas remains responsive if Chromium's main thread hangs. If Chromium crashes, Atlas stays running and can recover.
Developer productivity improves dramatically. Xu explains, "Most engineers never need to build Chromium locally. OWL ships internally as a prebuilt binary, so Atlas builds completely in minutes rather than hours."
Trade-offs exist. Running two processes uses more memory than monolithic architecture. The IPC layer adds complexity. Xu acknowledges, "Cross-process rendering could potentially add latency, although OpenAI mitigates this through efficient use of CALayerHost and GPU memory sharing."
Critics might note that OWL's prebuilt binary approach creates a dependency lock — teams must trust OpenAI's Chromium builds rather than auditing them themselves. The memory overhead matters for users on constrained devices. And while process isolation protects against crashes, it also means debugging cross-process issues requires tooling that most engineers don't have.
Bottom Line
OWL solves the real problem: browser teams need Chromium's rendering without Chromium's cultural constraints. The architecture trades memory for developer velocity and user experience. For AI-powered browsing where agent sessions demand isolation, the separation becomes essential rather than optional.