Hacker News new | ask | show | jobs
by gwmnxnp_516a 1870 days ago
Modern browsers uses multi-process, a process for each tab due to security and reliability reasons. If a single tab crashes, the all other tabs will not be crashed. In addition, unlike threads, processes are isolated from each other since they do not share the same address space, which is another line of defense. This multi-process approach could not be needed if an entire web browser, such as Firefox, was written in a memory safe language like Rust.
1 comments

Even with Rust the browser would still need multiple processes because Rust provides no way to catch a panic. The way to handle panics in Rust is to run the code in its own process and then to handle the failure of that process.
We do provide a way to catch a panic https://doc.rust-lang.org/stable/std/panic/fn.catch_unwind.h...

It's not considered generally idiomatic as an error handling strategy, but it does exist if it's needed.