WebKit facts for kids
![]() |
|
Original author(s) | Apple Inc. |
---|---|
Developer(s) | Apple Inc., Adobe Systems, Sony, KDE, Igalia, and others |
Initial release | November 4, 1998 June 7, 2005 (WebKit sourced) |
(KHTML released)
Preview release |
Nightly
|
Written in | C++ |
Operating system | macOS, iOS, Linux, Microsoft Windows |
Type | Browser engine |
License | LGPLv2.1 (rendering engine, JavaScript engine), BSD 2-Clause (additional contributions from Apple) |
WebKit is a special program that helps web browsers show you websites. Think of it as the engine that powers how you see and interact with pages on the internet. It's mainly used in Apple's Safari browser. It's also used by all web browsers on Apple's mobile devices, like iOS (for iPhones) and iPadOS (for iPads).
WebKit is also found in other places! It's used in PlayStation consoles (starting with PS3), some mobile operating systems like Tizen, the Amazon Kindle e-book reader, and Nintendo consoles (like the 3DS Internet Browser).
WebKit has a part called JavascriptCore. This is a JavaScript engine, which means it runs the special code that makes websites interactive. For example, it helps with animations or forms you fill out. This is different from other engines like V8, which is used by programs like Node.js. WebKit also has a C++ application programming interface (API). This API helps programs display web content, manage your browsing history, and follow links you click.
WebKit started from two older programs called KHTML and KJS. These were made by a group called KDE. Over time, many companies and groups have helped develop WebKit, including Apple, Google, Sony, and others. WebKit works on many different computer systems, like macOS, Windows, and Linux. In 2013, Google created a new engine called Blink from a part of WebKit. Blink is now used in Google Chrome and Opera.
WebKit is an open source project. This means its code is available for anyone to see and use. Most of WebKit uses a BSD 2-Clause license. Some parts, like WebCore and JavaScriptCore, use a different license called the GNU Lesser General Public License. Apple officially registered WebKit as a trademark in 2013.
Contents
How WebKit Started
The code that became WebKit began in 1998. It was part of the KDE HTML (KHTML) layout engine and KDE JavaScript (KJS) engine. Apple started its own WebKit project on June 25, 2001. They took the KHTML and KJS code and started to improve it.
An Apple developer named Lisa Melton explained why they chose KHTML and KJS. She said they were small and well-designed, making them easier to work with. Apple then changed KHTML and KJS to work on macOS. They renamed them WebCore and JavaScriptCore. Apple announced JavaScriptCore in June 2002, along with their first changes to the code.
Apple made some changes to WebKit to add features specific to macOS. This included using a programming language called Objective-C.
Working Together (and Apart)
Sharing code between WebCore (Apple's version) and KHTML (KDE's version) became tricky. Both groups had different ways of coding. At one point, the KHTML developers felt it was hard to accept Apple's changes. They said Apple sent large updates that were hard to understand.
However, things improved. A KDE developer, Kurt Pfeifle, said that KHTML had managed to add many of Apple's improvements. He also noted that Apple started talking to KDE about working together better. KDE was able to use some of these changes to make KHTML faster and better. It even helped KHTML pass the Acid2 test, which checks how well a browser displays web pages.
After this, Apple made the WebKit code public. The WebKit team also made it easier for the core code to work on different computer systems. In 2007, some thought KDE would switch from KHTML to WebKit. Instead, KDE continued to develop KHTML alongside WebKit support.
Becoming Open Source
On June 7, 2005, a Safari developer named Dave Hyatt announced that Apple was making WebKit fully open source. Before this, only WebCore and JavaScriptCore were open source. This meant that anyone could now access WebKit's code and track issues.
In late 2005, WebKit added support for Scalable Vector Graphics (SVG). These are images that can be scaled to any size without losing quality.
Remember, WebKit's JavaScriptCore and WebCore parts use the GNU Lesser General Public License. The rest of WebKit uses the BSD 2-Clause license.
More Development
Around 2007, the WebKit team started adding cool new features for Cascading Style Sheets (CSS). CSS controls how web pages look. These new features included animations, transitions, and 2D and 3D effects. These ideas were later shared with the World Wide Web Consortium (W3C) to become official web standards.
In 2007, WebKit also added support for video features from the HTML5 standard. This allowed videos to play directly in the browser.
In 2008, the WebKit project announced a big change to JavaScriptCore. They rewrote it to be much faster. This new version was called "SquirrelFish." It later became "SquirrelFish Extreme" (SFX), which made JavaScript run even quicker by turning it directly into computer code.
WebKit2
In 2010, a new project called WebKit2 was announced. The goal was to rebuild WebKit so that the part that shows web content (like JavaScript and HTML) runs separately from the application itself. This makes it easier for other programs to use WebKit.
WebKit2 was designed for Linux, macOS, Windows, and other systems. Safari for macOS started using WebKit2 with version 5.1. Safari for iOS switched to WebKit2 with iOS 8. The original WebKit is now called WebKitLegacy API, and WebKit2 is simply called WebKit API.
Where WebKit is Used

WebKit is the main engine inside Safari. It was also used by Google's Chrome browser on Windows, macOS, and Android for a while. Chrome used only WebCore and had its own JavaScript engine called V8. Chrome on iOS still uses WebKit because Apple requires it for all browsers on that platform.
Many other apps on macOS and iOS use WebKit too. For example, Apple's e-mail app Mail and the App Store use it to display HTML content. Even an older version of Microsoft's Entourage used WebKit.
Many Devices Use WebKit
Many new web browsers have been built using WebKit. This includes the S60 browser on Symbian phones, BlackBerry Browser, Midori, and the browser on PlayStation 3 system software (from version 4.10). KDE's Rekonq browser also uses it.
WebKit has replaced older engines in browsers like OmniWeb, iCab, and Web. The webOS system uses WebKit for its apps. WebKit also helps display HTML and run JavaScript in Adobe Integrated Runtime applications. In Adobe Creative Suite CS5, WebKit even helps show parts of the user interface. By 2010, it was estimated that 350 million mobile phones had a WebKit-based browser. By 2015, WebKit browsers had a market share of over 50%!
WebKit on Different Systems
Soon after WebKit became open source, Nokia announced they had adapted it for the Symbian operating system. They made a browser for S60 phones using WebKit. Apple also adapted WebKit for iOS to run on the iPhone, iPod Touch, and iPad. It's used there for the web browser and e-mail. The Android phone platform also used WebKit (and later its Blink version) for its browser. The Amazon Kindle 3 even has an experimental WebKit-based browser.
In 2007, Apple brought WebKit to Microsoft Windows as part of Safari. Even though Safari for Windows is no longer updated, WebKit for Windows is still maintained. It's used by Apple's iCloud and iTunes programs on Windows. There's also a fully open-source version called "WinCairo."

WebKit has also been adapted for other toolkits that work on many systems. One is the GTK toolkit for Linux, called WebKitGTK. This is used by browsers like GNOME Web. Qt Software also included a WebKit version in their Qt 4.4 release.
There was also a project called Origyn Web Browser. This project made it easier to bring WebKit to smaller, embedded devices like set-top boxes. It has been used on systems like AmigaOS and MorphOS.
Web Platform for Embedded (WPE)
Web Platform for Embedded (WPE) is a special version of WebKit made for small, built-in devices. It breaks down the rendering parts into smaller pieces. This makes it even better for devices that need to be very efficient. The WPE WebKit is currently maintained by a company called Igalia.
Google's Blink Fork
On April 3, 2013, Google announced they would create a new project from WebKit's WebCore part. They named it Blink. Chrome's developers wanted more freedom to add features without causing problems for WebKit. They also wanted to make the code simpler by removing parts Chrome didn't use. When Opera Software announced they would switch to WebKit, it was confirmed they would also switch to Blink. After this, WebKit developers started removing Chrome-specific code from their engine.
WebKit's Main Parts
WebCore
WebCore is a key part of WebKit. It's like the brain for displaying HTML and SVG (Scalable Vector Graphics) content. It also handles the Document Object Model (DOM), which is how web pages are structured. WebCore's code is available under the GNU Lesser General Public License. The WebKit framework wraps WebCore and JavaScriptCore. It provides a way for applications to easily use these powerful engines.
WebKit is known for being very good at displaying web pages correctly. It passes the Acid2 and Acid3 tests perfectly. These tests check how well a browser follows web standards.
JavaScriptCore
JavaScriptCore is the part of WebKit that runs JavaScript code. It's like a special engine for scripts. It was originally based on KDE's JavaScript engine (KJS) and another library for text patterns. Since then, JavaScriptCore has been greatly improved with many new features and much faster performance.
In 2008, the WebKit project announced they rewrote JavaScriptCore as "SquirrelFish." This made JavaScript run faster. Later, it evolved into "SquirrelFish Extreme" (SFX), also known as Nitro. This version made JavaScript even quicker by turning it directly into machine code.
In 2014, an even faster compiler called FTL was announced. FTL stands for "Fourth-Tier-LLVM" and unofficially for "faster-than-light," hinting at its speed. This compiler helps JavaScript run super fast!
Images for kids
-
Usage share of web browsers according to StatCounter
-
GNOME Web is a major web browser on Linux that uses WebKitGTK.
See also
In Spanish: WebKit para niños
- Comparison of browser engines
- List of WebKit-based browsers