Apple engineers Anders Carlsson and Sam Weinig yesterday announced the forthcoming release of a new web framework known as "WebKit2" that will build upon the existing engine that powers the company's Safari browser as well as a number of other browser applications including Google Chrome. Notably, WebKit2 will support running various browser elements in different processes, "sandboxing" them to prevent problems with a single element from crashing the entire browser.
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.
The team behind WebKit2 has also posted documentation outlining some of the changes coming in WebKit2 and how its split process model differs from that used in Chromium and Google Chrome, building the functionality directly into the framework rather than putting it in the application layer where considerable work would be required for porting or reusing the functionality.
CNET notes that Apple's announcement has ruffled some feathers in the WebKit community, as it is being seen as rolling out a major revamp of the engine without the input of the rest of the community. Apple's Maciej Stachowiak responded to the criticism, noting that existing ports will continue to work and that the new tools are in a very early stage that is appropriate for review and discussion by the community.
We picked the name "WebKit2" in the hopes of picking something really bland. Apparently that backfired, because it seems to make this project seem like a bigger deal than it is. Basically, you can think of this as a new port-specific API [application programming interface]. But we're trying to put some general mechanisms in this API, so other ports can use it if they choose. We are also welcoming input from the whole WebKit community on the design, architecture and direction of this work. It is at a very early stage, barely enough that you can build a trivial demo browser on top of it. We decided that our proof of concept was far enough along at that point that we should make the code public for community review and input.
Initial versions of WebKit2 have been developed for Mac and Windows, and the developers invite others to submit patches for additional ports.