Safari Will Soon Have Chrome-Like Split Processes In Tabs

Posted Apr 11, 2010

A new WebKit framework for the open source Web browser layout engine was unveiled this past Thursday. Dubbed WebKit2, there will be a “split process model” for keeping web content such as HTML, JavaScript, and other layouts in separate processes in browsers such as Apple Safari and Mobile Safari.

WebKit is the layout engine that Google Chrome, the Android web browser, and Palm’s WebOS uses. “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,” stated Anders Carlsson. “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.”

Each tab in a browser is “sandboxed” in its own space. Below are some additional bullet points about WebKit2:

-Notification style client callbacks (e.g. didFinishLoadForFrame) These inform the embedder that something has happened, but do not give them the chance to do anything about it.
-Policy style clients callbacks (e.g. decidePolicyForNavigationAction) These allow the embedder to decide on an action at their leisure, notifying the page through a listener object.
-Policy settings (e.g. WKContextSetCacheModel, WKContextSetPopupPolicy) These allow the embedder to opt into a predefined policy without any callbacks into the UIProcess. These can either be an enumerated set of specific policies, or something more fine-grained, such as a list of strings with wildcards.
-Injected code (e.g. WebBundle) Code can be loaded into the WebProcess for cases where all the other options fail. This can useful when access to the DOM is required. [Planned, but not currently implemented]

[WebKit2 Release via AppleInsider]