Browser Architecture
๐ง 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