WebKit, AOSP/Google Webview, Gecko

  1. In the open source world, there are two large code bases for rendering HTML content: WebKit (and its forks) and Gecko. Gecko is the engine developed by Mozilla used in Firefox. When Apple decided to make their own browser (Safari) they looked around at the existing code bases. They didn’t want to use Gecko because it wasn’t very modular and had poor performance. Instead, they took KHTML and KJS as a base (developed for KDE on Linux and used in Konqueror) and developed WebKit. When Google decided to get into the browser world they made the same decision for the same reason with Chrome, which was originally built on WebKit and is now built of a WebKit fork called Blink. Opera had their own engine, but they eventually dropped it to use Blink as well (through a customized version of Chrome). Android’s WebView, which is used by apps to render HTML, is based on Blink.

When people fork WebKit, usually the part they change the most is the JavaScript engine component. This is where most of the speed benefits of various browser updates come from.

  1. @anon36515525 is correct; on iOS all browsers must use the iOS WebKit rendering engine. This doesn’t make Google and Mozilla very happy, but they don’t have very many options, so they have gone along with it so far.

  2. Because there aren’t enough WebKit implementations (xkcd: Standards), I intend to create a fork of Android’s WebView called Privacy WebView (https://www.stoutner.com/category/roadmap/) to go along with Privacy Browser (| F-Droid - Free and Open Source Android App Repository). When I do, it will be a fork of Blink, which is a fork of WebKit, which is a fork of KHTML. :grin:

2 Likes