News Archive (1999-2012) | 2013-current at LinuxGizmos | Current Tech News Portal |    About   

Apple unveils multiprocess web browsing

Apr 9, 2010 — by LinuxDevices Staff — from the LinuxDevices Archive — 2 views

Apple has unveiled WebKit2, a new version of the web technology used by its own Safari browser, as well as Google's Android and Chrome, and most mobile phone browsers. The new version changes the WebKit stack to build process management into the API (application programming interface) layer, potentially improving performance, stability, and security, the company says.

Under the intent gaze of analysts, developers, and reporters, Apple yesterday announced its iPhone OS 4.0, an operating system upgrade that will bring a limited form of multitasking to the company's iPhones, iPod Touches, and iPads starting this summer. Much more quietly, however, the company also unveiled forthcoming improvements to WebKit — the core technology used by web browsers including Google's Chrome, Apple's Safari, and a multitude of mobile products.

In a late-afternoon email to members of the webkit-dev mailing list, Apple developers Anders Carlsson and Sam Weinig wrote, "This is a heads-up that we will shortly start landing patches for a new WebKit framework that we at Apple have been working on for a while. We currently call this new framework 'WebKit2'."

The message continued, "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."

Multiprocess browsing

Google's Chrome browser (known as Chromium in its open source version) and related Chrome OS famously added a multiprocess architecture to WebKit. As a result, multiple websites and plug-ins are prevented from interfering with each other and causing crashes.


Google's Chrome OS, including Chrome web browser

According to a document first posted by Sam Weinig on a Webkit.org wiki yesterday, "The Chrome team at Google did a great job at trailblazing multiprocess browsing with Chrome. But it's difficult to reuse their work, because the critical logic for process management — proxying between processes and sandboxing — is all part of the Chrome application, rather than part of the API layer."

The document adds, "If another WebKit-based application or another port wanted to do multiprocess based on Chromium WebKit, it would be necessary to reinvent or cut and paste a great deal of code." WebKit2, therefore, will build multiprocessing into the framework itself, allowing all WebKit clients to use it.

Weinig wrote, "We want process management to be part of what is provided by WebKit itself, so that it is easy for any application to use. We would like chat clients, mail clients, Twitter clients, and all the creative applications that people build with WebKit to be able to take advantage of this technology. We believe this is fundamentally part of what a web content engine should provide."


The WebKit (left) and WebKit2 (right) stacks
Source: Apple
(Click either to enlarge)

As pictured above right, WebKit2 will feature a separate user interface process, isolated from the existing web process that incorporates HTML rendering and JavaScript execution. "This can deliver benefits in responsiveness, robustness, security (through the potential to sandbox the web process) and better use of multicore CPUs," adding that "there is a straightforward API that takes care of all the process management details for you."

Background

WebKit is a browser engine that began as an Apple-developed fork of the KHTML and KJS libraries from KDE. Released in 2003 with Apple's Safari web browser, it was open sourced in 2005, and has since been widely praised for its rendering speed and other features.

Today, WebKit's used not only in Apple products, but also others that include Adobe's AIR (Adobe integrated runtime), Google's Android and Chrome, and Nokia's Qt framework.

Availability

According to the Weinig-originated document on the WebKit.org wiki, WebKit2 is still an "early technology demo" but can be tried out now on Windows or Macintosh platforms. However, because it is an "incompatible API break," it will not work with Safari or other existing WebKit browsers. A revised web browser suitable for testing WebKit 2 will be "landed in the near future," the document adds.

In related news, Mozilla has announced a test build of Firefox code-named "Lorentz" that provides "uninterrupted browsing for Linux and Windows users when there is a crash in the Adobe Flash, Apple Quicktime, or Microsoft Silverlight plugins." Further information may be found on the Mozilla Links website, here, and the software is downloadable from Mozilla, here.

The announcement of WebKit2 may be found on WebKit.org, here, and further details may be found on the Wiki, here.


This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.



Comments are closed.