Skip to main content

Command Palette

Search for a command to run...

Browser Architecture

Updated
โ€ข3 min readโ€ขView as Markdown

๐Ÿง  TL;DR โ€” A modern browser isn't one program, it's several separate processes โ€” browser, renderer, GPU, network โ€” talking to each other. Splitting them up is what keeps one crashed tab from taking down your whole browser.

Everything we've covered so far in this series โ€” parsing, the render tree, layout, paint, compositing โ€” happens inside a single renderer process. But that's only one piece of the browser. Here's the bigger picture.

flowchart TB
    A[Browser Process] --> B[Renderer Process โ€” Tab 1]
    A --> C[Renderer Process โ€” Tab 2]
    A --> D[GPU Process]
    A --> E[Network Process]
    A --> F[Extension Processes]

๐Ÿงญ The browser process

The browser process is the coordinator. It owns the address bar, bookmarks, back/forward buttons, and the window chrome itself. It's the only process with direct access to disk and the network on behalf of the others, and it decides which renderer process handles which tab.

๐Ÿ–ฅ๏ธ Renderer processes

Each tab (roughly) gets its own renderer process, running the parsing โ†’ render tree โ†’ layout โ†’ paint โ†’ compositing pipeline we've spent this whole series on. Renderer processes are deliberately sandboxed โ€” they can't touch the filesystem or make raw network calls directly; they have to ask the browser process to do it for them.

Process Can access disk? Can access network? Runs your page's JS?
Browser process โœ… โœ… (brokers requests) โŒ
Renderer process โŒ โŒ (sandboxed) โœ…
GPU process โŒ โŒ โŒ

โšก Tip: This is why one tab crashing (a renderer process dying) usually doesn't take down your whole browser โ€” it's an isolated process. You'll have seen this as Chrome's "Aw, Snap!" page.

๐ŸŽฎ The GPU process

Remember rasterization and compositing from the last two posts? A lot of that pixel-pushing work is handed to a dedicated GPU process, shared across all tabs, so renderer processes don't each need their own direct line to the graphics hardware.

๐ŸŒ The network process

Fetching resources โ€” HTML, CSS, images, API responses โ€” goes through a separate network process. Centralizing it lets the browser manage things like the HTTP cache and connection pooling consistently across every tab.

โœ… Key takeaways

  • A browser is a small distributed system of processes, not one monolithic program.

  • Renderer processes are sandboxed for security and stability โ€” that's why a bad tab doesn't crash everything.

  • The rendering pipeline from this series (parsing โ†’ paint โ†’ compositing) is just the renderer process's job; the browser process, GPU process, and network process each handle a different slice of the work.

#browsers #architecture #chromium #performance

How Browsers work

Part 5 of 7

In this series I will talk about the inner workings of web browsers. Each episode dives into different aspects of browsers like UI, rendering engine, data persistence and much more.

Up next

Data Persistence

๐Ÿง  TL;DR โ€” Browsers give you several different ways to store data on a user's machine โ€” cookies, localStorage, IndexedDB, and the HTTP cache โ€” each with different size limits, lifetimes, and use cases