The big news of Thursday might have been Apple’s iPhone 4.0 event, but another significant announcement slipped beneath the radar.
In a post to the webkit-dev mailing list, Apple engineers Anders Carlsson and Sam Weinig announced WebKit2, describing it as “a new WebKit framework that we at Apple have been working on for a while.”
WebKit is the open-source engine that Apple uses in Safari (and Mobile Safari); it also powers numerous Mac apps that use in-app Web browsers (like NetNewsWire), Google’s Chrome Web browser, Nokia’s Symbian smartphones, and the Palm Pre’s webOS.
WebKit2, then, is a sequel to WebKit—you might call it WebKit 2: Web Harder. Here’s what the Apple engineers’ announcement said; then, I’ll do my best to translate it into human-readable form:
WebKit2 is designed from the ground up to support a split process model, where the web content (JavaScript, HTML, layout, etc) lives in a separate process. This model is similar to what Google Chrome offers, with the major difference being that we have built the process split model directly into the framework, allowing other clients to use it.
In Google Chrome, if a misbehaving or poorly-coded Website crashes your browser, it only crashes the tab it’s in—all your other tabs, whether in the same window or a different one, keep on chugging along. It’s that safety net that WebKit2 is shooting for. The key difference, though, is that since this “split process model” is baked into the framework itself, it means that any other software that leverages WebKit2 (other browsers, apps, and the like) inherit that Chrome-esque crash protection—which the Google Chrome team previously had to implement independently.
WebKit2 isn’t compatible with the APIs used for the original WebKit, so you can’t download the new framework and start surfing with it just yet. The WebKit2 wiki promises that “a basic web browser application suitable for testing WebKit2 will be landed in the near future.” Frankly, I’ve seen my fair share of browser crashes, so the future can’t come soon enough for me.