Google launched its first foray into the browser wars today with the official release of Chrome, a new open source web browser that aims to push forward Internet innovation and elevate user expectations. Although Chrome is still a bit light on features, it is surprisingly polished and has an assortment of highly promising capabilities that could influence the future of browser design.

User interface



The Chrome user interface is extremely minimalistic. The Chrome tab bar, which is mounted along the top of the window, seamlessly converges with the application titlebar. The toolbar and URL textbox are displayed below the tabs in a layout that is reminiscent of Opera.

Users can drag the tabs to reorder them or drag them between individual windows. There are some nice visual flourishes that accompany various tab management tasks. Tab reordering shows a smooth sliding animation, for instance, and a translucent thumbnail overlay appears when the user snaps a tab out of the browser. The visual feedback provided by these subtle cues improves usability without disrupting the flow of user interaction.

Although Google obviously invested a lot of effort into fine-tuning the usability of the tab implementation, I identified a handful of weaknesses. The biggest is the lack of support for tab overflow handling. Unlike most browsers, which generally display a menu of some kind with a list of tabs that do not fit into the tab bar, Chrome just keeps making the tabs smaller so that more will fit. With a sufficiently large number of tabs, the labels become completely obscured.

Another frustration is that double-clicking the combined tab/title bar causes the window to maximize instead of creating a new tab. This is the most visible case where Chrome's tendency to mix user interface paradigms creates a clear conflict in expected behavior.

There are a few key features that seem to have been left out, including the complete absence of support for RSS. Most modern browsers have RSS readers integrated directly into the user interface. Chrome doesn't even provide any kind of visual notification when the user browses a page that has a feed. I expected Chrome to have some kind of RSS component that integrates with Google Reader, but no such luck.

One aspect of the Chrome user interface that particularly impressed me is the autocompletion mechanism in the URL textbox, which Google refers to as the Omnibar. This feature is evidently inspired by the Firefox 3 AwesomeBar, but it embellishes on the concept and adds some really nice additional features. In addition to providing completion suggestions based on the user's history and bookmarks, it will also provide domain recommendations and allow users to perform searches.

The domain recommendations seem to be powered by something like Google Suggest. When you start typing in a domain name, the system will offer completions based on the most popular sites that start with the same letters. For instance, when you type "c" it will offer cnn.com even if the user has not previously visited that site.

The default Chrome home page displays thumbnails of the user's most frequently visited sites. This feature looks a lot like Opera's Speed Dial. It also displays the bookmark toolbar, a sidebar with recent bookmarks, and a history search. It brings together a bunch of useful functionality and it loads pretty close to instantly, so it's a nice step up from about:blank.

The Chrome bookmark user interface looks pretty similar to the one in Firefox 3. Users bookmark a page by clicking a star icon that appears on the left-hand side of the URL textbox. This displays a popup in which the user can specify a title and select the location where the bookmark will be stored. Unlike Firefox, the system doesn't support tagging.

Bookmarks are not displayed in the user interface by default except on the start page, but users can optionally enable a bookmarks bar that clings to the bottom of the main toolbar. Bookmark support is still very limited in Chrome and it lacks a full bookmark management interface.

Incognito mode



Another nice feature that Google has touted is the Incognito mode, which disables history tracking. This is similar to Safari's Private Browsing mode and it's becoming a standard feature in many browsers. Rather than being able to toggle Incognito mode across the entire program, users can open special windows that are set in Incognito mode. To indicate that Incognito mode is enabled, the window panes are rendered in dark grey instead of blue and have an icon of a cloaked man.

In light of what most users will do with the Incognito mode, I think that a Ceiling Cat icon would be far more appropriate:

Internals



The heart of Chrome is the WebKit engine, a lightweight HTML renderer that was developed by Apple with parts of the KDE project's open source KHTML component. WebKit offers a nice balance of performance, standards compliance, and reliability that make it a good choice for browsers. WebKit has also proven to be very portable, scalable, and conducive to embedding.

In addition to serving as the renderer in Apple's Safari browser on both desktop and mobile devices, WebKit has also been adopted for use in numerous other contexts, including the Adobe AIR runtime, Trolltech's Qt toolkit, Nokia's S60 web browser, and Google's Android web browser. It's therefore unsurprising that Google decided to use WebKit for Chrome.

Chrome provides outstanding performance comparable to other browsers. Load time is extremely fast and the user interface is snappy. Chrome starts up and shuts down quickly and I encountered little lag.

Although Chrome is built on top of WebKit, the Chrome developers decided to eschew SquirrelFish, Apple's new high-performance JavaScript runtime implementation. Instead, Chrome uses V8, a unique virtual machine that was developed by a team of specialists in Denmark. V8 was designed from the ground up to provide good performance for large-scale web applications that make extensive use of JavaScript. It has a built-in JIT compiler that generates native code on the fly. It also has an extremely aggressive incremental garbage collection mechanism that reclaims memory more efficiently.

One of the most intriguing aspects of the Chrome internals is the multiprocess design. Each individual tab and plugin runs within its own process in order to boost stability and prevent memory fragmentation. When a rendering bug within a page causes a crash, the tab will go down but the rest of the browser will remain unaffected.

Users can launch Chrome's built-in task manager to see how how the memory is distributed across the entire browser. This is extremely beneficial because it will make it easy for users to identify which pages are hogging memory. Users often blame the browser for heavy memory use, but the culprit is often poorly-designed web pages. The task manager might give web developers an incentive to be more careful.

Chrome will provide even more detailed information through the about:memory page, which will even compare Chrome's resource consumption against that of other actively running browsers.

We conducted some tests to compare Firefox, Safari, Internet Explorer, and Chrome. Although the results vary widely between tests and shouldn't be considered as an authoritative comparison, Chrome's multiprocess design generally incurs a higher memory overhead than other browsers.

Internet Explorer 8 offers a similar feature, but doesn't do a one-to-one relationship between tabs and processes. IE8 attempts to hit a more even balance between resource consumption and reliability by using fewer processes.

Another similarity between IE and Chrome is that both use Vista's integrity protection security model to insulate the user from web malware and other attacks. In Chrome, individual tab processes are run with low integrity permissions which effectively limits the damage that can be caused by a security exploit.

Market impact



Chrome is still in the early stages of development, but it could have an impact on the browser landscape when it starts to mature. Many have speculated that toppling Internet Explorer is the ultimate goal behind Chrome, but that's not going to happen overnight. The initial audience for Chrome will primarily consist of early adopters and technology enthusiasts, so we can expect to see it cannibalizing some market share from Firefox, Safari, and Opera.

If Google aggressively courts OEMs and gets them to preinstall Chrome on consumer desktops, then the company could start to gain some serious traction against Internet Explorer. If Google doesn't pursue preinstallation opportunities, then it is likely that Chrome will make only modest inroads.

During a press conference today, a Google spokesperson said that the company intends to pursue multiple vectors of distribution, but he declined to provide details about any specific plans.

Google has kicked off Chrome with a strong product. Although the software feels polished and robust, the early stage of development is clearly revealed in its lack of support for advanced features like RSS integration and full bookmark management. If Google continues to invest in moving Chrome forward and manages to build up some community involvement, though, the new browser could quickly become a shiny new contender in the browser market.

Further reading