VOOZH about

URL: https://helgeklein.com/blog/modern-multi-process-browser-architecture/

⇱ Modern Multi-Process Browser Architecture


Start typing to search...

navigate select close

Modern Multi-Process Browser Architecture

An architecture overview of current browsers on Windows: Chrome, Firefox and Internet Explorer.

In case you are wondering: I did not include Edge because it is currently being transitioned to the Chromium rendering engine, which might change a few things. I did include Internet Explorer because it is still the default browser in many enterprises.

Looking for a way to monitor web app performance? Take a look at uberAgent, our user experience & application performance monitoring product.

Chrome Architecture

Chrome was the first browser with a multi-process architecture. Put simply, it encapsulates all logical functions in separate processes. More specifically:

  • One main (browser) process
  • One GPU process
  • Each tab: dedicated process
  • Each extension: dedicated process

Chrome is the only browser with a useful task manager. It can be opened with the keyboard shortcut SHIFT+ESC. As you can see below, Task Manager lists all active Chrome processes with their designated functions. For each process, it shows CPU, network and memory resource usage. It also indicates whether frames are hosted in their page’s process or in dedicated processes (more on that below). Finally, Task Manager shows the Windows OS process ID, which makes it possible to correlate data with other system information tools.

👁 Image

Frames and Site Isolation

Frames share a process with their page if the frame and the page are from the same site (based on the URL).

Starting with Chrome 67, frames from different sites are put into different processes. This is called site isolation and aims to mitigate certain types of attacks. Chrome’s Process Internals page (chrome://process-internals/) lists the current status of each frame.

IE Architecture

IE’s multi-process architecture was introduced with IE8. It makes use of two types of processes:

  • One main (frame) process
  • Zero or multiple tab processes

Note the zero above. Depending on configuration, IE may be limited to just one process - in which case a bug in any component or add-on crashes all opened tabs. Keep in mind that IE add-ons are binary Win32 DLLs that are loaded into the tab process(es). A crash in an add-on also crashes the tab process(es) that host it. This is not the case with modern browsers (i.e., all other browsers), where extensions are basically web apps, built with JavaScript and HTML.

IE Tab Process Count

By default, the number of tab processes is auto-managed depending on the amount of RAM. This can be overridden by setting the TabProcGrowth registry value. It can either be a number (REG_DWORD) or a string (REG_SZ) - which is rather unusual.

A Microsoft blog post explains the TabProcGrowth value. It boils down to this:

ValueTypeDescription
0REG_DWORDsingle process for frame+tabs no matter what
1REG_DWORDsingle process for frame+tabs per bitness (important for 32-bit add-ons on 64-bit machines)
>1REG_DWORDsets the maximum number of tab processes
smallREG_SZmax. 5 tabs per session
mediumREG_SZmax. 9 tabs per session
largeREG_SZmax. 16 tabs per session

Some notes and caveats:

Firefox Architecture

Historically, Firefox has been a single-process browser. As it turned out, running the browser UI plus the HTML rendering and JavaScript for all tabs in a single process is a bad idea. It easily freezes the UI, and it might not be optimal from a security point of view, either.

Mozilla started project Electrolysis as a gradual move to a multi-process architecture. This took 9 versions, from Firefox 48 to 56. The current architecture looks like this:

  • One main process
  • One GPU process
  • One extension process
  • Up to 4 content (tab) processes

The current default of 4 content processes might be changed in future versions. At this point, it can be increased to a maximum value of 7 content processes. Work is underway to encapsulate extensions in dedicate processes.

Summary

Browsers are evolving quickly - except for IE, of course. Microsoft is focusing on Edge. To be very clear: IE will not get any new features. It’s security updates only for the former world’s most popular browser who once had a market share of approximately 95% (in 2003).

It seems there is no way around the multi-process type of architecture. Benefits include increased stability and security. On the downside, we have an increased overhead.

ArchitectureBrowserChromeFirefoxInternet ExplorerProcess

Comments

Related Posts

Fixing VS Code UI Unresponsiveness Caused by GitHub Copilot Extension

This article shows a simple solution to a problem that doesn’t seem to be adequately documented: VS Code UI lags, freezes, and delays caused by the GitHub Copilot extension. Problem: VS Code UI Becoming Slow Having worked on a Python project for a while, I noticed that VS Code’s UI was frequently freezing for seconds at a time. This was happening in various places of the UI: the editor itself but also in the GitHub Copilot Chat window. Copilot also seemed to be taking more and more time getting ready to answer, and the extension-host process would fully saturate one CPU core for long periods of time.
Applications

Introducing Sambee, Your Browser-Based File Manager for SMB Shares and Local Drives

Sambee is a browser-based viewer and manager for files on SMB network shares and on your computer’s local drives. It supports single-pane and dual-pane views and can replace Windows File Explorer as well as Norton Commander-style tools on your PC and on your phone. And yes, it’s free and open source.
Helge's Tools

How to Convert/Recreate PNG Logos to SVG With Inkscape

Bitmaps tend to have noise and imperfections, especially if they’ve been generated by AI. Vector graphics, on the other hand, trace the outline of elements with elegant curves. Converting from the real world of bitmaps to the ideal world of vectors requires ignoring the actual pixels and seeing an idealized structure instead. That is not something automated conversion tools can do today, at least not those I’ve tested. Instead of converting a PNG to SVG you should, therefore, recreate it in a vector graphics image editor. This article shows how to do that in the free Inkscape.
Applications

Latest Posts

Introducing Sambee, Your Browser-Based File Manager for SMB Shares and Local Drives

Sambee is a browser-based viewer and manager for files on SMB network shares and on your computer’s local drives. It supports single-pane and dual-pane views and can replace Windows File Explorer as well as Norton Commander-style tools on your PC and on your phone. And yes, it’s free and open source.
Helge's Tools

WSL Disk Space Cleanup

The Windows Subsystem for Linux (WSL) stores its virtual hard disks in the user profile on drive C:. These VHDX files can grow up to 1 TB in size, making it necessary to clean up and reclaim space occasionally. This article shows how.
Virtualization & Containers

Changing the Location of the Windows Terminal Settings Files

Windows Terminal stores its settings in configuration files that resides in the Windows user profile. This article explains how to move them to any directory of your choice. Where are the Settings Files Located? The location of the Windows Terminal settings file is hard-coded. The exact path depends on the app variant you installed, but it’s always in the user profile:
Applications