A web browser, as a standalone computer program, is usually consisted of 3 parts:
- Rendering engine, AKA browser engine, AKA layout engine is responsible for parsing the HTML document into a DOM tree, render(paint) it into a viewable format to show to the user.
- The browser process: manage browser tabs, network requests, configuration, extension, file IO, etc.
Why browser engine is often referred to rather than the standalone web browser program?
List of web browsers and their browser engines.
- Firefox uses Gecko. Firefox had an experimental Servo (hence, the birth of the StackOverflow most loved Rust programming language) engine started from 2012 until 2020 before transferring it to the Linux Foundation. Portions of Servo were integrated into Gecko.
- Konqueror (KDE default browser) uses KHTML.
- Safari uses WebCore. WebCore is a fork of KHTML.
- Chrome uses Blink, previously it used WebCore. Blink is a fork of WebCore.
- Internet Explorer uses Trident.
- Edge uses Blink, previously it used EdgeHTML. EdgeHTML is a successor of Trident.
- Opera uses Blink, previously it used Presto. Presto is proprietary software (so, closed-source) of Opera Software. But its source code was leaked on Github on February 11, 2016.
- Electron (previously named Atom Shell) which powers many desktop applications like Atom, Visual Studio Code, ... uses Blink.
- nwjs (previously named node-webkit), a desktop app framework, similar to Electron, uses Blink.
First of all, all browsers distributed in the iOS App Store must use the JavscriptCore engine from the WebKit engine.
- Firefox uses SpiderMonkey. The experimental Servo engine comes with mozjs. Mozjs is a folk of SpiderMonkey.
- Chrome uses v8.
- Konqueror uses KJS.
- Internet Explorer uses Chakra.
- Edge uses v8, previously it used Chakra.
- Electron, and, nwjs, uses NodeJS (nodejs uses v8 internally).