WebKit2, beyond Google Chrome
Last week Apple announced the iPhone OS 4 SDK, but besides receiving multi-tasking capabilities, social gaming, iAds and more, there was also a silent announcement for WebKit2. As you may know WebKit is the core of Apple's Safari (Mobile), but also Google Chrome, and Android browsers.
After a little surprise for the open WebKit world, the new engine seems to be welcomed warmly. The thing is, just like Google did with Chrome, that Apple worked on WebKit2 behind closed doors, without input from the open-source community. WebKit itself was also created by Apple, but was opened up for all to see and use, making it possible to migrate changes from WebKit into the original KHTML.
The thing is that WebKit2 is more of a name than something like a complete rewrite of every component. The effect of WebKit2's changes are nonetheless significant. The WebKit2 projects aims to deliver a "split process model" and a "non-blocking API".
Of course a split process model must sound familiar. Two years or so back Google announced Chrome which introduced a per tab (or domain) split process for the web browser. This means that some "overhead" would be introduced to have independent renderers of each web site, but would not only mean a much greater stability (if a page crashes, the rest of the browser simply continues to work), but also increased security as everything is separated. Although work on plug-ins is still going on (the plug-in API needs to be adapted for this), they were also separated from the rendering stack, which also found its way in Safari 4 for Snow Leopard and the latest Firefox nightlies. But WebKit2 does it a little different from Chrome, as Chrome actually sits on-top of WebKit to separate everything, WebKit 2 does everything already inside the engine. This approach has one huge benefit that anyone using WebKit2 can use this, think of Safari 5, Safari Mobile (for iPhone, iPod touch, iPad) and others.
Another interesting thing about WebKit2 is the non-blocking API. More and more do web sites make use of technologies like JavaScript through AJAX (or similar with JSON) and HTML5. A lot of processing is done asynchronously and this means that WebKit2 is designed to offer better ways to deal with the problems that arise from this.
As you can see, WebKit2 not only stands on the principles introduced by Google Chrome, but polishes them for Apple's own purposes, where other can benefit from. Hopefully we'll see a Safari 5 build somewhere this year to play with. The only browser that's truly left behind is Opera (IE 8 has some form of process isolation already).