Biz & IT —

Hands on: Extensions give Chrome a lift as version 4 arrives

Google has announced the official Windows release of Chrome 4, a significant …

Google has announced the official release on Windows of Chrome 4, an updated version of the company's Web browser. It offers a handful of significant improvements, including support for extensions and bookmark synchronization.

Due to Chrome's rolling development model, these features have been widely used by testers for quite some time. The official release means that the new functionality will be rolled out to regular end users through the stable channel. In addition to the major feature enhancements, Chrome 4 also brings a performance boost. Its score in the Dromeo DOM benchmarks is a 45 percent improvement over the previous version.

Extensions

We first looked at Chrome's extension system last year when we gave you a hands-on look at how to build an add-on. At the time, extensions were relatively experimental and could only be accessed with a special command-line parameter. A lot of improvements have been made since then to flesh out extension management and make the feature more friendly to end users.

Chrome 4 includes an extension dashboard for managing installed extensions. You can use it to uninstall or disable an extension or to access extension options. You can open the extension dashboard by selecting the "extensions" item in the browser's wrench menu or by navigating to chrome://extensions.

The extension management console in Chrome 4

Although the size of Chrome's extension ecosystem is understandably much smaller than that of Firefox, it is picking up some momentum. Google's official extension gallery has roughly 1,800 items, including equivalents for some of the most popular Firefox add-ons.

The process of installing an extension is fairly intuitive. When you click the "Install" button for an item in the gallery, the browser will display a confirmation dialog that describes the level of access that the extension requires in order to function. For example, it will tell you if the extension accesses your browsing history. When you click the "Install" button in the confirmation dialog, it will finish installing the extension. Extension with toolbar buttons will pop open a bubble to show where the extension's functionality can be accessed.

Chrome requests confirmation before installing an extension
A notification appears when extension installation is complete

As we explained in our extension tutorial, the Chrome extension system supports modifying page content and extending the user interface through a number of standard integration points—such as the toolbar, page status area, and a bar along the bottom of the window. Most of the extensions that I tested added icons to the toolbar. This seems to be a common practice, partly because the browser doesn't provide a way to add menu items yet.

Unfortunately, there is no overflow mechanism in the toolbar, so some icons may be obscured if you install several of them and your window isn't wide enough for all to be shown at once. Unlike the bookmark bar, the toolbar doesn't have an overflow dropdown menu to allow users to reach items that are hidden.

In order to reduce toolbar button overload, I think that the Chrome developers should expand the availability of integration points and provide more guidance about the best practices of where to put specific kinds of functionality.

Chromed Bird, a Twitter client that pops down from a browser toolbar button, is one of the extensions that impressed me the most. It is very well-integrated and feels like a native part of the browser. It displays the user's Twitter streams in tabs within a dropdown bubble and it will also show the number of new tweets in a small box that overlays the toolbar icon.

The Chromed Bird extension shows me my latest Twitter messages

As we have previously discussed, Chrome's HTML-based approach to extension design gives developers a lot of flexibility with presentation. But it does have some downsides that are becoming increasingly apparent as the browser matures. For example, extensions that are designed to match the program's default style and user interface color palette will look out of place when used with third-party themes. It would be helpful if the browser could expose the user's native theme colors to the extension system. The following screenshot shows Chromed Bird when the browser is using the Dust style.

Chromed Bird's blue design looks out of place with a dark theme

Another major downside is that the limitations of Chrome's user interface extensibility make it difficult or impossible to replicate the functionality of certain advanced Firefox extensions that drastically alter the basic user experience. For example, the Tree Style Tabs add-on for Firefox—which moves the browser's tab navigation into a hierarchically-structured vertical sidebar—is beyond the scope of what can be achieved today with Chrome extensions.

The closet analogue to Firefox's Tree Style Tabs that I could find in Chrome's extension gallery is VerticalTab, which gives you a toolbar button that will pop up a vertical list of your tabs in a scrollable bubble. It has a built-in search box so that you can conveniently filter your tabs. Although it's not as functional or elegant as Tree Style Tabs, it's still immensely useful in its own right.

Navigating through my favorite Web comics with the VerticalTab extension

The efficacy of Chrome's extension system is important because it will play a major role in allowing users to customize and extend the user interface shell in Google's Chrome OS operating system. In our recent interview with Matthew Papakipos, the engineering director of the Chrome OS project, we discussed the extension system at length, including some possibilities for additional integration points.

The extension system will help Google bridge the gap between the desktop and the Web. As demonstrated by the following screenshot, there are several extensions available in the gallery today that deliver the most critical must-have features that users expect to find in an operating system.

A Chrome extension integrates minesweeper into the browser for more efficient slacking

Synchronization

Bookmark synchronization is the other major feature that landed in the Chrome 4 release. It uses an XMPP-based push protocol to enable seamless synchronization between multiple client instances. Users can access their bookmark data through Google Docs. We discussed this feature at length when it was made available in developer builds last year.

Although it works reasonably well and provides excellent sync performance, I have found that I prefer the Xmarks extension because it has cross-browser support. It's worth noting, however, that Google's sync protocol is not proprietary and could eventually be made to work in other browsers.

According to documentation in the Chrome Wiki and information in the bug tracking system, Google is actively working on broadening the browser's synchronization functionality to encompass more aspects of the program than just bookmarks, including extensions, autofill data, themes, and passwords. As it is still a work in progress, it's not yet clear when this augmented synchronization system will start shipping to end users. The relevant issue reports in the bug tracker are associated with milestone 5, indicating that we could possibly see it in the next major version of the browser.

Conclusion

When Google originally launched Chrome in 2008, it had some very promising characteristics but it was too feature-anemic to rival the alternatives. It didn't take long for Google to polish Chrome into the highly competitive performance powerhouse that is today. Chrome is a solid option for users who value performance and security. Its increasingly compelling feature set and growing ecosystem of extensions are beginning to make it into a more viable option for power users. If Google can sustain its current rate of development and raise mainstream awareness of the browser's existence, it stands a chance of seeing serious marketshare growth.

Channel Ars Technica