Google planning new Chrome browser based on WebKit

By Prince McLean

A Google blogger has published an illustrated document outlining Google Chrome, a new web browser project based on Apple's WebKit open source rendering engine.The blogger says Google mailed out a description of the new project's features in the form of a 38-page comic book, illustrated by artist Scott McCloud of Understanding Comics and distributed under a Creative Commons license.

The comic book portrays Google engineers highlighting stability, speed, security, and simplicity as key aspects of the project, which will serve not only as a new browser but a foundation for a new generation of JavaScript thick 'web client server' apps following the same model as Apple's MobileMe apps built upon the SproutCore framework, as well as the HTML 5 advancements going into Safari 4 to make it suitable for a new class of sophisticated web applications.

Most of Google's existing products are web-base applications. A Google browser has been long rumored, in part to keep Microsoft from controlling all access to the browser platform across Windows PCs. Google has been financing Mozilla Firefox development with the same intention.

While the www.google.com/chrome URL is referenced in the report as not being valid yet, Google has already released developer tools for Gears, an effort to improve web applications by providing features missing in today's browsers, including a database engine and support for local storage and offline applications. Chrome is simply, well, the chrome on the gears.

Chrome and Webkit

The report says the new Chrome browser will combine Apple's Webkit, Google's Gears, and a new JavaScript virtual machine called V8, intended to dramatically speed up the performance of JavaScript code, particularly the code used in building significant web apps. The document outlines that Google's Chrome team selected Webkit for the same reason Android developers did: it's fast, simple, uses memory efficiently, and "it was easy for new browser developers to learn to make the code base work."

However, rather than speeding up JavaScript parsing as Apple and Mozilla are doing in their efforts to build faster JavaScript interpreters, Google's V8 compiles JavaScript into native source code. It also allows for better garbage collection of expired memory and dynamic optimization based on hidden class transitions. The company will offer V8 as an open source component that other browsers can adopt as well.

This puts the Chrome project on the same page as Apple's forthcoming Safari 4, which similarly intends to speed JavaScript (although in different ways) and push features of HTML 5 to give web apps standardized access to database tools, local storage options, and the ability to work offline when the network isn't present. Conversely, Google's use of the Webkit rendering engine will also help popularize Apple's efforts to spread its open new CSS features for adding effects such as reflections, gradients and new masking capabilities.

Chrome user interface

By delivering its own browser front end, Google can focus on differentiated user interface features. The illustrated report depicts a browser with tabs on top of the window rather than inline, a violation of both Mac and Windows user interface guidelines. Apple, Adobe, and Microsoft have all taken similar exceptions to established guidelines in order to make their apps stand out. In Google's case, the top tabs are intended to make it easier and more obvious how to detach tabs to create freestanding windows.

A separate example cited in the report is a browser address bar with auto completion called "omnibox,' designed to respond to natural language search words that match previously visited pages, rather than force the user to enter semantically correct URLs.

Another user interface idea presented in the illustrated guide is Chrome's default page, which shows the user thumbnails of sites they have previously visited or bookmarked and recent searches (below), a feature similar to one in the Opera browser.

Like Safari's Private Browsing introduced in 2005's Tiger and Internet Explorer 8's new InPrivate mode, Google's Chrome will support 'incognito' windows and tabs where the browser won't save any history, cookies, or leave other private tracks. And similar to an upcoming feature in Safari 4, Chrome will be able to launch web applications as a freestanding desktop app lacking the usual browser address and tool bars.

Targeting responsiveness and bloat

In addition to visual enhancements of the user interface, Google is also attacking the inherently single-threaded model of browsers, which results in delays while the browser waits for a JavaScript to finish executing. Rather than making the browser multithreaded, the report depicts the new browser using a multi-process design that runs each browser tab as its own process.

That design would chow down more memory initially, but provide much better response time and independence between web pages and applications loaded at once. Closing a tab would also immediately release its memory allocation, rather than resulting in a fragmented allocation that affects the entire browser.

The document cites Google engineer Brett Wilson as explaining, "so as you browse, we're creating and destroying processes all the time. If there's a crazy memory leak it won't affect you for that long because you'll probably close the tab at some point and get that memory back."

Chrome and web plugins

Each tab is also sandboxed for security, although any web plugins, such as Adobe Flash or Microsoft Silverlight, will not respect this security model by design, because the existing web plugin model automatically gives them privileges on the same level or higher than the browser.

The document notes that "with some small changes on the part of plugin makers, we can get them to run at a lower privilege which would be much much safer." It also notes that Chrome will present each plugin in the browser's task manager so users are aware of which plugins are hogging available RAM, "placing blame where blame belongs," a shot clearly fired toward fat third-party plugins.

While the document carefully avoided any mention of Flash, it did depict the challenge of isolating video within YouTube, a task that is built on top of the Flash player plugin.

Popups, malware, and bugs

Rather than allowing JavaScript to popup ads from any web page in the background or in the user's face, Chrome will attach JavaScript notices to the browser window and tab from which they originated.

The new browser will also get updated info on malware sites to help rapidly warn users of phishing attacks that have been discovered (phishing schemes usually get taken down with a day or a few days). Google will also be exposing this system as a public API other browsers can use.

In order to track down bugs and problems with various web sites, the document outlined Google's ability to automate testing of new builds against tens of thousands of websites within minutes. It also notes that Google's own Page Rank information will be used to direct testing toward the popular sites people actually use regularly.

Wide open

By offering Chrome, Gears, V8 and other components as open source, Google hopes to bring all web browsers up to modern standards capable of running the kinds of web apps the company is delivering now and laying a foundation for a future of even more sophisticated apps that run on the web platform using interoperable standards anyone can implement.

Google's Chrome will give a huge push behind the efforts of Firefox, Opera, and Safari to create a more open, interoperable web enabled to run a sophisticated new generation of web client server apps.

The entire comic book is available at Google on Google Chrome comic book