In association with heise online

09 April 2010, 11:37

WebKit2 browser engine introduces split process model

  • Twitter
  • Facebook
  • submit to slashdot
  • StumbleUpon
  • submit to reddit

WebKit Logo Developers at Apple have presented version 2 of the WebKit browser engine. Originally based on code from the KDE project, the WebKit browser engine is the basis for Apple's Safari, Google's Chrome and the Widget Engine on Symbian S60 devices. Apple have developed WebKit2 with a split process model with web content (JavaScript, HTML, layout) running is a separate process from the application's user interface.

The advantage of a split process model, also known as process isolation, is that crashes can be restricted to the tab or plugin which caused the crashing problem and do not take down the entire browser. The developers say the model they are adopting is largely similar to that implemented in Google's Chrome browser. The difference will be that the split process handling will be integrated into the WebKit framework, allowing all WebKit users to make use of the model. The idea of isolating the processes in which browser pages and plugins run is becoming more common; Mozilla's Electrolysis project aims to do the same for Firefox and Internet Explorer is moving in a similar direction.

The developers are building a stable C-based non-blocking and (mostly) platform agnostic API. To achieve this, they are implementing a number of "notification style" client callbacks, such as didFinishLoadFrorFrame to notify applications that something has happened, and "policy style" callbacks, such as decidePolicyForNavigationAction which allows application code to decide on actions "at their leisure". The latter case is complemented by a Policy settings mechanism which allows applications to preset what actions should be taken without WebKit having to ask. Finally, the developers plan to add a code-injection mechanism "where all other options fail" to allow code to be loaded into the WebProcess, though this is not currently implemented. WebKit is licensed under the LGPL and BSD licenses.


Print Version | Send by email | Permalink:

  • July's Community Calendar

The H Open

The H Security

The H Developer

The H Internet Toolkit