WebKit is a
browser engine
A browser engine ( also known as a layout engine or rendering engine) is a core software component of every major web browser. The primary job of a browser engine is to transform HTML documents and other resources of a web page into an interacti ...
developed by
Apple
An apple is an edible fruit produced by an apple tree (''Malus domestica''). Apple fruit tree, trees are agriculture, cultivated worldwide and are the most widely grown species in the genus ''Malus''. The tree originated in Central Asia, wh ...
and primarily used in its
Safari web browser, as well as on the
iOS
iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that powers many of the company's mobile devices, including the iPhone; the term also include ...
and
iPadOS
iPadOS is a mobile operating system developed by Apple Inc. for its iPad line of tablet computers. It is a rebranded variant of iOS, the operating system used by Apple's iPhones, renamed to reflect the diverging features of the two product ...
version of any web browser. WebKit is also used by the
BlackBerry Browser,
PlayStation consoles beginning from the PS3, the
Tizen mobile operating systems, a browser included with the
Amazon Kindle e-book
An ebook (short for electronic book), also known as an e-book or eBook, is a book publication made available in digital form, consisting of text, images, or both, readable on the flat-panel display of computers or other electronic devices. Alt ...
reader, and on
Nintendo consoles beginning from the
3DS Internet Browser and onward. WebKit's
C++
C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
application programming interface
An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how t ...
(API) provides a set of
classes to display
Web content in
windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ser ...
, and implements browser features such as following links when clicked by the user, managing a back-forward list, and managing a history of pages recently visited.
WebKit started as a
fork
In cutlery or kitchenware, a fork (from la, furca 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tine (structural), tines with which one ...
of the
KHTML
KHTML is a browser engine developed by the KDE project. It is the default engine of the Konqueror browser, but it has not been actively worked on since 2016. Moreover, KHTML will be discontinued for KDE Frameworks 6.
Built on the KParts fra ...
and
KJS libraries from
KDE
KDE is an international free software community that develops free and open-source software. As a central development hub, it provides tools and resources that allow collaborative work on this kind of software. Well-known products include the ...
,
and has since been further developed by KDE contributors,
Apple
An apple is an edible fruit produced by an apple tree (''Malus domestica''). Apple fruit tree, trees are agriculture, cultivated worldwide and are the most widely grown species in the genus ''Malus''. The tree originated in Central Asia, wh ...
,
Google
Google LLC () is an American Multinational corporation, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
,
Nokia
Nokia Corporation (natively Nokia Oyj, referred to as Nokia) is a Finnish multinational corporation, multinational telecommunications industry, telecommunications, technology company, information technology, and consumer electronics corporatio ...
,
Bitstream
A bitstream (or bit stream), also known as binary sequence, is a sequence of bits.
A bytestream is a sequence of bytes. Typically, each byte is an 8-bit quantity, and so the term octet stream is sometimes used interchangeably. An octet may ...
,
BlackBerry
The blackberry is an edible fruit produced by many species in the genus ''Rubus'' in the family Rosaceae, hybrids among these species within the subgenus ''Rubus'', and hybrids between the subgenera ''Rubus'' and ''Idaeobatus''. The taxonomy ...
,
Sony
, commonly stylized as SONY, is a Japanese multinational conglomerate corporation headquartered in Minato, Tokyo, Japan. As a major technology company, it operates as one of the world's largest manufacturers of consumer and professional ...
,
Igalia
Igalia is a private, worker-owned, employee-run cooperative model consultancy focused on open source software. Based in A Coruña, Galicia (Spain), Igalia is known for its contributions and commitments to both open-source and open standards. Igal ...
, and others. WebKit supports
macOS
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
,
Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ser ...
,
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
, and various other
Unix-like
A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-li ...
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
s.
On April 3, 2013, Google announced that it had forked WebCore, a component of WebKit, to be used in future versions of
Google Chrome and the
Opera web browser
Opera is a multi-platform web browser developed by its namesake company Opera. The browser is based on Chromium, but distinguishes itself from other Chromium-based browsers ( Chrome, Edge, etc.) through its user interface and other features.
...
, under the name
Blink.
WebKit is available under the
BSD 2-Clause
BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD li ...
license
[Licensing WebKit , WebKit](_blank)
/ref> with the exception of the WebCore
WebKit is a browser engine developed by Apple and primarily used in its Safari web browser, as well as on the iOS and iPadOS version of any web browser. WebKit is also used by the BlackBerry Browser, PlayStation consoles beginning from the PS3, ...
and JavaScriptCore
WebKit is a browser engine developed by Apple and primarily used in its Safari web browser, as well as on the iOS and iPadOS version of any web browser. WebKit is also used by the BlackBerry Browser, PlayStation consoles beginning from the PS ...
components, which are available under the GNU Lesser General Public License
The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
. As of March 7, 2013, WebKit is a trademark of Apple, registered with the U.S. Patent and Trademark Office.
Origins
The code that would become WebKit began in 1998 as the ''KDE HTML'' (KHTML
KHTML is a browser engine developed by the KDE project. It is the default engine of the Konqueror browser, but it has not been actively worked on since 2016. Moreover, KHTML will be discontinued for KDE Frameworks 6.
Built on the KParts fra ...
) layout engine and ''KDE JavaScript'' ( KJS) engine. The WebKit project was started within Apple by Don Melton on June 25, 2001, as a fork
In cutlery or kitchenware, a fork (from la, furca 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tine (structural), tines with which one ...
of KHTML
KHTML is a browser engine developed by the KDE project. It is the default engine of the Konqueror browser, but it has not been actively worked on since 2016. Moreover, KHTML will be discontinued for KDE Frameworks 6.
Built on the KParts fra ...
and KJS. Melton explained in an e-mail to KDE developers that KHTML
KHTML is a browser engine developed by the KDE project. It is the default engine of the Konqueror browser, but it has not been actively worked on since 2016. Moreover, KHTML will be discontinued for KDE Frameworks 6.
Built on the KParts fra ...
and KJS allowed easier development than other available technologies by virtue of being small (fewer than 140,000 lines of code
Source lines of code (SLOC), also known as lines of code (LOC), is a software metric used to measure the size of a computer program by counting the number of lines in the text of the program's source code. SLOC is typically used to predict the am ...
), cleanly designed and standards-compliant. KHTML and KJS were ported to OS X with the help of an adapter library
A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vir ...
and renamed WebCore and JavaScriptCore. JavaScriptCore was announced in an e-mail to a KDE mailing list in June 2002, alongside the first release of Apple's changes.
According to Apple, some changes which called for different development tactics involved OS X-specific features that are absent in KDE's KHTML, such as Objective-C
Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. Originally developed by Brad Cox and Tom Love in the early 1980s, it was selected by NeXT for its NeXT ...
, KWQ (pronounced "quack") an implementation of the subset of Qt required to make KHTML work on OS X written in Objective C++, and OS X calls.
Split development
The exchange of code between WebCore and KHTML became increasingly difficult as the code base diverged because both projects had different approaches in coding and code sharing. At one point KHTML developers said they were unlikely to accept Apple's changes and claimed the relationship between the two groups was a "bitter failure". Apple submitted their changes in large patches containing multiple changes with inadequate documentation, often in relation to future additions to the codebase. Thus, these patches were difficult for the KDE
KDE is an international free software community that develops free and open-source software. As a central development hub, it provides tools and resources that allow collaborative work on this kind of software. Well-known products include the ...
developers to integrate back into KHTML. Also, Apple had demanded that developers sign non-disclosure agreements before looking at Apple's source code and even then they were unable to access Apple's bug database.
During the publicized "divorce" period, KDE developer Kurt Pfeifle (''pipitas'') posted an article claiming KHTML developers had managed to backport
Backporting is the action of taking parts from a newer version of a software system or software component and porting them to an older version of the same software. It forms part of the maintenance step in a software development process, and it is ...
many (but not all) Safari improvements from WebCore to KHTML, and they always appreciated the improvements coming from Apple and still do so. The article also noted Apple had begun to contact KHTML developers about discussing how to improve the mutual relationship and ways of future cooperation. In fact, the KDE project was able to incorporate some of these changes to improve KHTML's rendering speed and add features, including compliance with the Acid2
Acid2 is a webpage that test web browsers' functionality in displaying aspects of HTML markup, CSS 2.1 styling, PNG images, and data URIs. The test page was released on 13 April 2005 by the Web Standards Project. The Acid2 test page will be ...
rendering test.
Following the appearance of a story of the fork in the news, Apple released the source code of the WebKit fork in a public revision-control repository.
The WebKit team had also reversed many Apple-specific changes in the original WebKit code base and implemented platform-specific abstraction layers to make committing the core rendering code to other platforms significantly easier.
In July 2007, '' Ars Technica'' reported that the KDE team would move from KHTML to WebKit. Instead, after several years of integration, KDE Development Platform version 4.5.0 was released in August 2010 with support for both WebKit and KHTML, and development of KHTML continues.[
]
Open-sourcing
On June 7, 2005, Safari developer Dave Hyatt
David Hyatt (born 28 June 1972) is an American software engineer and a ''Shadowrun'' game expansion author. Employed by Apple starting in 2002, he was part of the Safari web browser and WebKit framework development team. He also helped develop ...
announced on his weblog
A blog (a truncation of "weblog") is a discussion or informational website published on the World Wide Web consisting of discrete, often informal diary-style text entries (posts). Posts are typically displayed in reverse chronological order ...
that Apple was open-sourcing WebKit (formerly, only WebCore and JavaScriptCore were open source) and opening up access to WebKit's revision control
In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
tree and the issue tracker.
In mid-December 2005, support for Scalable Vector Graphics
Scalable Vector Graphics (SVG) is an XML-based vector image format for defining two-dimensional graphics, having support for interactivity and animation. The SVG specification is an open standard developed by the World Wide Web Consortium sinc ...
(SVG) was merged into the standard build.
WebKit's JavaScriptCore and WebCore components are available under the GNU Lesser General Public License, while the rest of WebKit is available under the BSD 2-Clause license.
Further development
Beginning in early 2007, the development team began to implement Cascading Style Sheets (CSS) extensions, including animation, transitions and both 2D and 3D transforms; such extensions were released as working drafts to the World Wide Web Consortium
The World Wide Web Consortium (W3C) is the main international standards organization for the World Wide Web. Founded in 1994 and led by Tim Berners-Lee, the consortium is made up of member organizations that maintain full-time staff working ...
(W3C) in 2009 for standardization.
In November 2007, the project announced that it had added support for media features of the HTML5
HTML5 is a markup language used for structuring and presenting content on the World Wide Web. It is the fifth and final major HTML version that is a World Wide Web Consortium (W3C) recommendation. The current specification is known as the HTML ...
draft specification, allowing embedded video to be natively rendered and script-controlled in WebKit.
On June 2, 2008, the WebKit project announced they rewrote JavaScriptCore as "SquirrelFish", a bytecode
Bytecode (also called portable code or p-code) is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references (norma ...
interpreter. The project evolved into SquirrelFish Extreme (abbreviated SFX), announced on September 18, 2008, which compiles JavaScript into native machine code
In computer programming, machine code is any low-level programming language, consisting of machine language instructions, which are used to control a computer's central processing unit (CPU). Each instruction causes the CPU to perform a ve ...
, eliminating the need for a bytecode interpreter and thus speeding up JavaScript execution. Initially, the only supported processor architecture for SFX was the x86
x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel based on the Intel 8086 microprocessor and its 8088 variant. The 8086 was intr ...
, but at the end of January 2009, SFX was enabled for OS X on x86-64
x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit version of the x86 instruction set, first released in 1999. It introduced two new modes of operation, 64-bit mode and compatibility mode, along with a new 4-level paging ...
as it passes all tests on that platform.
WebKit2
On April 8, 2010, a project named WebKit2 was announced to redesign WebKit. Its goal was to abstract the components that provide web rendering cleanly from their surrounding interface or application shell, creating a situation where, "web content (JavaScript, HTML, layout, etc) lives in a separate process from the application UI". This abstraction was intended to make reuse a more straightforward process for WebKit2 than for WebKit. WebKit2 had "an incompatible API change from the original WebKit", which motivated its name change.
The WebKit2 targets were set to Linux, MacOS, Windows, GTK
GTK (formerly GIMP ToolKit and GTK+) is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and propriet ...
, and MeeGo
MeeGo is a discontinued Linux distribution hosted by the Linux Foundation, using source code from the operating systems Moblin (produced by Intel) and Maemo (produced by Nokia). Primarily targeted at mobile devices and information appliances ...
-Harmattan. Safari for OS X switched to the new API with version 5.1. Safari for iOS switched to WebKit2 since iOS 8.
The original WebKit API has been renamed WebKitLegacy API. WebKit2 API has been renamed just plain WebKit API.
Use
WebKit is used as the rendering engine within Safari and was formerly used by Google
Google LLC () is an American Multinational corporation, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
's Chrome web browser on Windows, macOS, and Android (before version 4.4 KitKat). Chrome used only WebCore, and included its own JavaScript engine
A JavaScript engine is a software component that executes JavaScript code. The first JavaScript engines were mere interpreters, but all relevant modern engines use just-in-time compilation for improved performance.
JavaScript engines are typica ...
named V8 and a multiprocess system. Chrome for iOS
iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that powers many of the company's mobile devices, including the iPhone; the term also include ...
continues to use WebKit because Apple requires that web browsers on that platform must do so. Other applications on macOS and iOS make use of WebKit, such as Apple's e-mail client Mail
The mail or post is a system for physically transporting postcards, letters, and parcels. A postal service can be private or public, though many governments place restrictions on private systems. Since the mid-19th century, national postal sys ...
, App Store, and the 2008 version of Microsoft's Entourage
An entourage () is an informal group or band of people who are closely associated with a (usually) famous, notorious, or otherwise notable individual. The word can also refer to:
Arts and entertainment
* L'entourage, French hip hop / rap collecti ...
personal information manager
A personal information manager (often referred to as a PIM tool or, more simply, a PIM) is a type of application software that functions as a personal organizer. The acronym PIM is now, more commonly, used in reference to personal information manag ...
, both of which make use of WebKit to render HTML content.
Installed base
New web browsers have been built around WebKit such as the S60 browser on Symbian mobile phones, BlackBerry
The blackberry is an edible fruit produced by many species in the genus ''Rubus'' in the family Rosaceae, hybrids among these species within the subgenus ''Rubus'', and hybrids between the subgenera ''Rubus'' and ''Idaeobatus''. The taxonomy ...
Browser (ver 6.0+), Midori
Midori (みどり, ミドリ, , , ) is the Japanese word for "green" and may refer to:
Places
* Midori, Gunma
* Midori-ku, Chiba
* Midori-ku, Nagoya
* Midori-ku, Sagamihara
* Midori-ku, Saitama
* Midori-ku, Yokohama
People Given name
* M ...
, Chrome browser, the Android Web browser before version 4.4 KitKat, and the browser used in PlayStation 3 system software
The PlayStation 3 system software, is the updatable firmware and operating system of the PlayStation 3. The base operating system used by Sony for the PlayStation 3 is a fork of both FreeBSD and NetBSD known internally as ''CellOS'' or ''GameOS'' ...
from version 4.10. KDE's Rekonq
rekonq was a lightweight, QtWebKit-based web browser developed inside the free software project KDE. It is the default web browser of Chakra GNU/Linux, and was formerly of Kubuntu (between versions 10.10 and 13.10). rekonq has been officially ...
web browser and Plasma Workspaces also use it as the native web rendering engine. WebKit has been adopted as the rendering engine in OmniWeb
OmniWeb is a discontinued web browser that was developed and marketed by The Omni Group exclusively for Apple's macOS operating system. Though a stable version is no longer maintained, it is still available as a free download and unstable version ...
, iCab
iCab is a web browser for Mac OS by Alexander Clauss, derived from Crystal Atari Browser (CAB) for Atari TOS compatible computers. It was one of the few browsers still updated for the classic Mac OS prior to that version being discontinued afte ...
and Web (formerly named Epiphany) and Sleipnir, replacing their original rendering engines. GNOME's Web supported both Gecko and WebKit for some time, but the team decided that Gecko's release cycle and future development plans would make it too cumbersome to continue supporting it. webOS
webOS, also known as LG webOS and previously known as Open webOS, HP webOS and Palm webOS, is a Linux kernel-based multitasking operating system for smart devices such as smart TVs that has also been used as a mobile operating system. Initially ...
uses WebKit as the basis of its application runtime. WebKit is used to render HTML and run JavaScript in the Adobe Integrated Runtime
Adobe AIR (also known as Adobe Integrated Runtime and is codenamed Apollo) is a cross-platform runtime system currently developed by Harman International, in collaboration with Adobe Inc., for building desktop applications and mobile applicat ...
application platform. In Adobe Creative Suite
Adobe Creative Suite (CS) is a discontinued software suite of graphic design, video editing, and web development applications developed by Adobe Systems.
The last of the Creative Suite versions, Adobe Creative Suite 6 (CS6), was launched at a re ...
CS5, WebKit is used to render some parts of the user interface. As of the first half of 2010, an analyst estimated the cumulative number of mobile handsets shipped with a WebKit-based browser at 350 million. By mid-April 2015, WebKit browser market share was 50.3%.
Ports
The week after Hyatt announced WebKit's open-sourcing, Nokia announced that it had ported WebKit to the Symbian operating system and was developing a browser based on WebKit for mobile phones running S60. Named Web Browser for S60
Nokia Browser for Symbian (formerly known as Web Browser for S60) was the default web browser for the S60 and Symbian mobile phone platform. The browser is based on a port of Apple Inc.'s open-source WebCore and JavaScriptCore frameworks whic ...
, it was used on Nokia, Samsung, LG, and other Symbian S60 mobile phones. Apple has also ported WebKit to iOS
iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that powers many of the company's mobile devices, including the iPhone; the term also include ...
to run on the iPhone, iPod Touch, and iPad
The iPad is a brand of iOS and iPadOS-based tablet computers that are developed by Apple Inc. The iPad was conceived before the related iPhone but the iPhone was developed and released first. Speculation about the development, operating ...
, where it is used to render content in the device's web browser and e-mail software. The Android mobile phone platform used WebKit (and later versions its Blink fork) as the basis of its web browser and the Palm Pre
The Palm Pre , styled as palm prē, is a multitasking smartphone that was designed and marketed by Palm with a multi-touch screen and a sliding keyboard. The smartphone was the first to use Palm's Linux-based mobile operating system, webOS. Th ...
, announced January 2009, has an interface based on WebKit. The Amazon Kindle 3 includes an experimental WebKit based browser.
In June 2007, Apple announced that WebKit had been ported to Microsoft Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
as part of Safari. Although Safari for Windows was silently discontinued by the company, WebKit's ports to Microsoft's operating system are still actively maintained. The Windows port uses Apple's proprietary libraries to function and is used for iCloud and iTunes for Windows, whereas the "WinCairo" port is a fully open-source and redistributable port.
WebKit has also been ported to several toolkits that support multiple platforms, such as the GTK
GTK (formerly GIMP ToolKit and GTK+) is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and propriet ...
toolkit for Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
, under the name ''WebKitGTK'' which is used by Eolie, GNOME Web
GNOME Web, called Epiphany until 2012 and still known by that code name, is a free and open-source web browser based on the GTK port of Apple's WebKit rendering engine, called WebKitGTK. It is developed by the GNOME project for Unix-like sy ...
, Adobe Integrated Runtime
Adobe AIR (also known as Adobe Integrated Runtime and is codenamed Apollo) is a cross-platform runtime system currently developed by Harman International, in collaboration with Adobe Inc., for building desktop applications and mobile applicat ...
, Enlightenment Foundation Libraries
The Enlightenment Foundation Libraries (EFL) are a set of graphics libraries that grew out of the development of Enlightenment, a window manager and Wayland compositor. The project's focus is to make the EFL a flexible yet powerful and easy to ...
(EFL), and the Clutter
Clutter and its derivations may refer to any of the following:
Excessive physical disorder
* Clutter, a confusing, or disorderly, state or collection, and possible symptom of compulsive hoarding
* Clutter (marketing), numerous advertisements, a ...
toolkit. Qt Software
QT or Qt may refer to:
Arts and media
* QT (musician) (born 1988), pop singer
* '' QT: QueerTelevision'', an LGBT newsmagazine which aired on Canada's CityTV in the 1990s
* Quentin Tarantino (born 1963), American filmmaker
* ''Question Time'' ( ...
included a WebKit port in the Qt 4.4 release as a module called QtWebKit (since superseded by Qt WebEngine
Blink is a browser engine developed as part of the Chromium project with contributions from Google, Meta, Microsoft, Opera Software, Adobe, Intel, IBM, Samsung, and others. It was first announced in April 2013.
Naming
Blink's naming was inf ...
, which uses Blink instead). The Iris Browser on Qt also used WebKit. The Enlightenment Foundation Libraries (EFL) port – EWebKit – was developed (by Samsung
The Samsung Group (or simply Samsung) ( ko, 삼성 ) is a South Korean multinational manufacturing conglomerate headquartered in Samsung Town, Seoul, South Korea. It comprises numerous affiliated businesses, most of them united under the ...
and ProFusion) focusing the embedded and mobile systems, for use as stand alone browser, widgets-gadgets, rich text viewer and composer. The Clutter port is developed by Collabora
Collabora is a global private company headquartered in Cambridge, United Kingdom, with offices in Cambridge and Montreal. It provides open-source consultancy, training and products to companies.
Collabora's initial focus was instant messagin ...
and sponsored by Robert Bosch GmbH.
There was also a project synchronized with WebKit (sponsored by Pleyo) called '' Origyn Web Browser'', which provided a meta-port to an abstract platform with the aim of making porting to embedded or lightweight systems quicker and easier. This port is used for embedded devices such as set-top box
A set-top box (STB), also colloquially known as a cable box and historically television decoder, is an information appliance device that generally contains a TV-tuner input and displays output to a television set and an external source of sign ...
es, PMP and it has been ported into AmigaOS
AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early versions ...
, AROS Aros may refer to:
*Aros (Middle-earth), a river in J. R. R. Tolkien's Middle-earth legendarium
* Aros, Mull, the location of Aros Castle, a ruined 13th-century castle on the Isle of Mull, Scotland
*AROS Research Operating System, a free software i ...
and MorphOS
MorphOS is an AmigaOS-like computer operating system (OS). It is a mixed proprietary and open source OS produced for the Pegasos PowerPC (PPC) processor based computer, PowerUP accelerator equipped Amiga computers, and a series of Freescale dev ...
. MorphOS version 1.7 is the first version of Origyn Web Browser (OWB) supporting HTML5
HTML5 is a markup language used for structuring and presenting content on the World Wide Web. It is the fifth and final major HTML version that is a World Wide Web Consortium (W3C) recommendation. The current specification is known as the HTML ...
media tags.
Web Platform for Embedded
Web Platform for Embedded (WPE) is a WebKit port designed for embedded applications; it further improves the architecture by splitting the basic rendering functional blocks into a general-purpose routines library (libwpe), platform backends, and engine itself (called WPE WebKit).
The GTK port, albeit self-contained, can be built to use these base libraries instead of its internal platform support implementation. The WPE port is currently maintained by Igalia.
Forking by Google
On April 3, 2013, Google announced that it would produce a fork of WebKit's WebCore component, to be named Blink. Chrome's developers decided on the fork to allow greater freedom in implementing WebCore's features in the browser without causing conflicts upstream, and to allow simplifying its codebase by removing code for WebCore components unused by Chrome. In relation to Opera Software
Opera is a Norwegian multinational technology company and subsidiary of Kunlun that specializes in web browser development, fintech, as well as services such as Opera News and YoYo Games. The company's total user base, including users of its ...
's announcement earlier in the year that it would switch to WebKit by means of the Chromium codebase, it was confirmed that the Opera web browser
Opera is a multi-platform web browser developed by its namesake company Opera. The browser is based on Chromium, but distinguishes itself from other Chromium-based browsers ( Chrome, Edge, etc.) through its user interface and other features.
...
would also switch to Blink. Following the announcement, WebKit developers began discussions on removing Chrome-specific code from the engine to streamline its codebase. WebKit no longer has any Chrome specific code (e.g., buildsystem, V8 JavaScript engine hooks, platform code, etc.).
Components
WebCore
WebCore is a layout, rendering, and Document Object Model
The Document Object Model (DOM) is a cross-platform and language-independent interface that treats an XML or HTML document as a tree structure wherein each node is an object representing a part of the document. The DOM represents a document wi ...
(DOM) library
A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vir ...
for HTML and Scalable Vector Graphics
Scalable Vector Graphics (SVG) is an XML-based vector image format for defining two-dimensional graphics, having support for interactivity and animation. The SVG specification is an open standard developed by the World Wide Web Consortium sinc ...
(SVG), developed by the WebKit project. Its full source code is licensed under the GNU Lesser General Public License
The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
(LGPL). The WebKit framework wraps WebCore and JavaScriptCore, providing an Objective-C application programming interface
An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how t ...
to the C++
C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
-based WebCore rendering engine and JavaScriptCore script engine, allowing it to be easily referenced by applications based on the Cocoa API
Cocoa is Apple's native object-oriented application programming interface (API) for its desktop operating system macOS.
Cocoa consists of the Foundation Kit, Application Kit, and Core Data frameworks, as included by the Cocoa.h header file, and ...
; later versions also include a cross-platform
In computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several computing platforms. Some cross-platform software ...
C++ platform abstraction, and various ports provide more APIs.
WebKit passes the Acid2
Acid2 is a webpage that test web browsers' functionality in displaying aspects of HTML markup, CSS 2.1 styling, PNG images, and data URIs. The test page was released on 13 April 2005 by the Web Standards Project. The Acid2 test page will be ...
and Acid3
The Acid3 test is a web test page from the Web Standards Project that checks a web browser's compliance with elements of various web standards, particularly the Document Object Model (DOM) and JavaScript.
If the test is successful, the results ...
tests, with pixel-perfect rendering and no timing or smoothness issues on reference hardware.
JavaScriptCore
JavaScriptCore is a framework that provides a JavaScript engine
A JavaScript engine is a software component that executes JavaScript code. The first JavaScript engines were mere interpreters, but all relevant modern engines use just-in-time compilation for improved performance.
JavaScript engines are typica ...
for WebKit implementations, and provides this type of scripting in other contexts within macOS. JavaScriptCore is originally derived from KDE
KDE is an international free software community that develops free and open-source software. As a central development hub, it provides tools and resources that allow collaborative work on this kind of software. Well-known products include the ...
's JavaScript engine ( KJS) library
A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vir ...
(which is part of the KDE project) and the PCRE
Perl Compatible Regular Expressions (PCRE) is a library written in C, which implements a regular expression engine, inspired by the capabilities of the Perl programming language. Philip Hazel started writing PCRE in summer 1997. PCRE's syntax i ...
regular expression
A regular expression (shortened as regex or regexp; sometimes referred to as rational expression) is a sequence of characters that specifies a search pattern in text. Usually such patterns are used by string-searching algorithms for "find" ...
library. Since forking from KJS and PCRE, JavaScriptCore has been improved with many new features and greatly improved performance.
On June 2, 2008, the WebKit project announced they rewrote JavaScriptCore as "SquirrelFish", a bytecode
Bytecode (also called portable code or p-code) is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references (norma ...
interpreter. The project evolved into SquirrelFish Extreme (abbreviated SFX, marketed as Nitro), announced on September 18, 2008 further speeding up JavaScript execution.
An optimizing just-in-time (JIT) compiler named ''FTL'' was announced on May 13, 2014. It uses LLVM
LLVM is a set of compiler and toolchain technologies that can be used to develop a front end for any programming language and a back end for any instruction set architecture. LLVM is designed around a language-independent intermediate repre ...
to generate optimized machine code. "FTL" stands for "Fourth-Tier-LLVM", and unofficially for faster-than-light
Faster-than-light (also FTL, superluminal or supercausal) travel and communication are the conjectural propagation of matter or information faster than the speed of light (). The special theory of relativity implies that only particles with zero ...
, alluding to its speed. As of February 15, 2016, the backend of FTL JIT is replaced by "Bare Bones Backend" (or B3 for short).
See also
* Comparison of browser engines
This article compares browser engines, especially actively- developed ones.
Some of these engines have shared origins. For example, the WebKit engine was created by forking the KHTML engine in 2001. Then, in 2013, a modified version of WebKit wa ...
* List of WebKit-based browsers
References
External links
* 1999 software
* for WebKitGTK
SunSpider 1.0 JavaScript Benchmark
{{DEFAULTSORT:Webkit
2005 software
Application programming interfaces
Free layout engines
Free software programmed in C++
Mobile software
Software based on WebKit
Software forks
Software that uses Cairo (graphics)
WebKitGTK
Software using the BSD license