WebKit, the rendering engine that powers web browsers like Google’s Chrome, Apple’s Safari, and soon Opera as well, has become a developer favorite thanks to its support for web standards and near-ubiquity in the mobile world.
Unfortunately for developers, WebKit isn’t always WebKit. While WebKit-based browsers share some code, not every WebKit-based browser behaves exactly the same way.
WebKit is an open source project with dozens of browsers based off the core code. But WebKit doesn’t have everything you need to build a graphical web browser, which means there’s considerable variation even among the two biggest WebKit users — Google and Apple.
To clear up just what WebKit is, and why there’s sometimes quite a bit of difference between WebKit browsers, Google’s Paul Irish — who is part of Chrome’s Developer Relations team — has put together a comprehensive guide to WebKit. Irish covers exactly what WebKit is, what it isn’t, how WebKit is used by WebKit-based browsers and why not all “WebKits” are the same.
Irish’s write-up should be required reading for all developers, but especially anyone who’s ever wondered why something works in Chrome, but not Safari; or why 3D transforms that fly in one WebKit-based browser crawl in another (short answer: GPU code is not shared among WebKit browsers).
When you’ve finished with Irish’s overview, be sure to follow the links at the bottom of his post for more details — particularly worth your time is Eric Seidel’s talk on how WebKit renders a webpage.