WebKit
Encyclopedia
WebKit is a layout engine
Layout engine
A web browser engine, , is a software component that takes marked up content and formatting information and displays the formatted content on the screen. It "paints" on the content area of a window, which is displayed on a monitor or a printer...

 designed to allow web browser
Web browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...

s to render
Rendering (computer graphics)
Rendering is the process of generating an image from a model , by means of computer programs. A scene file contains objects in a strictly defined language or data structure; it would contain geometry, viewpoint, texture, lighting, and shading information as a description of the virtual scene...

 web page
Web page
A web page or webpage is a document or information resource that is suitable for the World Wide Web and can be accessed through a web browser and displayed on a monitor or mobile device. This information is usually in HTML or XHTML format, and may provide navigation to other web pages via hypertext...

s. WebKit powers Google Chrome
Google Chrome
Google Chrome is a web browser developed by Google that uses the WebKit layout engine. It was first released as a beta version for Microsoft Windows on September 2, 2008, and the public stable release was on December 11, 2008. The name is derived from the graphical user interface frame, or...

 and Apple Safari
Safari (web browser)
Safari is a web browser developed by Apple Inc. and included with the Mac OS X and iOS operating systems. First released as a public beta on January 7, 2003 on the company's Mac OS X operating system, it became Apple's default browser beginning with Mac OS X v10.3 "Panther". Safari is also the...

 and by October 2011 held over 33% of the browser market share
Usage share of web browsers
The usage share of a web browser is the proportion, often expressed as a percentage, of users of all web browsers who use that particular browser. This figure can only be estimated, typically by determining the proportion of visitors to a group of websites that use a particular web browser...

 between them. It is also used as the basis for the experimental browser included with the Amazon Kindle
Amazon Kindle
The Amazon Kindle is an e-book reader developed by Amazon.com subsidiary Lab126 which uses wireless connectivity to enable users to shop for, download, browse, and read e-books, newspapers, magazines, blogs, and other digital media...

 ebook reader, as well as the default browser in the iOS
IOS
iOS is an operating system for iPad, iPhone, iPod Touch, and Apple TV.IOS may also refer to:-Companies and organisations:* Illinois Ornithological Society, American state-based bird club...

 and Android mobile operating systems. The WebKit engine provides a set of classes to display web content in windows, 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 was originally derived by Apple Inc. from the Konqueror
Konqueror
Not to be confused with the Conqueror web browser.Konqueror is a web browser and file manager that provides file-viewer functionality for file systems such as local files, files on a remote ftp server and files in a disk image. It is a core part of the KDE desktop environment...

 browser's KHTML
KHTML
KHTML is the HTML layout engine developed by the KDE project. It is the engine used by the Konqueror web browser. A forked version of KHTML called WebKit is used by several web browsers, among them Safari and Google Chrome...

 software library for use as the engine of Safari
Safari (web browser)
Safari is a web browser developed by Apple Inc. and included with the Mac OS X and iOS operating systems. First released as a public beta on January 7, 2003 on the company's Mac OS X operating system, it became Apple's default browser beginning with Mac OS X v10.3 "Panther". Safari is also the...

 web browser, and has now been further developed by individuals from KDE
KDE
KDE is an international free software community producing an integrated set of cross-platform applications designed to run on Linux, FreeBSD, Microsoft Windows, Solaris and Mac OS X systems...

, Apple Inc., Nokia
Nokia
Nokia Corporation is a Finnish multinational communications corporation that is headquartered in Keilaniemi, Espoo, a city neighbouring Finland's capital Helsinki...

, Google
Google
Google Inc. is an American multinational public corporation invested in Internet search, cloud computing, and advertising technologies. Google hosts and develops a number of Internet-based services and products, and generates profit primarily from advertising through its AdWords program...

, Bitstream
Bolt browser
The BOLT Browser is a web browser for mobile phones including feature phones and smartphones that can run Java ME applications. The BOLT Browser is offered free of charge to consumers and by license to Mobile network operators and handset manufacturers...

, Torch Mobile, Samsung
Samsung
The Samsung Group is a South Korean multinational conglomerate corporation headquartered in Samsung Town, Seoul, South Korea...

, Igalia
Igalia
Igalia is a private company, based in Spain, known for their contributions to the GNOME project, their work in the Maemo and MeeGo platforms, and the WebKitGTK+ project....

, and others. Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

, Windows, GNU
GNU Project
The GNU Project is a free software, mass collaboration project, announced on September 27, 1983, by Richard Stallman at MIT. It initiated GNU operating system development in January, 1984...

/Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, and some other Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...

-like operating systems
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

 are supported by the project.

WebKit's WebCore and JavaScriptCore components are available under the GNU Lesser General Public License
GNU Lesser General Public License
The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License...

, and the rest of WebKit is available under a BSD-style
BSD licenses
BSD licenses are a family of permissive free software licenses. The original license was used for the Berkeley Software Distribution , a Unix-like operating system after which it is named....

 license.

Origins

The code that would become WebKit began in 1998 as the KDE
KDE
KDE is an international free software community producing an integrated set of cross-platform applications designed to run on Linux, FreeBSD, Microsoft Windows, Solaris and Mac OS X systems...

 project's HTML
HTML
HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages....

 layout engine
Layout engine
A web browser engine, , is a software component that takes marked up content and formatting information and displays the formatted content on the screen. It "paints" on the content area of a window, which is displayed on a monitor or a printer...

 KHTML
KHTML
KHTML is the HTML layout engine developed by the KDE project. It is the engine used by the Konqueror web browser. A forked version of KHTML called WebKit is used by several web browsers, among them Safari and Google Chrome...

 and KDE's JavaScript engine (KJS). The WebKit project was started within Apple by Don Melton on 25 June 2001 as a fork of KHTML
KHTML
KHTML is the HTML layout engine developed by the KDE project. It is the engine used by the Konqueror web browser. A forked version of KHTML called WebKit is used by several web browsers, among them Safari and Google Chrome...

 and KJS
KJS (KDE)
KJS is KDE's ECMAScript/JavaScript engine that was originally developed for the KDE project's Konqueror web browser by Harri Porten in 2000.On June 13, 2002, Maciej Stachowiak announced on a mailing list that Apple was releasing JavaScriptCore, a framework for Mac OS X that was based on KJS...

. Melton explained in an e-mail to KDE developers that KHTML
KHTML
KHTML is the HTML layout engine developed by the KDE project. It is the engine used by the Konqueror web browser. A forked version of KHTML called WebKit is used by several web browsers, among them Safari and Google Chrome...

 and KJS
KJS (KDE)
KJS is KDE's ECMAScript/JavaScript engine that was originally developed for the KDE project's Konqueror web browser by Harri Porten in 2000.On June 13, 2002, Maciej Stachowiak announced on a mailing list that Apple was releasing JavaScriptCore, a framework for Mac OS X that was based on KJS...

 allowed easier development than other available technologies by virtue of being small (fewer than 140,000 lines of code), cleanly designed and standards-compliant. KHTML and KJS were ported to Mac OS X with the help of an adapter library 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. WebCore was announced at the Macworld Expo in January 2003 by Apple CEO Steve Jobs
Steve Jobs
Steven Paul Jobs was an American businessman and inventor widely recognized as a charismatic pioneer of the personal computer revolution. He was co-founder, chairman, and chief executive officer of Apple Inc...

 with the release of the Safari web browser. JavaScriptCore was first included with Mac OS X v10.2
Mac OS X v10.2
Mac OS X version 10.2 "Jaguar" is the third major release of Mac OS X, Apple's desktop and server operating system. It superseded Mac OS X v10.1 code name Puma and preceded Mac OS X Panther...

 as a private framework which Apple used within their Sherlock
Sherlock (software)
Sherlock, named after Sherlock Holmes, was a file and web search tool created by Apple Inc. for the Mac OS, introduced with Mac OS 8.5 as an extension of the Mac OS Finder's file searching capabilities. Like its predecessor, it can search for local files and file contents, which it does using the...

 application, while WebCore debuted with the first beta of Safari. Mac OS X v10.3
Mac OS X v10.3
Mac OS X Panther is the fourth major release of Mac OS X, Apple’s desktop and server operating system. It followed Mac OS X v10.2 "Jaguar" and preceded Mac OS X Tiger...

 was the first major release of Apple's operating system to bundle WebKit, although it had already been bundled with a minor release of 10.2.

However, the exchange of code patches between the two branches of KHTML has previously been difficult and the code base diverged because both projects had different approaches in coding. One of the reasons for this is that Apple worked on their version of KHTML for a year before making their fork public.

Despite this, 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
Acid2 is a test page published and promoted by the Web Standards Project to expose web page rendering flaws in web browsers and other applications that render HTML. Named after the acid test for gold, it was developed in the spirit of Acid1, a relatively narrow test of compliance with the Cascading...

 rendering test. Konqueror 3.5 passed the Acid2 test, which was released after Apple had opened its WebKit CVS
Concurrent Versions System
The Concurrent Versions System , also known as the Concurrent Versioning System, is a client-server free software revision control system in the field of software development. Version control system software keeps track of all work and all changes in a set of files, and allows several developers ...

 and Bug Database.

According to Apple, some changes involved Mac OS X–specific features (e.g., Objective-C
Objective-C
Objective-C is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.Today, it is used primarily on Apple's Mac OS X and iOS: two environments derived from the OpenStep standard, though not compliant with it...

, KWQ, Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

 calls) that are absent in KDE's KHTML, which called for different development tactics.

Split development

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 that contained a great number of changes with inadequate documentation, often to do with future feature additions. Thus, these patches were difficult for the KDE
KDE
KDE is an international free software community producing an integrated set of cross-platform applications designed to run on Linux, FreeBSD, Microsoft Windows, Solaris and Mac OS X systems...

 developers to integrate back into KHTML. Furthermore, Apple had demanded developers to sign nondisclosure 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 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.

Since the story of the fork appeared in news, Apple has released changes of the source code of its KHTML fork in a CVS
Concurrent Versions System
The Concurrent Versions System , also known as the Concurrent Versioning System, is a client-server free software revision control system in the field of software development. Version control system software keeps track of all work and all changes in a set of files, and allows several developers ...

 repository. Since the transfer of the sourcecode into a public CVS repository, Apple and KHTML developers have had increasing collaboration. Many KHTML developers have become reviewers and submitters for WebKit SVN 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, the Ars Technica
Ars Technica
Ars Technica is a technology news and information website created by Ken Fisher and Jon Stokes in 1998. It publishes news, reviews and guides on issues such as computer hardware and software, science, technology policy, and video games. Ars Technica is known for its features, long articles that go...

 website published an article reporting 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
Dave Hyatt
Dave Hyatt is an American software developer currently employed by Apple Inc. , where he is part of the development team responsible for the Safari web browser and WebKit framework. Hyatt was part of the original team that shipped the beta releases and 1.0 release of Safari...

 announced on his weblog that Apple was open-sourcing WebKit (previously, only WebCore and JavaScriptCore were open source) and opening up access to WebKit's CVS tree and the bug Database tool. This was announced at Apple's Worldwide Developers Conference
Worldwide Developers Conference
The Apple Worldwide Developers Conference, commonly abbreviated WWDC, is a conference held annually in California by Apple Inc. The conference is primarily used by Apple to showcase its new software and technologies for developers, as well as offering hands-on labs and feedback sessions...

 2005 by Apple Senior Vice President of Software Engineering Bertrand Serlet
Bertrand Serlet
Bertrand Serlet, born 1960, is a French researcher. PhD in Computer Science at Université d'Orsay , he worked first at the Institut national de recherche en informatique et en automatique . He left France for USA in 1985....

.

In mid-December 2005 support for Scalable Vector Graphics
Scalable Vector Graphics
Scalable Vector Graphics is a family of specifications of an XML-based file format for describing two-dimensional vector graphics, both static and dynamic . The SVG specification is an open standard that has been under development by the World Wide Web Consortium since 1999.SVG images and their...

 was merged into the standard build and in early January 2006 the source code was migrated from CVS
Concurrent Versions System
The Concurrent Versions System , also known as the Concurrent Versioning System, is a client-server free software revision control system in the field of software development. Version control system software keeps track of all work and all changes in a set of files, and allows several developers ...

 to Subversion.

WebKit's JavaScriptCore and WebCore components are available under the GNU Lesser General Public License, while the rest of WebKit is available under a BSD-style license.

Further development

Beginning in early 2007, the development team began to implement CSS extensions, including animation
CSS Animations
CSS Animations is a proposed module for Cascading Style Sheets that allows for the animation of XML elements using CSS.- History :While the pseudo-class :hover has been used to generate rudimentary animations for years, extensions of CSS into the realm of animation were minimal until the late 2000s...

, transitions and both 2D and 3D transforms; such extensions were released as working drafts to the W3C
World Wide Web Consortium
The World Wide Web Consortium is the main international standards organization for the World Wide Web .Founded and headed by Tim Berners-Lee, the consortium is made up of member organizations which maintain full-time staff for the purpose of working together in the development of standards for the...

 in 2009 for standardization.

In November 2007, the project announced that it had accomplished support for HTML5 media features, allowing for 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
Bytecode, also known as p-code , is a term which has been used to denote various forms of instruction sets designed for efficient execution by a software interpreter as well as being suitable for further compilation into machine code...

 interpreter
Interpreter (computing)
In computer science, an interpreter normally means a computer program that executes, i.e. performs, instructions written in a programming language...

. The project evolved into SquirrelFish Extreme (abbreviated SFX), announced on September 18, 2008, which compiles
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

 JavaScript into native machine code
Machine code
Machine code or machine language is a system of impartible instructions executed directly by a computer's central processing unit. Each instruction performs a very specific task, typically either an operation on a unit of data Machine code or machine language is a system of impartible instructions...

, eliminating the need for a bytecode interpreter and thus speeding up Javascript execution. Initially the only supported architecture for SFX was the x86 architecture
X86 architecture
The term x86 refers to a family of instruction set architectures based on the Intel 8086 CPU. The 8086 was launched in 1978 as a fully 16-bit extension of Intel's 8-bit based 8080 microprocessor and also introduced segmentation to overcome the 16-bit addressing barrier of such designs...

, but at the end of January 2009 SFX was enabled for Mac OS X on x86-64
X86-64
x86-64 is an extension of the x86 instruction set. It supports vastly larger virtual and physical address spaces than are possible on x86, thereby allowing programmers to conveniently work with much larger data sets. x86-64 also provides 64-bit general purpose registers and numerous other...

 architectures as it passes all tests on that platform.

On June 6, 2011, as an early step to try to use an extension to today's CSS (Cascading Style Sheets) technology to bring magazine-style layouts to Web pages, the first bit of Adobe-written code landed in the WebKit browser engine project.

WebKit2

WebKit2 was announced on 8 April 2010. WebKit2 is designed from the ground up to support a split process model, where the web content (JavaScript, HTML, layout, etc.) runs in a separate process from the application UI. This model is similar to what Google Chrome
Google Chrome
Google Chrome is a web browser developed by Google that uses the WebKit layout engine. It was first released as a beta version for Microsoft Windows on September 2, 2008, and the public stable release was on December 11, 2008. The name is derived from the graphical user interface frame, or...

 now offers, with the major difference being that WebKit2 has built the process split model directly into the framework, allowing other clients to use it. Currently WebKit2 is available for Mac, Windows and MeeGo
MeeGo
MeeGo is a Linux-based open source mobile operating system project. Primarily targeted at mobile devices and information appliances in the consumer electronics market, MeeGo is designed to act as an operating system for hardware platforms such as netbooks, entry-level desktops, nettops, tablet...

-Harmattan.

Use

WebKit is used as the rendering engine within Safari
Safari (web browser)
Safari is a web browser developed by Apple Inc. and included with the Mac OS X and iOS operating systems. First released as a public beta on January 7, 2003 on the company's Mac OS X operating system, it became Apple's default browser beginning with Mac OS X v10.3 "Panther". Safari is also the...

 on Windows, Mac OS X and iOS. Other applications on Mac OS X make use of WebKit, such as Apple's e-mail client Mail
Mail (application)
Mail is an email program included with Apple Inc.'s Mac OS X operating system. Originally developed by NeXT as NeXTMail, a part of their NeXTSTEP operating system, it was adapted, following Apple's acquisition of NeXT, to become OS X's Mail application.Mail uses the SMTP, POP3, and IMAP protocols,...

 and the 2008 version of Microsoft's Entourage
Microsoft Entourage
Microsoft Entourage was an e-mail client and personal information manager developed by Microsoft for Mac OS 8.5 and higher. Microsoft first released Entourage in October 2000 as part of the Microsoft Office 2001 office suite; Office 98, the previous version of Microsoft Office for Mac OS included...

 personal information manager
Personal information manager
A personal information manager 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 management as a field of study...

, both of which make use of WebKit to render e-mail messages with HTML content.

New web browsers have been built around WebKit such as the S60
S60 (software platform)
The S60 Platform is a software platform for mobile phones that runs on Symbian OS. It was created by Nokia, who made the platform open source and contributed it to the Symbian Foundation. S60 has been used by mobile device manufacturers including Siemens mobile, Lenovo, LG Electronics, Panasonic...

 browser on Symbian
Symbian
Symbian is a mobile operating system and computing platform designed for smartphones and currently maintained by Accenture. The Symbian platform is the successor to Symbian OS and Nokia Series 60; unlike Symbian OS, which needed an additional user interface system, Symbian includes a user...

 mobile phones, Blackberry
BlackBerry OS
BlackBerry OS is a proprietary mobile operating system, developed by Research In Motion for its BlackBerry line of smartphone handheld devices...

 Browser (ver 6.0+), Midori, Shiira
Shiira
Shiira is an open source web browser for the Mac OS X operating system. According to its website, the goal of Shiira was "to create a browser that is better and more useful than Safari". Shiira uses WebKit for rendering and scripting.Shiira Project was led by Makoto Kinoshita. The latest release...

, Chrome
Google Chrome
Google Chrome is a web browser developed by Google that uses the WebKit layout engine. It was first released as a beta version for Microsoft Windows on September 2, 2008, and the public stable release was on December 11, 2008. The name is derived from the graphical user interface frame, or...

 browser, Uzbl
Uzbl
Uzbl is a free and open source minimalist web browser designed for simplicity and adherence to the Unix philosophy. Development started in early 2009 and is still considered in alpha software by the developers. The core component of uzbl is developed in C but other languages are also used, most...

, Maxthon
Maxthon
Maxthon is a free web browser for Microsoft Windows. The latest release, Maxthon 3, supports both the Trident and the WebKit rendering engines....

 3, xxxterm
Xxxterm
xxxterm is an open source web browser developed with a goal to become a lightweight yet secure replacement for full featured browsers like Firefox...

, and the Android Web browser. KDE
KDE
KDE is an international free software community producing an integrated set of cross-platform applications designed to run on Linux, FreeBSD, Microsoft Windows, Solaris and Mac OS X systems...

 Projects Rekonq
Rekonq
rekonq is a lightweight, QtWebKit-based web browser developed inside the free software project KDE. It is the default web browser in Kubuntu 10.10 and Chakra GNU/Linux.rekonq has been officially included into KDE Extragear the 2010-05-25...

 Web Browser and Plasma
Plasma (KDE)
Plasma Workspaces is the umbrella term for all graphical environments provided by KDE.Three Plasma sub-projects are currently being developed: Plasma Desktop for traditional desktop PCs and notebooks, Plasma Netbook for netbooks, and Plasma Active for Tablet PCs, Nokia N900 style smartphones and...

 Workspaces also use it as the native web rendering engine. WebKit has been adopted as the rendering engine in OmniWeb
OmniWeb
OmniWeb is a proprietary Internet web browser developed and marketed by The Omni Group. It is available exclusively for Apple Inc.'s Mac OS X operating system...

, iCab
ICab
iCab is a web browser for the Macintosh by Alexander Clauss, derived from Crystal Atari Browser for Atari TOS compatible computers. It is the most recently actively developed browser for 68k-based Macintoshes that features tabbed browsing and one of a very few browsers that was still updated in...

 and Epiphany replacing their original rendering engines. Epiphany 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. HP's Palm WebOS uses WebKit as the basis of its application runtime. The latest interface update for Valve Corporation
Valve Corporation
Valve Corporation is an American video game development and digital distribution company based in Bellevue, Washington, United States...

's Steam employs WebKit to render its interface and built-in browser. WebKit is used to render HTML and run JavaScript in the Adobe Integrated Runtime
Adobe Integrated Runtime
Adobe Integrated Runtime, also known as Adobe AIR, is a cross-platform runtime environment developed by Adobe Systems for building Rich Internet Applications using Adobe Flash, Adobe Flex, HTML, and Ajax, that can be run as desktop applications or on mobile devices...

 application platform. In Adobe Creative Suite
Adobe Creative Suite
Adobe Creative Suite is a collection of graphic design, video editing, and web development applications made by Adobe Systems. The collection consists of Adobe's applications , that are based on various technologies...

 CS5, WebKit is used to render some parts of the user interface.
As of the first half of 2010, analyst estimates place the cumulative number of mobile handsets shipped with a WebKit-based browser at 350 million. WebKit will continue to dominate the mobile industry as the market penetration of smartphones, the engine's primary contributors, increases. The introduction of tablets will also be a contributing factor, since many tablets have the Android or Apple iOS operating system (iPad, iPad 2) installed. In 2011, from January to August, the market share of Android OS alone increased from 15% to 20%. Combining the increase of smartphone and tablet sales, coupled with the increasing market share of Chrome, WebKit could become the dominant web browser engine in 2012. Consider, for example, that for the period of January to September 2011, the market share of Google's Chrome
Google Chrome
Google Chrome is a web browser developed by Google that uses the WebKit layout engine. It was first released as a beta version for Microsoft Windows on September 2, 2008, and the public stable release was on December 11, 2008. The name is derived from the graphical user interface frame, or...

 browser went from 15% to 23.5%, and Safari maintained a 5-6% share while usage of both Internet Explorer and Mozilla decreased significantly. If this growth continues, total usage of WebKit (Chrome, Safari, and smartphones/tablets) will surpass 50% by the end of 2012.

Ports

The week after Hyatt's announcement of 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. Now named Web Browser for S60
Web Browser for S60
Web Browser for S60 or the S60 OSS Browser, is the default web browser for the S60 mobile phone platform. It is the default browser for many old phones running on the Symbian mobile operating system and all new phones running on Symbian. It was developed by Nokia...

, it is used on Nokia, Samsung, LG, and other Symbian S60 mobile phones. Apple has also ported WebKit to the iOS to run on the iPhone
IPhone
The iPhone is a line of Internet and multimedia-enabled smartphones marketed by Apple Inc. The first iPhone was unveiled by Steve Jobs, then CEO of Apple, on January 9, 2007, and released on June 29, 2007...

 and iPod Touch
IPod Touch
The iPod Touch is a portable media player, personal digital assistant, handheld game console, and Wi-Fi mobile device designed and marketed by Apple Inc. The iPod Touch adds the multi-touch graphical user interface to the iPod line...

, where it is used to render content within the device's web browser and e-mail software. The Android mobile phone platform uses WebKit as the basis of its web browser and the Palm Pre
Palm Pre
The Palm Pre is a multimedia smartphone 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...

, announced January 2009, has an interface based on WebKit. The Amazon Kindle
Amazon Kindle
The Amazon Kindle is an e-book reader developed by Amazon.com subsidiary Lab126 which uses wireless connectivity to enable users to shop for, download, browse, and read e-books, newspapers, magazines, blogs, and other digital media...

 3 includes an experimental WebKit based browser.

In June 2007, Apple announced that WebKit had been ported to Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

 Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 as part of Safari. There are also ongoing ports for the open source operating systems Syllable
Syllable (operating system)
Syllable Desktop is a free and open source operating system for Pentium and compatible processors. Its purpose is to create an easy-to-use desktop operating system for the home and small office user...

, Haiku
Haiku (operating system)
Haiku is a free and open source operating system compatible with BeOS. Its development began in 2001, and the operating system became self-hosting in 2008, with the first alpha release in September 2009, the second in May 2010 and the third in June 2011....

 and AROS
AROS Research Operating System
AROS Research Operating System is a free and open source multi media centric implementation of the AmigaOS 3.1 APIs. Designed to be portable and flexible, ports are currently available for x86-based and PowerPC-based PCs in native and hosted flavors, with other architectures in development...

.

WebKit has also been ported to a number of toolkits that support multiple platforms, such as the GTK+
GTK+
GTK+ is a cross-platform widget toolkit for creating graphical user interfaces. It is licensed under the terms of the GNU LGPL, allowing both free and proprietary software to use it. It is one of the most popular toolkits for the X Window System, along with Qt.The name GTK+ originates from GTK;...

 toolkit, the Qt framework, the Adobe Integrated Runtime
Adobe Integrated Runtime
Adobe Integrated Runtime, also known as Adobe AIR, is a cross-platform runtime environment developed by Adobe Systems for building Rich Internet Applications using Adobe Flash, Adobe Flex, HTML, and Ajax, that can be run as desktop applications or on mobile devices...

, the EFL
Enlightenment Foundation Libraries
The Enlightenment Foundation Libraries, or EFL, is a set of open source graphical software libraries that grew out of the Enlightenment window manager project and is developed by Enlightenment.org with some sponsorship from Samsung, Profusion and Free.fr...

 and the Clutter toolkit,. Qt Software (owned by Nokia
Nokia
Nokia Corporation is a Finnish multinational communications corporation that is headquartered in Keilaniemi, Espoo, a city neighbouring Finland's capital Helsinki...

) includes the Qt port in the Qt 4.4 release. The Qt port of WebKit is also available to be used in Konqueror
Konqueror
Not to be confused with the Conqueror web browser.Konqueror is a web browser and file manager that provides file-viewer functionality for file systems such as local files, files on a remote ftp server and files in a disk image. It is a core part of the KDE desktop environment...

 in KDE 4.1. The Iris Browser
Iris Browser
Iris Browser is a web browser for Windows Mobile smartphones and personal digital assistants developed by the Torch Mobile company. The first version of Iris Browser was released in 2008. It is currently one of only three web browsers designed for portable devices which scores a 100/100 on the...

 on Qt also uses WebKit. The Enlightenment Foundation Libraries (EFL) port is under development (by Samsung
Samsung
The Samsung Group is a South Korean multinational conglomerate corporation headquartered in Samsung Town, Seoul, South Korea...

 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
Collabora Ltd. is a private company founded by Robert McQueen, Robert Taylor and Philippe Kalaf based in Cambridge, United Kingdom, with offices in Cambridge, Montreal and Barcelona. Collabora's mission is to make Open Source the de-facto standard in the industry. It does this by providing...

 and sponsored by Bosch
Robert Bosch GmbH
Robert Bosch GmbH is a multinational engineering and electronics company headquartered in Gerlingen, near Stuttgart, Germany. It is the world's largest supplier of automotive components...

.

There is also a project synchronized with WebKit (sponsored by Pleyo) called Origyn Web Browser
Origyn Web Browser
Origyn Web Browser is a web browser that is synchronized with WebKit and sponsored by web enabler Pleyo. OWB provides a meta-port to an abstract platform with the aim of making porting to embedded or lightweight systems quicker and easier...

, which provides 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 boxes, PMP and it has been ported into AmigaOS
AmigaOS
AmigaOS is the default native operating system of the Amiga personal computer. It was developed first by Commodore International, and initially introduced in 1985 with the Amiga 1000...

, AROS
Aros
Aros may refer to:*Aros , a river in J. R. R. Tolkien's Middle-earth legendarium*AROS Research Operating System, a free software implementation of AmigaOS* Aros, the original Viking name of Aarhus, the second largest city in Denmark...

 and MorphOS
MorphOS
MorphOS is an Amiga-compatible computer operating system. It is a mixed proprietary and open source OS produced for the Pegasos PowerPC processor based computer, PowerUP accelerator equipped Amiga computers, and a series of Freescale development boards that use the Genesi firmware, including the...

. MorphOS version 1.7 is the first version of OWB
Origyn Web Browser
Origyn Web Browser is a web browser that is synchronized with WebKit and sponsored by web enabler Pleyo. OWB provides a meta-port to an abstract platform with the aim of making porting to embedded or lightweight systems quicker and easier...

 supporting HTML5 media tags.

WebCore

WebCore is a layout, rendering, and Document Object Model
Document Object Model
The Document Object Model is a cross-platform and language-independent convention for representing and interacting with objects in HTML, XHTML and XML documents. Aspects of the DOM may be addressed and manipulated within the syntax of the programming language in use...

 (DOM) library for HTML and SVG, developed by the WebKit project. Its complete source code is licensed under the LGPL
GNU Lesser General Public License
The GNU Lesser General Public License or LGPL is a free software license published by the Free Software Foundation . It was designed as a compromise between the strong-copyleft GNU General Public License or GPL and permissive licenses such as the BSD licenses and the MIT License...

. The WebKit framework wraps WebCore and JavaScriptCore, providing an Objective-C application programming interface
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 to the C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

-based WebCore rendering engine and JavaScriptCore script engine, allowing it to be easily referenced by applications based on the Cocoa API; later versions also include a cross-platform
Cross-platform
In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms...

 C++ platform abstraction, and various ports provide additional APIs.

WebKit passes the Acid2
Acid2
Acid2 is a test page published and promoted by the Web Standards Project to expose web page rendering flaws in web browsers and other applications that render HTML. Named after the acid test for gold, it was developed in the spirit of Acid1, a relatively narrow test of compliance with the Cascading...

 and Acid3
Acid3
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 and JavaScript....

 tests, with pixel-perfect rendering and no timing or smoothness issues on reference hardware.

JavaScriptCore

JavaScriptCore is a framework that provides a JavaScript engine
JavaScript engine
A JavaScript engine is specialized computer software which interprets and executes JavaScript . Although there are several uses for a JavaScript engine, it is most commonly used in web browsers.-History:...

 for WebKit implementations, and provides this type of scripting in other contexts within Mac OS X. JavaScriptCore is originally derived from KDE's JavaScript engine (KJS) library
Library (computer science)
In computer science, a library is a collection of resources used to develop software. These may include pre-written code and subroutines, classes, values or type specifications....

 (which is part of the KDE project) and the PCRE regular expression
Regular expression
In computing, a regular expression provides a concise and flexible means for "matching" strings of text, such as particular characters, words, or patterns of characters. Abbreviations for "regular expression" include "regex" and "regexp"...

 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
Bytecode, also known as p-code , is a term which has been used to denote various forms of instruction sets designed for efficient execution by a software interpreter as well as being suitable for further compilation into machine code...

 interpreter
Interpreter (computing)
In computer science, an interpreter normally means a computer program that executes, i.e. performs, instructions written in a programming language...

. The project evolved into SquirrelFish Extreme (abbreviated SFX, marketed as Nitro), announced on September 18, 2008, which compiles
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

 JavaScript into native machine code
Machine code
Machine code or machine language is a system of impartible instructions executed directly by a computer's central processing unit. Each instruction performs a very specific task, typically either an operation on a unit of data Machine code or machine language is a system of impartible instructions...

, eliminating the need for a bytecode interpreter and thus speeding up JavaScript execution.

Drosera

Drosera is a JavaScript debugger
Debugger
A debugger or debugging tool is a computer program that is used to test and debug other programs . The code to be examined might alternatively be running on an instruction set simulator , a technique that allows great power in its ability to halt when specific conditions are encountered but which...

 that was included with the nightly builds of WebKit. It was named after Drosera, a genus of carnivorous plant
Carnivorous plant
Carnivorous plants are plants that derive some or most of their nutrients from trapping and consuming animals or protozoans, typically insects and other arthropods. Carnivorous plants appear adapted to grow in places where the soil is thin or poor in nutrients, especially nitrogen, such as acidic...

s. Drosera has been replaced by the inclusion of debugging functionality in the Web Inspector.

SunSpider

SunSpider is a benchmark suite that aims to measure JavaScript performance on tasks relevant to the current and near future use of JavaScript in the real world, such as encryption and text manipulation. The suite further attempts to be balanced and statistically sound. Version 0.9 was released by the WebKit team in December 2007. It was well-received, and other browser developers also use it to compare the JavaScript performance of different browsers. Version 0.9.1 was released in April 2010.

See also

  • Comparison of layout engines
    Comparison of layout engines
    The following tables compare general and technical information for a number of web browser engines. Please see the individual products' articles for further information. This article is not all-inclusive or necessarily up to date...

  • List of KHTML-based browsers
  • List of WebKit-based browsers
  • List of graphical layout engines

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK