3 ms·
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 cras
by gwmnxnp_516a 5y 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.
- compressedgas 5y agoEven 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.
- steveklabnik 5y agoWe do provide a way to catch a panic https://doc.rust-lang.org/stable/std/panic/fn.catch_unwind.html 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.