Browser engine explained

Browser engine explained

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.
  • Javascript engine parses, executes, and controls the javascript code.
  • 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?

First, the browser engine and javascript engine are almost isolated from what they are responsible for.
Second, besides web browser, browser engine and javascript engine are embedded in various applications/frameworks such as email clients to display HTML email, electron, or nwjs frameworks to display the UI of desktop apps, react native for mobile apps, WebView in Android and iOS, etc.

List of web browsers and their browser engines.


First of all, all browsers distributed in the iOS App Store must use WebCore from the WebKit engine. WebKit is a project maintained by Apple which includes WebCore as the rendering engine and JavascriptCore as the Javascript engine. WebKit is similar to Chromium, except that Chromium also includes related components such as the Chromium browser, Chromium OS, etc.

  • 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.

List of Javascript engines.

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.
  • Safari uses JavascriptCore. JavascriptCore is a folk of KJS.
  • Internet Explorer uses Chakra.
  • Edge uses v8, previously it used Chakra.
  • React Native uses JavascriptCore by default, v8 in some cases. Developers can opt-in to use Hermes.