On a system that supports process isolation, an
application can use multiple processes to isolate components of the application from one another.
Web browsers Internet Explorer 4 used process isolation in order to allow separate windowed instances of the
browser their own processes; however, at the height of the
browser wars, this was dropped in subsequent versions to compete with
Netscape Navigator (which sought to concentrate upon one process for the entire Internet suite). This idea of process-per-instance would not be revisited until a decade afterwards, when
tabbed browsing became more commonplace. In
Google Chrome's "
Multi-Process Architecture" and
Internet Explorer 8's "
Loosely Coupled IE (LCIE)",
tabs containing webpages are contained within their own processes, which are isolated from the core process of the browser so as to prevent the crash of one tab/page from crashing the entire browser. This method (known popularly as
multiprocess or
process-per-tab) is meant to both manage memory and processing by allowing offending tabs to crash separately from the browser and other tabs and manage security. In
Firefox, the execution of
NPAPI plug-ins like Flash and Silverlight became isolated in separate processes for each plug-in, starting in
version 3.6.4. The foundation of this process isolation eventually became a project called Electrolysis or e10s for short, which extended process isolation to web content, browser chrome, and add-ons. This became enabled by default for all users starting in version 57, with the side-effect of add-ons requiring to be rewritten to the more limited
Web Extensions. e10s was then later extended into per-origin process isolation (also known as "site isolation") with Project Fission, which was shipped in version 95.
Browsers with process isolation •
Google Chrome •
Internet Explorer 8 and later •
Safari •
Mozilla Firefox (plug-ins since 3.6.4, default for web content and everything else since 57) •
Maxthon •
Pale Moon (only for plug-ins since 3.6.4)
Criticism Pale Moon is a notable web browser that has intentionally not isolated browser chrome, web content, add-ons, and other non-plugin components to their own processes. It claims that a multi-process browser will run into issues such as the asynchronous nature of
inter-process communication conflicting with web standards that require a synchronous state (e.g. setting
cookies), increased sluggishness in UI interaction due to messages having to be passed back-and-forth between the main chrome process and web content, increased resource usage due to the parsing, layout and rendering engines of the browser being duplicated across processes, and having no control over the IPC's security (which will necessarily replace the strict sandboxing between application code and document content found in the usual single-process browser or document viewer) handled by the operating system. ==Programming languages==