Teknik Informatika    
   
Daftar Isi
(Sebelumnya) WebExWebmail (Berikutnya)

WebKit

WebKit
Original author(s)KDE[1][2]
Developer(s)Adobe, Apple, Google, and others
Initial releaseNovember 4, 1998; 14 years ago (1998-11-04) (KHTML released)
June 7, 2005; 7 years ago (2005-06-07) (WebKit open sourced)
Written inC++
Operating systemCross-platform[3]
TypeLayout engine
LicenseGNU LGPLv2.1 (JavaScriptCore & WebCore components), BSD v2.0 (remainder of browser engine)
Websitewww.webkit.org

WebKit is a layout engine software designed to allow web browsers to render web pages. It powers the Apple Safari and Google Chrome browsers. Opera has announced that their browser will also move to use it.[4] As of November 2012 it has the most market share of any layout engine at over 40% of the browser market share[5]—ahead of both the Trident engine used by Internet Explorer, and the Gecko engine used by Firefox.

It is also used as the basis for the experimental browser included with the Amazon Kindle e-book reader, as well as the default browser in the Apple iOS, Android, BlackBerry 10, and Tizen mobile operating systems. WebKit's C++ 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's HTML and JavaScript code originally began as a fork of the KHTML and KJS libraries from KDE,[6] and has now been further developed by individuals from KDE, Apple, Google, Nokia, Bitstream, RIM, Igalia, and others.[7] OS X, Windows, GNU/Linux, and some other Unix-like operating systems are supported by the project.[8]

WebKit's WebCore and JavaScriptCore components are available under the GNU Lesser General Public License, and the rest of WebKit is available under a BSD-form license.[9] As of March 7, 2013, Webkit is a trademark of Apple, registered with the U.S. Patent and Trademark Office.[10]

Contents

Origins

The code that would become WebKit began in 1998 as the KDE's HTML layout engine KHTML and KDE's JavaScript engine (KJS). The WebKit project was started within Apple by Don Melton on 25 June 2001[11] as a fork of KHTML and KJS. Melton explained in an e-mail to KDE developers[2] 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 were ported to OS X with the help of an adapter library and renamed WebCore and JavaScriptCore.[2] JavaScriptCore was announced in an e-mail to a KDE mailing list in June 2002, alongside the first release of Apple's changes.[12] WebCore was announced at the Macworld Expo in January 2003 by Apple CEO Steve Jobs with the release of the Safari web browser. JavaScriptCore was first included with Mac OS X v10.2 as a private framework which Apple used within their Sherlock application, while WebCore debuted with the first beta of Safari. Mac OS X v10.3 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.

According to Apple, some changes involved OS X–specific features (e.g., Objective-C, KWQ,[13] OS X calls) that are absent in KDE's KHTML, which called for different development tactics.[14]

Split development

The exchange of code between WebCore and KHTML was increasingly difficult as the code base diverged because both projects had different approaches in coding and code sharing.[15] 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".[16] Apple submitted their changes in large patches that contained a great number of changes with inadequate documentation, often to do with future additions. Thus, these patches were difficult for the KDE developers to integrate back into KHTML.[17] Furthermore, 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.[citation needed]

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.[18] 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.[19]

Since the story of the fork appeared in news, Apple has released changes of the source code of WebKit fork in a CVS repository.[20] 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.[21]

In July 2007, the Ars Technica website published an article reporting that the KDE team would move from KHTML to WebKit.[22] 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.[23]

Open-sourcing

On June 7, 2005, Safari developer Dave Hyatt 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.[20] This was announced at Apple's Worldwide Developers Conference 2005 by Apple Senior Vice President of Software Engineering Bertrand Serlet.

In mid-December 2005 support for Scalable Vector Graphics was merged into the standard build[24] and in early January 2006 the source code was migrated from CVS 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 Cascading Style Sheets (CSS) extensions, including animation, transitions and both 2D and 3D transforms;[25] such extensions were released as working drafts to the World Wide Web Consortium (W3C) in 2009 for standardization.[26]

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

On June 2, 2008, the WebKit project announced they rewrote JavaScriptCore as "SquirrelFish", a bytecode interpreter.[28][29] 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.[30] Initially the only supported architecture for SFX was the x86 architecture, but at the end of January 2009 SFX was enabled for OS X on x86-64 architectures as it passes all tests on that platform.[31]

WebKit2

WebKit2 was announced on 8 April 2010. WebKit2's goal is 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 is intended to make WebKit2's reuse a more straightforward process than WebKit's. WebKit2 has "an incompatible API change from the original WebKit", which motivated its name change.[32]

Currently WebKit2 is available for Mac, Windows and MeeGo-Harmattan.[33][34]

Use

Web browser usage on Wikimedia.png

WebKit is used as the rendering engine within Safari and Google Chrome on Windows, OS X and iOS. Other applications on OS X make use of WebKit, such as Apple's e-mail client Mail and the 2008 version of Microsoft's Entourage personal information manager, both of which make use of WebKit to render e-mail messages with HTML content.

Opera Software ASA announced in early 2013 that they would cease development of their proprietary Presto layout engine, and instead actively use and contribute to the WebKit project in all future projects.[35]

Installed base

New web browsers have been built around WebKit such as the S60 browser[36] on Symbian mobile phones, BlackBerry Browser (ver 6.0+), Midori, Chrome browser,[37][38] the Android Web browser, and the browser used in PlayStation 3 system software from version 4.10.[39] 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 (previously known as Epiphany) replacing their original rendering engines. Sleipnir started development for WebKit in its browser in 2012, and as of May 17, 2012, is in alpha 3 stages.[40] 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 webOS uses WebKit as the basis of its application runtime.[41] The latest interface update for Valve Corporation's Steam employs WebKit to render its interface and built-in browser.[42] 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.[43] As of February 2012[update], WebKit's market share at 36%, is equal to the market share of the Trident/MSHTML engine used to power Internet Explorer.[44] If this growth rate continues, total use of WebKit (Chrome, Safari, and smartphones/tablets) will surpass 50% by the end of 2012 and WebKit will lead in market share.[45]

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, it is 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.[46] The Android mobile phone platform uses WebKit as the basis of its web browser[47] and the Palm Pre, announced January 2009, has an interface based on WebKit.[48] The Amazon Kindle 3 includes an experimental WebKit based browser.[49]

In June 2007, Apple announced that WebKit had been ported to Microsoft Windows as part of Safari. There are also ongoing ports for the open source operating systems Syllable,[50] Haiku[51] and AROS Research Operating System (AROS).[52]

WebKit has also been ported to several toolkits that support multiple platforms, such as the GTK+ toolkit,[53][54] Qt framework,[55] Adobe Integrated Runtime, Enlightenment Foundation Libraries (EFL), and the Clutter toolkit.[56] Qt Software (owned by Digia) includes the Qt port in the Qt 4.4 release. The Qt port of WebKit is also available to be used in Konqueror since version 4.1.[22] The Iris Browser on Qt also uses WebKit. The Enlightenment Foundation Libraries (EFL) port is under development (by Samsung and ProFUSION[57]) 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 and sponsored by Bosch.

There is also a project synchronized with WebKit (sponsored by Pleyo)[58] called Origyn Web Browser, which provides a meta-port to an abstract platform with the aim of making porting to embedded or lightweight systems quicker and easier.[59] This port is used for embedded devices such as set-top boxes, PMP and it has been ported into AmigaOS,[60][61] AROS[62] and MorphOS. MorphOS version 1.7 is the first version of Origyn Web Browser (OWB) supporting HTML5 media tags.[63][64]

Components

WebCore

WebCore is a layout, rendering, and Document Object Model (DOM) library for HTML and SVG, developed by the WebKit project. Its complete 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 additional APIs.

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

JavaScriptCore

JavaScriptCore is a framework that provides a JavaScript engine for WebKit implementations, and provides this type of scripting in other contexts within OS X.[12][66] 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.[67]

On June 2, 2008, the WebKit project announced they rewrote JavaScriptCore as "SquirrelFish", a bytecode interpreter.[28][29] The project evolved into SquirrelFish Extreme (abbreviated SFX, marketed as Nitro), 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.[30]

Drosera

Drosera is a JavaScript debugger that was included with the nightly builds of WebKit.[68][69] It was named after Drosera, a genus of carnivorous plants. Drosera has been replaced by the inclusion of debugging functions in the Web Inspector.[70]

See also

References

  1. ^ "Safari is released to the world". Donmelton.com. http://donmelton.com/2013/01/10/safar i-is-released-to-the-world/. Retrieved 2013-01-13.
  2. ^ a b c "'(fwd) Greetings from the Safari team at Apple Computer' — MARC". Lists.kde.org. 2003-01-07. http://lists.kde.org/?m=1041970923186 39. Retrieved 2013-01-13.
  3. ^ "WebKit". Trac.webkit.org. http://trac.webkit.org/wiki. Retrieved 2010-12-27.
  4. ^ "Opera gears up at 300 million users". http://www.opera.com/press/releases/2 013/02/13. Retrieved 2013-02-14.
  5. ^ "StatCounter". StatCounter. http://gs.statcounter.com/. Retrieved 2012-12-13.
  6. ^ "The WebKit Open Source Project". http://trac.webkit.org. Retrieved 2012-04-07.
  7. ^ Maciej Stachowiak (November 9, 2008). "Companies and Organizations that have contributed to WebKit". WebKit Wiki. http://trac.webkit.org/wiki/Companies %20and%20Organizations%20that%20have% 20contributed%20to%20WebKit. Retrieved 2008-11-17.
  8. ^ "The WebKit Open Source Project — Getting the Code". Webkit.org. http://webkit.org/building/checkout.h tml. Retrieved 2010-12-27.
  9. ^ "Open Source – WebKit". Apple. http://developer.apple.com/opensource /internet/webkit.html. Retrieved 2009-03-05.
  10. ^ "Apple's "WebKit" is now a Registered Trademark in the US". http://www.patentlyapple.com/patently -apple/2013/03/apples-webkit-is-now-a -registered-trademark-in-the-us.html. Retrieved 2013-03-07.
  11. ^ Melton, Don (25 August 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. http://twitter.com/#!/donmelton/statu s/106603038575296512. Retrieved 13 October 2011.
  12. ^ a b Stachowiak, Maciej (June 13, 2002). "JavaScriptCore, Apple's JavaScript framework based on KJS". kde-darwin mailing list. Archived from the original on 2007-03-10. http://web.archive.org/web/2007031021 5550/http://www.opendarwin.org/piperm ail/kde-darwin/2002-June/000034.html. Retrieved 2008-08-21.
  13. ^ KWQ (pronounced "quack") is an implementation of the subset of Qt required to make KHTML work on OS X. It is written in Objective C++.
  14. ^ "Safari and KHTML again". kdedevelopers.org. 2005-04-30. http://www.kdedevelopers.org/node/100 6. Retrieved 2010-02-20.
  15. ^ "So, when will KHTML merge all the WebCore changes?". kdedevelopers.org. http://www.kdedevelopers.org/node/100 1. Retrieved 2010-02-20.
  16. ^ The bitter failure named "safari and khtml"
  17. ^ Open-source divorce for Apple's Safari?
  18. ^ WebCore – KHTML – Firefox: Know your facts!
  19. ^ https://blogs.kde.org/node/1129
  20. ^ a b Daniel Molkentin (June 7, 2005). "Apple Opens WebKit CVS and Bug Database". KDE News. http://dot.kde.org/2005/06/07/apple-o pens-webkit-cvs-and-bug-database. Retrieved 2007-01-16.
  21. ^ Ars at WWDC: Interview with Lars Knoll, creator of KHTML
  22. ^ a b Unrau, Troy (2007-07-23). "The unforking of KDE's KHTML and WebKit". Ars Technica. http://arstechnica.com/journals/linux .ars/2007/07/23/the-unforking-of-kdes -khtml-and-webkit. Retrieved 2007-07-30.
  23. ^ KDE Development Platform 4.5.0 gains performance, stability, new high-speed cache and support for WebKit
  24. ^ Next Generation KDE Technologies Ported to WebCore
  25. ^ CSS Transforms
  26. ^ CSS3 Animations
  27. ^ HTML5 Media Support by Antti Koivisto, Surfin' Safari blog, November 12, 2007
  28. ^ a b Announcing SquirrelFish
  29. ^ a b SquirrelFish project
  30. ^ a b Introducing SquirrelFish Extreme
  31. ^ "Changeset 40439 – WebKit". Trac.webkit.org. 2009-01-30. https://trac.webkit.org/changeset/404 39. Retrieved 2010-12-27.
  32. ^ "WebKit2 wiki". Webkit.org. http://trac.webkit.org/wiki/WebKit2. Retrieved 2012-08-03.
  33. ^ "Announcing WebKit2". Webkit.org. https://lists.webkit.org/pipermail/we bkit-dev/2010-April/012235.html. Retrieved 2010-12-27.
  34. ^ "Introducing the Nokia N9: all it takes is a swipe!". Nokia Corporation. http://conversations.nokia.com/2011/0 6/21/introducing-the-nokia-n9-all-it- takes-is-a-swipe/. Retrieved 2011-06-21.
  35. ^ 300 million users and move to WebKit
  36. ^ Nokia S60 Webkit Browser
  37. ^ Google Chrome, Google's Browser Project
  38. ^ Comic describing the Google Chrome Project
  39. ^ 2012-02-08 15:06 (2012-02-08). "PS3、ファームウェアv4.10か� ��WebKitへ。 - あまたの何か�-ら。". D.hatena.ne.jp. http://d.hatena.ne.jp/amatanoyo/20120 208/1328681210. Retrieved 2013-01-13.
  40. ^ Epiphany Mailing list – Announcement: The Future of Epiphany
  41. ^ Chen, Brian X.. "HP Launches WebOS-Powered Tablet, Phones | Gadget Lab". Wired.com. http://www.wired.com/gadgetlab/2011/0 2/hp-web-os-tablet. Retrieved 2013-01-13.
  42. ^ A Brand New Steam
  43. ^ "100 Million Club (H1 2010 update)". 100 Million Club (H1 2010 update). VisionMobile. http://www.visionmobile.com/blog/2010 /10/smart-feature-phones-the-unbalanc ed-equation-100-million-club-series/. Retrieved 1 March 2011.
  44. ^ Christopher Pecoraro (February 18, 2012). "WebKit Will-Surpass-Trident/MSHTML market share". Irventu weblog. http://irventu.com/webkit-will-surpas s-trident-mshtml-market-share. Retrieved 2012-02-18.
  45. ^ Christopher Pecoraro (October 15, 2011). "WebKit Will Rule the World (Wide Web)". Irventu weblog. http://irventu.com/WebKit-Will-Rule-t he-World-%28Wide-Web%29. Retrieved 2011-10-15.
  46. ^ Maciej Stachowiak (January 10, 2007). "The Obligatory iPhone Post". Surfin' Safari weblog. http://webkit.org/blog/87/safari-on-t he-iphone/. Retrieved 2008-01-24.
  47. ^ Android Uses WebKit
  48. ^ Palm Pre in-depth impressions, video, and huge hands-on gallery
  49. ^ Joshua Topolsky. "New Amazon Kindle announced: $139 WiFi-only version and $189 3G model available August 27th in the US and UK". http://www.engadget.com/2010/07/28/ne w-amazon-kindle-announced-139-wifi-on ly-version-and-189-3g/5.
  50. ^ Syllable WebKit Port, Syllable Server
  51. ^ "Webkit port: talking to Andrea "xeD" Anzani". Haiku Project. http://haiku-os.org/blog/koki/2007-12 -21/webkit_port_talking_to_andrea_xed _anzani.
  52. ^ Cow launched! |Robert Norris' Blog on porting WebKit to AROS
  53. ^ WebKitGTK+ project website
  54. ^ Alp Toker – WebKit/Gtk+ is coming
  55. ^ QT WebKit
  56. ^ WebKitClutter project website
  57. ^ "ProFUSION | Home". Profusion.mobi. http://profusion.mobi. Retrieved 2013-01-13.
  58. ^ pleyo
  59. ^ See OWB forge
  60. ^ AmigaOS OWB official page
  61. ^ "Amiga – Powering through, dead or alive!". amigaweb.net. http://amigaweb.net/index.php?functio n=view_news&id=962. Retrieved 2010-06-02.
  62. ^ AROS OWB developer page
  63. ^ "Origyn Web Browser for MorphOS". Fabian Coeurjoly. http://fabportnawak.free.fr/owb/. Retrieved 2010-01-04.
  64. ^ Thom Holwerda (March 8, 2010). "Origyn Web Browser 1.7 Supports HTML5 Media, More". OSNews. http://www.osnews.com/story/22971/Ori gyn_Web_Browser_1_7_Supports_HTML5_Me dia_More. Retrieved 2010-03-08.
  65. ^ Maciej Stachowiak (2008-09-25). "Full Pass Of Acid3". Surfin' Safari – The WebKit Blog. http://webkit.org/blog/280/full-pass- of-acid-3/. Retrieved 2008-09-29.
  66. ^ The WebKit Open Source Project – JavaScript
  67. ^ "The Great Browser JavaScript Showdown". 2007-12-19. http://www.codinghorror.com/blog/arch ives/001023.html.
  68. ^ WebKit.org Drosera wiki article
  69. ^ "Introducing Drosera". Surfin' Safari. http://webkit.org/blog/?p=61.
  70. ^ "Commit removing Drosera". http://trac.webkit.org/changeset/3354 7.

External links

(Sebelumnya) WebExWebmail (Berikutnya)