fbpx
Wikipedia

WebKit

WebKit is a browser engine developed by Apple and primarily used in its Safari web browser, as well as all web browsers on iOS and iPadOS. WebKit is also used by the PlayStation consoles beginning from the PS3, the Tizen mobile operating systems, the Amazon Kindle e-book reader, Nintendo consoles beginning from the 3DS Internet Browser, and the discontinued BlackBerry Browser. WebKit's C++ application programming interface (API) 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
Original author(s)Apple Inc.[1][2]
Developer(s)Apple Inc., Adobe Systems, Sony, KDE, Igalia, and others
Initial releaseNovember 4, 1998; 24 years ago (1998-11-04) (KHTML released)
June 7, 2005; 18 years ago (2005-06-07) (WebKit sourced)
Preview release
Nightly[3]
Repositoryhttps://github.com/WebKit/WebKit
Written inC++[4]
Operating systemmacOS, iOS, Linux,[5] Microsoft Windows[6][7]
TypeBrowser engine
LicenseLGPLv2.1 (rendering engine, JavaScript engine), BSD 2-Clause (additional contributions from Apple)[8]
Websitewebkit.org

WebKit started as a fork of the KHTML and KJS libraries from KDE,[1][9] and has since been further developed by KDE contributors, Apple, Google, Nokia,[9] Bitstream, BlackBerry, Sony, Igalia, and others.[10] WebKit supports macOS, Windows, Linux, and various other Unix-like operating systems.[11] 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, under the name Blink.[12][13]

WebKit is available under the BSD 2-Clause license[14][8] with the exception of the WebCore and JavaScriptCore components, which are available under the GNU Lesser General Public License. As of March 7, 2013, WebKit is a trademark of Apple, registered with the U.S. Patent and Trademark Office.[15]

Origins Edit

The code that would become WebKit began in 1998 as the KDE HTML (KHTML) layout engine and KDE JavaScript (KJS) engine. The WebKit project was started within Apple by Lisa Melton on June 25, 2001,[16][17] as a fork of KHTML and KJS. Melton explained in an e-mail to KDE developers[1] that KHTML and 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 was ported to macOS with the help of an adapter library and renamed WebCore and JavaScriptCore.[1] JavaScriptCore was announced in an e-mail to a KDE mailing list in June 2002, alongside the first release of Apple's changes.[18]

According to Apple, some changes which called for different development tactics involved macOS-specific features that are absent in KDE's KHTML, such as Objective-C, KWQ (pronounced "quack") an implementation of the subset of Qt required to make KHTML work on macOS written in Objective C++, and macOS calls.[19]

Split development Edit

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.[20] 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".[21] They claimed 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 developers to integrate back into KHTML.[22] 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.[23]

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.[24] 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 rendering test.[25]

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.[26]

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.[27]

In July 2007, Ars Technica reported that the KDE team would move from KHTML to WebKit.[28] 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.[29]

Open-sourcing Edit

On June 7, 2005, Safari developer Dave Hyatt announced on his weblog that Apple was open-sourcing WebKit (formerly, only WebCore and JavaScriptCore were open source) and opening up access to WebKit's revision control tree and the issue tracker.[26]

In mid-December 2005, support for Scalable Vector Graphics (SVG) was merged into the standard build.[30]

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.[8]

Further development Edit

Beginning in early 2007, the development team began to implement Cascading Style Sheets (CSS) extensions, including animation, transitions and both 2D and 3D transforms;[31] such extensions were released as working drafts to the World Wide Web Consortium (W3C) in 2009 for standardization.[32]

In November 2007, the project announced that it had added support for media features of the HTML5 draft specification, allowing embedded video to be natively rendered and script-controlled in WebKit.[33]

On June 2, 2008, the WebKit project announced they rewrote JavaScriptCore as "SquirrelFish", a bytecode interpreter.[34][35] The project evolved into SquirrelFish Extreme (abbreviated SFX), announced on September 18, 2008, which compiles JavaScript into native machine code, eliminating the need for a bytecode interpreter and thus speeding up JavaScript execution.[36] Initially, the only supported processor architecture for SFX was the x86, but at the end of January 2009, SFX was enabled for macOS on x86-64 as it passes all tests on that platform.[37]

WebKit2 Edit

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.[38]

The WebKit2 targets were set to Linux, macOS, Windows, GTK, and MeeGo-Harmattan.[39][40] Safari for macOS switched to the new API with version 5.1.[41] Safari for iOS switched to WebKit2 with iOS 8.[42]

The original WebKit API has been renamed WebKitLegacy API.[43] WebKit2 API has been renamed just plain WebKit API.[44]

Use Edit

 
Usage share of web browsers according to StatCounter

WebKit is used as the rendering engine within Safari and was formerly used by Google's Chrome web browser on Windows, macOS, and Android (before version 4.4 KitKat). Chrome used only WebCore, and included its own JavaScript engine named V8 and a multiprocess system.[45] Chrome for iOS continues to use WebKit because Apple requires that web browsers on that platform must do so.[46] Other applications on macOS and iOS make use of WebKit, such as Apple's e-mail client Mail, App Store, and the 2008 version of Microsoft's Entourage personal information manager, both of which make use of WebKit to render HTML content.

Installed base Edit

New web browsers have been built around WebKit such as the S60 browser[47] on Symbian mobile phones, BlackBerry Browser (ver 6.0+), Midori, Chrome browser,[48][49] the Android Web browser before version 4.4 KitKat, and the browser used in PlayStation 3 system software from version 4.10.[50] KDE's Rekonq web browser and Plasma Workspaces also use it as the native web rendering engine. WebKit has been adopted as the rendering engine in OmniWeb, iCab 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.[51] webOS uses WebKit as the basis of its application runtime.[52] WebKit is used to render HTML and run JavaScript in the Adobe Integrated Runtime application platform. In Adobe Creative Suite 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.[53] By mid-April 2015, WebKit browser market share was 50.3%.[54]

Ports Edit

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, it was used on Nokia, Samsung, LG, and other Symbian S60 mobile phones. Apple has also ported WebKit to iOS to run on the iPhone, iPod Touch, and iPad, where it is used to render content in the device's web browser and e-mail software.[55] The Android mobile phone platform used WebKit (and later versions its Blink fork) as the basis of its web browser[56][57][58] and the Palm Pre, announced January 2009, has an interface based on WebKit.[59] The Amazon Kindle 3 includes an experimental WebKit based browser.[60]

In June 2007, Apple announced that WebKit had been ported to Microsoft Windows as part of Safari. Although Safari for Windows was silently discontinued[61] by the company, WebKit's ports to Microsoft's operating system are still actively maintained.[62][63] The Windows port uses Apple's proprietary libraries to function and is used for iCloud[64] and iTunes[65] for Windows, whereas the "WinCairo" port is a fully open-source and redistributable port.[66][67]

 
GNOME Web is a major web browser on Linux that uses WebKitGTK.

WebKit has also been ported to several toolkits that support multiple platforms, such as the GTK toolkit for Linux, under the name WebKitGTK which is used by Eolie,[68] GNOME Web,[69][70] Adobe Integrated Runtime, Enlightenment Foundation Libraries (EFL), and the Clutter toolkit.[71] Qt Software included a WebKit port in the Qt 4.4 release as a module called QtWebKit[72] (since superseded by Qt WebEngine, which uses Blink instead). The Iris Browser on Qt also used WebKit. The Enlightenment Foundation Libraries (EFL) port – EWebKit – was developed (by Samsung and ProFusion[73]) focusing the embedded and mobile systems, for use as stand alone browser, widgets-gadgets, rich text viewer and composer.[citation needed] The Clutter port is developed by Collabora and sponsored by Robert Bosch GmbH.

There was also a project synchronized with WebKit (sponsored by Pleyo)[74] 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.[75] This port is used for embedded devices such as set-top boxes, PMP and it has been ported into AmigaOS,[76][77] AROS[78] and MorphOS. MorphOS version 1.7 is the first version of Origyn Web Browser (OWB) supporting HTML5 media tags.[79][80]

Web Platform for Embedded Edit

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 Edit

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'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 would also switch to Blink.[45] Following the announcement, WebKit developers began discussions on removing Chrome-specific code from the engine to streamline its codebase.[81] WebKit no longer has any Chrome specific code (e.g., buildsystem, V8 JavaScript engine hooks, platform code, etc.).

Components Edit

WebCore Edit

WebCore is a layout, rendering, and Document Object Model (DOM) library for HTML and Scalable Vector Graphics (SVG), developed by the WebKit project. Its full source code is licensed under the GNU Lesser General Public License (LGPL). The WebKit framework wraps WebCore and JavaScriptCore, providing an Objective-C application programming interface to the C++-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 C++ platform abstraction, and various ports provide more APIs.[citation needed]

WebKit passes the Acid2 and Acid3 tests, with pixel-perfect rendering and no timing or smoothness issues on reference hardware.[82]

JavaScriptCore Edit

JavaScriptCore is a framework that provides a JavaScript engine for WebKit implementations, and provides this type of scripting in other contexts within macOS.[18][83] JavaScriptCore is originally derived from KDE's JavaScript engine (KJS) library (which is part of the KDE project) and the PCRE regular expression library. Since forking from KJS and PCRE, JavaScriptCore has been improved with many new features and greatly improved performance.[84]

On June 2, 2008, the WebKit project announced they rewrote JavaScriptCore as "SquirrelFish", a bytecode interpreter.[34][35] The project evolved into SquirrelFish Extreme (abbreviated SFX, marketed as Nitro), announced on September 18, 2008 further speeding up JavaScript execution.[36]

An optimizing just-in-time (JIT) compiler named FTL was announced on May 13, 2014.[85] It uses LLVM to generate optimized machine code. "FTL" stands for "Fourth-Tier-LLVM", and unofficially for faster-than-light, alluding to its speed.[86] As of February 15, 2016, the backend of FTL JIT is replaced by "Bare Bones Backend" (or B3 for short).[87]

See also Edit

References Edit

  1. ^ a b c d "'(fwd) Greetings from the Safari team at Apple Computer' – MARC". Lists.kde.org. January 7, 2003. from the original on February 9, 2015. Retrieved May 2, 2017.
  2. ^ "Safari is released to the world". Donmelton.com. Retrieved January 13, 2013.
  3. ^ "WebKit Nightly Builds". WebKit.org. from the original on April 3, 2016. Retrieved May 27, 2014.
  4. ^ "Code Style Guidelines". WebKit.org. Apple, Inc. November 7, 2015. from the original on May 1, 2017. Retrieved May 2, 2017.
  5. ^ "WebKit Download". March 30, 2016. Retrieved August 14, 2018.
  6. ^ "WebKit on Windows | WebKit". WebKit.org. Apple, Inc. November 7, 2015. from the original on August 8, 2021. Retrieved August 8, 2021.
  7. ^ "BuildingCairoOnWindows – WebKit". trac.webkit.org. Apple, Inc. June 8, 2021. from the original on August 8, 2021. Retrieved August 8, 2021.
  8. ^ a b c Licensing WebKit | WebKit
  9. ^ a b "The WebKit Open Source Project". from the original on April 10, 2012. Retrieved April 7, 2012.
  10. ^ Stachowiak, Maciej (November 9, 2008). "Companies and Organizations that have contributed to WebKit". WebKit Wiki. Retrieved November 17, 2008.
  11. ^ "The WebKit Open Source Project – Getting the Code". Webkit.org. from the original on March 6, 2016. Retrieved December 27, 2010.
  12. ^ Barth, Adam (April 3, 2013). "Chromium Blog: Blink: A rendering engine for the Chromium project". Blog.chromium.org. from the original on April 4, 2013. Retrieved June 14, 2013.
  13. ^ Lawson, Bruce. "Bruce Lawson's personal site: Hello Blink". Brucelawson.co.uk. Retrieved June 14, 2013.
  14. ^ . Apple. Archived from the original on March 11, 2009. Retrieved March 5, 2009.
  15. ^ "Apple's "WebKit" is now a Registered Trademark in the US". from the original on March 9, 2013. Retrieved March 7, 2013.
  16. ^ Melton, Lisa (August 25, 2011). "Attention Internets! WebKit is not 10 years old today. That happened on June 25. I know the date because that's when I started the project". Twitter. Retrieved October 13, 2011.
  17. ^ Henry, Charlotte (June 25, 2021). "Happy 20th Birthday, Safari and Webkit!". The Mac Observer. Retrieved August 12, 2023.
  18. ^ a b Stachowiak, Maciej (June 13, 2002). . kde-darwin (Mailing list). Archived from the original on March 10, 2007. Retrieved August 21, 2008.
  19. ^ . kdedevelopers.org. April 30, 2005. Archived from the original on March 3, 2006. Retrieved February 20, 2010.
  20. ^ . kdedevelopers.org. Archived from the original on May 29, 2010. Retrieved February 20, 2010.
  21. ^ "The bitter failure named 'safari and khtml'". from the original on April 15, 2015.
  22. ^ "Open-source divorce for Apple's Safari?". from the original on July 7, 2009.
  23. ^ . Archived from the original on May 27, 2016. Retrieved May 14, 2016.
  24. ^ . Archived from the original on February 10, 2009.
  25. ^ "Konqueror now passes Acid2". from the original on June 21, 2017.
  26. ^ a b Molkentin, Daniel (June 7, 2005). "Apple Opens WebKit CVS and Bug Database". KDE News. from the original on July 15, 2009. Retrieved January 16, 2007.
  27. ^ "Ars at WWDC: Interview with Lars Knoll, creator of KHTML". June 12, 2007. from the original on May 31, 2008.
  28. ^ Unrau, Troy (July 23, 2007). "The unforking of KDE's KHTML and WebKit". Ars Technica. from the original on September 30, 2007. Retrieved July 30, 2007.
  29. ^ "KDE Development Platform 4.5.0 gains performance, stability, new high-speed cache and support for WebKit". from the original on March 14, 2011.
  30. ^ "Next Generation KDE Technologies Ported to WebCore". July 10, 2005. from the original on October 13, 2007.
  31. ^ "CSS Transforms". Webkit. October 26, 2007. from the original on January 13, 2017.
  32. ^ "CSS3 Animations". from the original on February 21, 2009.
  33. ^ Koivisto, Antti (November 12, 2007). "HTML5 Media Support". Surfin' Safari blog. from the original on January 13, 2017.
  34. ^ a b "Announcing SquirrelFish". June 2, 2008. from the original on January 27, 2017.
  35. ^ a b "SquirrelFish project".
  36. ^ a b "Introducing SquirrelFish Extreme". September 18, 2008. from the original on November 26, 2016.
  37. ^ "Changeset 40439 – WebKit". Trac.webkit.org. January 30, 2009. Retrieved December 27, 2010.
  38. ^ "WebKit2 wiki". Webkit.org. Retrieved August 3, 2012.
  39. ^ "Announcing WebKit2". Webkit.org. April 8, 2010. from the original on April 23, 2011. Retrieved December 27, 2010.
  40. ^ . Nokia Corporation. Archived from the original on June 24, 2011. Retrieved June 21, 2011.
  41. ^ "Source code repository for public parts of Safari 5.1". The WebKit Open Source Project. Retrieved July 20, 2011.
  42. ^ . Archived from the original on December 13, 2014. Retrieved December 13, 2014.
  43. ^ "132399 – Move the legacy WebKit API into WebKitLegacy.framework and move it inside WebKit.framework". Webkit.org.
  44. ^ "Renaming Directories and Project Files to Match Framework Names". Webkit.org. July 10, 2017.
  45. ^ "App Store Review Guidelines".
  46. ^ . Nokia. Archived from the original on December 6, 2005.
  47. ^ "Google Chrome, Google's Browser Project". from the original on September 2, 2008.
  48. ^ "Comic describing the Google Chrome Project". from the original on September 3, 2008.
  49. ^ "PS3、ファームウェアv4.10からWebKitへ。 - あまたの何かしら。". D.hatena.ne.jp. February 8, 2012. from the original on October 14, 2012. Retrieved January 13, 2013.
  50. ^ "Epiphany Mailing list – Announcement: The Future of Epiphany". from the original on February 14, 2012.
  51. ^ Chen, Brian X. "HP Launches WebOS-Powered Tablet, Phones | Gadget Lab". Wired. from the original on April 10, 2014. Retrieved January 13, 2013.
  52. ^ "100 Million Club (H1 2010 update)". VisionMobile. from the original on March 1, 2011. Retrieved March 1, 2011.
  53. ^ "StatCounter". StatCounter. Archived from the original on May 26, 2012. Retrieved April 14, 2015.
  54. ^ Stachowiak, Maciej (January 10, 2007). "The Obligatory iPhone Post". Surfin' Safari weblog. from the original on February 19, 2008. Retrieved January 24, 2008.
  55. ^ . Archived from the original on January 13, 2017. Retrieved January 12, 2017.
  56. ^ "WebKit in the News". WebKit. November 13, 2007. Retrieved November 17, 2018.
  57. ^ "The Amazing Rise of WebKit Mobile". gigaom.com. November 13, 2007. Retrieved November 17, 2018.
  58. ^ "Palm Pre in-depth impressions, video, and huge hands-on gallery". from the original on January 13, 2017.
  59. ^ Topolsky, Joshua. "New Amazon Kindle announced: $139 WiFi-only version and $189 3G model available August 27th in the US and UK". from the original on January 13, 2017.
  60. ^ Lex Friedman (July 26, 2012). "Safari 6 available for Mountain Lion and Lion, but not Windows". macworld.com. International Data Group. from the original on August 8, 2021. Retrieved August 8, 2021.
  61. ^ "Buildbot: builder Apple-Win-10-Debug-Build". build.webkit.org. Apple, Inc. Archived from the original on August 8, 2021. Retrieved August 8, 2021.
  62. ^ "Buildbot: builder WinCairo-64-bit-WKL-Release-Build". build.webkit.org. Apple, Inc. Archived from the original on August 8, 2021. Retrieved August 8, 2021.
  63. ^ "About the security content of iCloud for Windows 12.3 - Apple Support". support.apple.com. Apple, Inc. from the original on August 8, 2021. Retrieved August 8, 2021.
  64. ^ "About the security content of iTunes 12.11.3 for Windows - Apple Support". support.apple.com. Apple, Inc. from the original on August 8, 2021. Retrieved August 8, 2021.
  65. ^ "BuildingCairoOnWindows – WebKit". trac.webkit.org. Apple, Inc. June 8, 2021. from the original on August 8, 2021. Retrieved August 8, 2021.
  66. ^ "GitHub - WebKitForWindows/WebKitRequirements: Build scripts for the requirements of the WinCairo port of WebKit". github.com. Apple, Inc. from the original on August 8, 2021. Retrieved August 8, 2021.
  67. ^ "World / Eolie".
  68. ^ "WebKitGTK+ project website". from the original on January 30, 2017.
  69. ^ "Alp Toker – WebKit/Gtk+ is coming". June 12, 2007. from the original on March 25, 2008.
  70. ^ "WebKitClutter project website".
  71. ^ . Archived from the original on August 3, 2009.
  72. ^ "ProFusion | Home". Profusion.mobi. Retrieved January 13, 2013.
  73. ^ "pleyo". from the original on March 25, 2008.
  74. ^ "See OWB forge". from the original on May 9, 2008.
  75. ^ "AmigaOS OWB official page".
  76. ^ . amigaweb.net. Archived from the original on May 2, 2008. Retrieved June 2, 2010.
  77. ^ . Archived from the original on March 4, 2009.
  78. ^ "Origyn Web Browser for MorphOS". Fabian Coeurjoly. from the original on March 17, 2010. Retrieved January 4, 2010.
  79. ^ Holwerda, Thom (March 8, 2010). "Origyn Web Browser 1.7 Supports HTML5 Media, More". OSNews. from the original on March 12, 2010. Retrieved March 8, 2010.
  80. ^ "WebKit developers planning Chromium extraction". The H. from the original on April 7, 2013. Retrieved April 9, 2013.
  81. ^ Stachowiak, Maciej (September 25, 2008). "Full Pass Of Acid3". Surfin' Safari – The WebKit Blog. from the original on September 29, 2008. Retrieved September 29, 2008.
  82. ^ "The WebKit Open Source Project – JavaScript". from the original on August 14, 2015.
  83. ^ "The Great Browser JavaScript Showdown". December 19, 2007. from the original on September 6, 2008.
  84. ^ "Introducing the WebKit FTL JIT". Webkit. May 13, 2014. from the original on January 19, 2017.
  85. ^ "Apple integrates LLVM compiler to boost WebKit JavaScript performance". May 16, 2014. from the original on July 8, 2017.
  86. ^ "Introducing the B3 JIT Compiler". February 15, 2016. from the original on May 3, 2017.

External links Edit

  • Official website  
  • Official website for WebKitGTK
  • SunSpider 1.0 JavaScript Benchmark December 15, 2018, at the Wayback Machine

webkit, browser, engine, developed, apple, primarily, used, safari, browser, well, browsers, ipados, also, used, playstation, consoles, beginning, from, tizen, mobile, operating, systems, amazon, kindle, book, reader, nintendo, consoles, beginning, from, inter. WebKit is a browser engine developed by Apple and primarily used in its Safari web browser as well as all web browsers on iOS and iPadOS WebKit is also used by the PlayStation consoles beginning from the PS3 the Tizen mobile operating systems the Amazon Kindle e book reader Nintendo consoles beginning from the 3DS Internet Browser and the discontinued BlackBerry Browser WebKit s C application programming interface API 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 WebKitOriginal author s Apple Inc 1 2 Developer s Apple Inc Adobe Systems Sony KDE Igalia and othersInitial releaseNovember 4 1998 24 years ago 1998 11 04 KHTML released June 7 2005 18 years ago 2005 06 07 WebKit sourced Preview releaseNightly 3 Repositoryhttps github com WebKit WebKitWritten inC 4 Operating systemmacOS iOS Linux 5 Microsoft Windows 6 7 TypeBrowser engineLicenseLGPLv2 1 rendering engine JavaScript engine BSD 2 Clause additional contributions from Apple 8 Websitewebkit wbr orgWebKit started as a fork of the KHTML and KJS libraries from KDE 1 9 and has since been further developed by KDE contributors Apple Google Nokia 9 Bitstream BlackBerry Sony Igalia and others 10 WebKit supports macOS Windows Linux and various other Unix like operating systems 11 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 under the name Blink 12 13 WebKit is available under the BSD 2 Clause license 14 8 with the exception of the WebCore and JavaScriptCore components which are available under the GNU Lesser General Public License As of March 7 2013 WebKit is a trademark of Apple registered with the U S Patent and Trademark Office 15 Contents 1 Origins 1 1 Split development 1 2 Open sourcing 1 3 Further development 1 4 WebKit2 2 Use 2 1 Installed base 2 2 Ports 2 2 1 Web Platform for Embedded 2 3 Forking by Google 3 Components 3 1 WebCore 3 2 JavaScriptCore 4 See also 5 References 6 External linksOrigins EditThe code that would become WebKit began in 1998 as the KDE HTML KHTML layout engine and KDE JavaScript KJS engine The WebKit project was started within Apple by Lisa Melton on June 25 2001 16 17 as a fork of KHTML and KJS Melton explained in an e mail to KDE developers 1 that KHTML and 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 was ported to macOS with the help of an adapter library and renamed WebCore and JavaScriptCore 1 JavaScriptCore was announced in an e mail to a KDE mailing list in June 2002 alongside the first release of Apple s changes 18 According to Apple some changes which called for different development tactics involved macOS specific features that are absent in KDE s KHTML such as Objective C KWQ pronounced quack an implementation of the subset of Qt required to make KHTML work on macOS written in Objective C and macOS calls 19 Split development Edit 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 20 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 21 They claimed 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 developers to integrate back into KHTML 22 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 23 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 24 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 rendering test 25 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 26 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 27 In July 2007 Ars Technica reported that the KDE team would move from KHTML to WebKit 28 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 29 Open sourcing Edit On June 7 2005 Safari developer Dave Hyatt announced on his weblog that Apple was open sourcing WebKit formerly only WebCore and JavaScriptCore were open source and opening up access to WebKit s revision control tree and the issue tracker 26 In mid December 2005 support for Scalable Vector Graphics SVG was merged into the standard build 30 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 8 Further development Edit This section needs to be updated Please help update this article to reflect recent events or newly available information July 2015 Beginning in early 2007 the development team began to implement Cascading Style Sheets CSS extensions including animation transitions and both 2D and 3D transforms 31 such extensions were released as working drafts to the World Wide Web Consortium W3C in 2009 for standardization 32 In November 2007 the project announced that it had added support for media features of the HTML5 draft specification allowing embedded video to be natively rendered and script controlled in WebKit 33 On June 2 2008 the WebKit project announced they rewrote JavaScriptCore as SquirrelFish a bytecode interpreter 34 35 The project evolved into SquirrelFish Extreme abbreviated SFX announced on September 18 2008 which compiles JavaScript into native machine code eliminating the need for a bytecode interpreter and thus speeding up JavaScript execution 36 Initially the only supported processor architecture for SFX was the x86 but at the end of January 2009 SFX was enabled for macOS on x86 64 as it passes all tests on that platform 37 WebKit2 Edit 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 38 The WebKit2 targets were set to Linux macOS Windows GTK and MeeGo Harmattan 39 40 Safari for macOS switched to the new API with version 5 1 41 Safari for iOS switched to WebKit2 with iOS 8 42 The original WebKit API has been renamed WebKitLegacy API 43 WebKit2 API has been renamed just plain WebKit API 44 Use Edit Usage share of web browsers according to StatCounterWebKit is used as the rendering engine within Safari and was formerly used by Google s Chrome web browser on Windows macOS and Android before version 4 4 KitKat Chrome used only WebCore and included its own JavaScript engine named V8 and a multiprocess system 45 Chrome for iOS continues to use WebKit because Apple requires that web browsers on that platform must do so 46 Other applications on macOS and iOS make use of WebKit such as Apple s e mail client Mail App Store and the 2008 version of Microsoft s Entourage personal information manager both of which make use of WebKit to render HTML content Installed base Edit New web browsers have been built around WebKit such as the S60 browser 47 on Symbian mobile phones BlackBerry Browser ver 6 0 Midori Chrome browser 48 49 the Android Web browser before version 4 4 KitKat and the browser used in PlayStation 3 system software from version 4 10 50 KDE s Rekonq web browser and Plasma Workspaces also use it as the native web rendering engine WebKit has been adopted as the rendering engine in OmniWeb iCab 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 51 webOS uses WebKit as the basis of its application runtime 52 WebKit is used to render HTML and run JavaScript in the Adobe Integrated Runtime application platform In Adobe Creative Suite 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 53 By mid April 2015 WebKit browser market share was 50 3 54 Ports Edit 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 it was used on Nokia Samsung LG and other Symbian S60 mobile phones Apple has also ported WebKit to iOS to run on the iPhone iPod Touch and iPad where it is used to render content in the device s web browser and e mail software 55 The Android mobile phone platform used WebKit and later versions its Blink fork as the basis of its web browser 56 57 58 and the Palm Pre announced January 2009 has an interface based on WebKit 59 The Amazon Kindle 3 includes an experimental WebKit based browser 60 In June 2007 Apple announced that WebKit had been ported to Microsoft Windows as part of Safari Although Safari for Windows was silently discontinued 61 by the company WebKit s ports to Microsoft s operating system are still actively maintained 62 63 The Windows port uses Apple s proprietary libraries to function and is used for iCloud 64 and iTunes 65 for Windows whereas the WinCairo port is a fully open source and redistributable port 66 67 GNOME Web is a major web browser on Linux that uses WebKitGTK WebKit has also been ported to several toolkits that support multiple platforms such as the GTK toolkit for Linux under the name WebKitGTK which is used by Eolie 68 GNOME Web 69 70 Adobe Integrated Runtime Enlightenment Foundation Libraries EFL and the Clutter toolkit 71 Qt Software included a WebKit port in the Qt 4 4 release as a module called QtWebKit 72 since superseded by Qt WebEngine which uses Blink instead The Iris Browser on Qt also used WebKit The Enlightenment Foundation Libraries EFL port EWebKit was developed by Samsung and ProFusion 73 focusing the embedded and mobile systems for use as stand alone browser widgets gadgets rich text viewer and composer citation needed The Clutter port is developed by Collabora and sponsored by Robert Bosch GmbH There was also a project synchronized with WebKit sponsored by Pleyo 74 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 75 This port is used for embedded devices such as set top boxes PMP and it has been ported into AmigaOS 76 77 AROS 78 and MorphOS MorphOS version 1 7 is the first version of Origyn Web Browser OWB supporting HTML5 media tags 79 80 Web Platform for Embedded Edit 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 Edit 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 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 would also switch to Blink 45 Following the announcement WebKit developers began discussions on removing Chrome specific code from the engine to streamline its codebase 81 WebKit no longer has any Chrome specific code e g buildsystem V8 JavaScript engine hooks platform code etc Components EditWebCore Edit WebCore is a layout rendering and Document Object Model DOM library for HTML and Scalable Vector Graphics SVG developed by the WebKit project Its full source code is licensed under the GNU Lesser General Public License LGPL The WebKit framework wraps WebCore and JavaScriptCore providing an Objective C application programming interface to the C 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 C platform abstraction and various ports provide more APIs citation needed WebKit passes the Acid2 and Acid3 tests with pixel perfect rendering and no timing or smoothness issues on reference hardware 82 JavaScriptCore Edit JavaScriptCore is a framework that provides a JavaScript engine for WebKit implementations and provides this type of scripting in other contexts within macOS 18 83 JavaScriptCore is originally derived from KDE s JavaScript engine KJS library which is part of the KDE project and the PCRE regular expression library Since forking from KJS and PCRE JavaScriptCore has been improved with many new features and greatly improved performance 84 On June 2 2008 the WebKit project announced they rewrote JavaScriptCore as SquirrelFish a bytecode interpreter 34 35 The project evolved into SquirrelFish Extreme abbreviated SFX marketed as Nitro announced on September 18 2008 further speeding up JavaScript execution 36 An optimizing just in time JIT compiler named FTL was announced on May 13 2014 85 It uses LLVM to generate optimized machine code FTL stands for Fourth Tier LLVM and unofficially for faster than light alluding to its speed 86 As of February 15 2016 the backend of FTL JIT is replaced by Bare Bones Backend or B3 for short 87 See also Edit Free and open source software portalComparison of browser engines List of WebKit based browsersReferences Edit a b c d fwd Greetings from the Safari team at Apple Computer MARC Lists kde org January 7 2003 Archived from the original on February 9 2015 Retrieved May 2 2017 Safari is released to the world Donmelton com Retrieved January 13 2013 WebKit Nightly Builds WebKit org Archived from the original on April 3 2016 Retrieved May 27 2014 Code Style Guidelines WebKit org Apple Inc November 7 2015 Archived from the original on May 1 2017 Retrieved May 2 2017 WebKit Download March 30 2016 Retrieved August 14 2018 WebKit on Windows WebKit WebKit org Apple Inc November 7 2015 Archived from the original on August 8 2021 Retrieved August 8 2021 BuildingCairoOnWindows WebKit trac webkit org Apple Inc June 8 2021 Archived from the original on August 8 2021 Retrieved August 8 2021 a b c Licensing WebKit WebKit a b The WebKit Open Source Project Archived from the original on April 10 2012 Retrieved April 7 2012 Stachowiak Maciej November 9 2008 Companies and Organizations that have contributed to WebKit WebKit Wiki Retrieved November 17 2008 The WebKit Open Source Project Getting the Code Webkit org Archived from the original on March 6 2016 Retrieved December 27 2010 Barth Adam April 3 2013 Chromium Blog Blink A rendering engine for the Chromium project Blog chromium org Archived from the original on April 4 2013 Retrieved June 14 2013 Lawson Bruce Bruce Lawson s personal site Hello Blink Brucelawson co uk Retrieved June 14 2013 Open Source WebKit Apple Archived from the original on March 11 2009 Retrieved March 5 2009 Apple s WebKit is now a Registered Trademark in the US Archived from the original on March 9 2013 Retrieved March 7 2013 Melton Lisa August 25 2011 Attention Internets WebKit is not 10 years old today That happened on June 25 I know the date because that s when I started the project Twitter Retrieved October 13 2011 Henry Charlotte June 25 2021 Happy 20th Birthday Safari and Webkit The Mac Observer Retrieved August 12 2023 a b Stachowiak Maciej June 13 2002 JavaScriptCore Apple s JavaScript framework based on KJS kde darwin Mailing list Archived from the original on March 10 2007 Retrieved August 21 2008 Safari and KHTML again kdedevelopers org April 30 2005 Archived from the original on March 3 2006 Retrieved February 20 2010 So when will KHTML merge all the WebCore changes kdedevelopers org Archived from the original on May 29 2010 Retrieved February 20 2010 The bitter failure named safari and khtml Archived from the original on April 15 2015 Open source divorce for Apple s Safari Archived from the original on July 7 2009 WebCore open source changes Archived from the original on May 27 2016 Retrieved May 14 2016 WebCore KHTML Firefox Know your facts Archived from the original on February 10 2009 Konqueror now passes Acid2 Archived from the original on June 21 2017 a b Molkentin Daniel June 7 2005 Apple Opens WebKit CVS and Bug Database KDE News Archived from the original on July 15 2009 Retrieved January 16 2007 Ars at WWDC Interview with Lars Knoll creator of KHTML June 12 2007 Archived from the original on May 31 2008 Unrau Troy July 23 2007 The unforking of KDE s KHTML and WebKit Ars Technica Archived from the original on September 30 2007 Retrieved July 30 2007 KDE Development Platform 4 5 0 gains performance stability new high speed cache and support for WebKit Archived from the original on March 14 2011 Next Generation KDE Technologies Ported to WebCore July 10 2005 Archived from the original on October 13 2007 CSS Transforms Webkit October 26 2007 Archived from the original on January 13 2017 CSS3 Animations Archived from the original on February 21 2009 Koivisto Antti November 12 2007 HTML5 Media Support Surfin Safari blog Archived from the original on January 13 2017 a b Announcing SquirrelFish June 2 2008 Archived from the original on January 27 2017 a b SquirrelFish project a b Introducing SquirrelFish Extreme September 18 2008 Archived from the original on November 26 2016 Changeset 40439 WebKit Trac webkit org January 30 2009 Retrieved December 27 2010 WebKit2 wiki Webkit org Retrieved August 3 2012 Announcing WebKit2 Webkit org April 8 2010 Archived from the original on April 23 2011 Retrieved December 27 2010 Introducing the Nokia N9 all it takes is a swipe Nokia Conversations The official Nokia Blog Nokia Corporation Archived from the original on June 24 2011 Retrieved June 21 2011 Source code repository for public parts of Safari 5 1 The WebKit Open Source Project Retrieved July 20 2011 WWDC 2014 Session 206 Introducing the Modern WebKit API ASCIIwwdc Archived from the original on December 13 2014 Retrieved December 13 2014 132399 Move the legacy WebKit API into WebKitLegacy framework and move it inside WebKit framework Webkit org Renaming Directories and Project Files to Match Framework Names Webkit org July 10 2017 a b Google going its own way forking WebKit rendering engine Ars Technica April 3 2013 Archived from the original on April 4 2013 Retrieved April 4 2013 App Store Review Guidelines Nokia S60 Webkit Browser Nokia Archived from the original on December 6 2005 Google Chrome Google s Browser Project Archived from the original on September 2 2008 Comic describing the Google Chrome Project Archived from the original on September 3 2008 PS3 ファームウェアv4 10からWebKitへ あまたの何かしら D hatena ne jp February 8 2012 Archived from the original on October 14 2012 Retrieved January 13 2013 Epiphany Mailing list Announcement The Future of Epiphany Archived from the original on February 14 2012 Chen Brian X HP Launches WebOS Powered Tablet Phones Gadget Lab Wired Archived from the original on April 10 2014 Retrieved January 13 2013 100 Million Club H1 2010 update VisionMobile Archived from the original on March 1 2011 Retrieved March 1 2011 StatCounter StatCounter Archived from the original on May 26 2012 Retrieved April 14 2015 Stachowiak Maciej January 10 2007 The Obligatory iPhone Post Surfin Safari weblog Archived from the original on February 19 2008 Retrieved January 24 2008 Android Uses WebKit Archived from the original on January 13 2017 Retrieved January 12 2017 WebKit in the News WebKit November 13 2007 Retrieved November 17 2018 The Amazing Rise of WebKit Mobile gigaom com November 13 2007 Retrieved November 17 2018 Palm Pre in depth impressions video and huge hands on gallery Archived from the original on January 13 2017 Topolsky Joshua New Amazon Kindle announced 139 WiFi only version and 189 3G model available August 27th in the US and UK Archived from the original on January 13 2017 Lex Friedman July 26 2012 Safari 6 available for Mountain Lion and Lion but not Windows macworld com International Data Group Archived from the original on August 8 2021 Retrieved August 8 2021 Buildbot builder Apple Win 10 Debug Build build webkit org Apple Inc Archived from the original on August 8 2021 Retrieved August 8 2021 Buildbot builder WinCairo 64 bit WKL Release Build build webkit org Apple Inc Archived from the original on August 8 2021 Retrieved August 8 2021 About the security content of iCloud for Windows 12 3 Apple Support support apple com Apple Inc Archived from the original on August 8 2021 Retrieved August 8 2021 About the security content of iTunes 12 11 3 for Windows Apple Support support apple com Apple Inc Archived from the original on August 8 2021 Retrieved August 8 2021 BuildingCairoOnWindows WebKit trac webkit org Apple Inc June 8 2021 Archived from the original on August 8 2021 Retrieved August 8 2021 GitHub WebKitForWindows WebKitRequirements Build scripts for the requirements of the WinCairo port of WebKit github com Apple Inc Archived from the original on August 8 2021 Retrieved August 8 2021 World Eolie WebKitGTK project website Archived from the original on January 30 2017 Alp Toker WebKit Gtk is coming June 12 2007 Archived from the original on March 25 2008 WebKitClutter project website QT WebKit Archived from the original on August 3 2009 ProFusion Home Profusion mobi Retrieved January 13 2013 pleyo Archived from the original on March 25 2008 See OWB forge Archived from the original on May 9 2008 AmigaOS OWB official page Amiga Powering through dead or alive amigaweb net Archived from the original on May 2 2008 Retrieved June 2 2010 AROS OWB developer page Archived from the original on March 4 2009 Origyn Web Browser for MorphOS Fabian Coeurjoly Archived from the original on March 17 2010 Retrieved January 4 2010 Holwerda Thom March 8 2010 Origyn Web Browser 1 7 Supports HTML5 Media More OSNews Archived from the original on March 12 2010 Retrieved March 8 2010 WebKit developers planning Chromium extraction The H Archived from the original on April 7 2013 Retrieved April 9 2013 Stachowiak Maciej September 25 2008 Full Pass Of Acid3 Surfin Safari The WebKit Blog Archived from the original on September 29 2008 Retrieved September 29 2008 The WebKit Open Source Project JavaScript Archived from the original on August 14 2015 The Great Browser JavaScript Showdown December 19 2007 Archived from the original on September 6 2008 Introducing the WebKit FTL JIT Webkit May 13 2014 Archived from the original on January 19 2017 Apple integrates LLVM compiler to boost WebKit JavaScript performance May 16 2014 Archived from the original on July 8 2017 Introducing the B3 JIT Compiler February 15 2016 Archived from the original on May 3 2017 External links EditOfficial website Official website for WebKitGTK SunSpider 1 0 JavaScript Benchmark Archived December 15 2018 at the Wayback Machine Retrieved from https en wikipedia org w index php title WebKit amp oldid 1171111756, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.