As its Web browser engine for Google Chrome on Linux, the Chromium Project has adopted WebKit. As a key component, with enough breadth and depth for its own article series, here WebKit is framed in the context of Google Chrome for Linux.
Overview of the WebKit Project
"Web browser engine" is, frankly, a vague term. And as this thing known as a "Web browser engine", WebKit continues to evolve. For these reasons, it makes sense to set the stage for the WebKit Project by summarizing its goals:
- Be focused on, and able to, process Web content – e.g., markup, scripts, etc.
- Be embeddable in other applications – be an engine, but not a browser
- Be Open Source – in terms of development, support, licensing, etc.
- Be compatible – from the user’s perspective and with existing Web content
- Be standards compliant – by engaging directly in the standards process, and implementing against standards
- Be stable – a production-ready engineering solution, not a research project
- Perform well – by adopting an always-room-for-improvement attitude
- Be secure
- Be portable – by leveraging, not reinventing the platform, and by providing APIs
- Be usable – acknowledge being one-step removed from interface design … but be respectful of that
- Be hackable – in addition to principles surrounding Open Source development, deliver code that can be understood by mere mortals – abstracting rocket-science code through usable interfaces
Mindful of these goals, WebKit continues to evolve. Significant efforts are organized into projects that broadly fall into two categories:
- General Projects – Compatibility and performance lead the list of projects in this area. Based on their stated goals, plus references peppered-to-detailed elsewhere on the Project’s Web site, it is fair to state that WebKit is obsessed with compatibility and performance. And why not! These are excellent obsessions that I’m sure (in part) account for WebKit’s adoption (please see below). Other projects in this category are addressing the cleanup of code, portability and documentation.
In transitioning from goals to projects, you might be getting the impression that WebKit is not quite ready for prime time. As the next section demonstrates, nothing could be further from the truth.
WebKit In Practice
Today, WebKit represents the cumulative efforts of individuals to Open Source (e.g., KDE Project) and commercial (e.g., Apple, Google, Nokia and Torch Mobile) entities. As one of the commercial entities involved in the WebKit Project, Google’s contributions have been in support of Chrome and Android – including work on portability, bug fixes, security improvements, and various other contributions. Owing to this investment, WebKit is indeed production-ready and seeing adoption in:
- Web broswers – Other than Google Chrome, Apple Safari is a notable adopter of WebKit. And though not explicitly identified by the WebKit Project, Mesa Dynamics Stainless (Apple Mac OS X Leopard only) has also adopted WebKit.
- E-Mail clients – Commercial offerings for Apple Mac OS X from Apple (Apple Mail) and Microsoft (Microsoft Entourage) are particularly notable WebKit adopters.
- Instant Messenger/Chat Clients – Again, commercial entries from Microsoft (MSN Messenger) and Yahoo! (Yahoo Messenger) top this list, along with one of my favorites (Adium, for the Mac OS X platform).
- RSS readers.
- Web development applications.
- Blog and text editors plus viewers.
- Kiosk software.
- Media players – Including adoption by the highly popular RealNetworks Real Player.
- Desktop wallpaper browsers.
- Miscellaneous – Even though a catch-all category for WebKit adoption that doesn’t fit elsewhere (above), included in here are staples for the Apple Mac from Aperture to desktop applications/utilities/widgets/etc. to Xcode plus a number of other Open Source and commercial entries.
Although Google Chrome is casting even more attention on WebKit, it is quite clear that there is vested interest from a number of additional perspectives and players. And to state the obvious, for WebKit, that is also a good thing.
WebKit and Google Chrome
This post is part of the series: Google Chrome for Linux
- Google Chrome for Linux: Building from Source
- Google Chrome for Linux: Testing and Contributing
- Google Chrome for Linux: The WebKit Web Browser Engine
- Google Chrome for Linux: Android Availability