Mozilla took a big step toward Firefox 3.1 yesterday with the release of the first alpha. It includes important improvements to both the user interface and to Firefox's underlying Gecko rendering engine.

Much of Firefox's internal architecture was overhauled during the 3.0 development process. This means that Mozilla now has a much stronger foundation to build upon. The features planned for 3.1 will continue pushing the browser forward and will leverage some of the new infrastructure that was put in place for 3.0. The new release will also include some features that were deferred during the 3.0 development cycle because of time constraints. Additionally, some of the experimental features from 3.0 will be refined and improved for 3.1 based on feedback from users.

Tab browsing



The 3.1 alpha, which is codenamed Shiretoko, already includes some of the earliest pieces. The Firefox developers are attempting to improve on the conventional tabbed browsing model and extend the tab interface so that it provides more visual feedback. In the alpha release, the ctrl+tab keyboard shortcut now invokes the visual tab switcher, which shows previews of the pages in each tab. It also changes the order of tab rotation. Instead of iterating through each tab sequentially, it switches between them based on when they were last used—much like the alt+tab application switcher in Windows or command-tab on the Mac.

The idea of using visual thumbnails makes a lot of sense. When you use the ctrl+tab shortcut in Firefox 3.0, each page has to completely redraw while you are rotating through tabs. When you have a lot of tabs open and are short on system resources, that can get a bit slow. Showing just the thumbnails and then switching to a page only after the right one has been selected will eliminate some of that overhead. Additionally, the thumbnail strip in 3.1 lets you see the contents of three tabs at once, which means that you have more visual feedback to work with while you are making your selection.

Although thumbnail previews are an obvious win, the value of altering the tab switching order is debatable. The "last-used" switching model will make it easier for users to move between related tabs even if those tabs aren't next to each other, but for many power users, that will be a difficult adjustment. Many of my personal workflow optimizations depend on linear tab iteration.

For instance, I use tab reordering to group related tabs together in a way that makes it easy to navigate to precisely the tab I want by using the conventional iterative alt+tab and ctrl+shift+tab shortcuts along with the alt+number combination. I have this down to a science and can usually get to anything with a minimal number of key presses. I personally don't think that the last-used switcher can really improve on my approach (for me, at least), so I'm a bit concerned about it taking over those keyboard shortcuts.

Mozilla tries to accommodate those of us who prefer linear iteration by rebinding the old tab switching functionality to ctrl+pageup and ctrl+pagedown. These are not particularly good keyboard shortcuts to use for much of anything. In order to hit those on a conventional desktop keyboard, you have to either move your left hand completely across the keyboard or move your right hand off the mouse, both of which are extremely disruptive to browsing workflow. It's even worse on laptop keyboards where you sometimes have to hold down a function key for pageup and pagedown.

In the future, the developers plan to add support for displaying the tab previews in a grid view, much like the Mac OS X Expose feature. Users will also be able to close the tab associated with a thumbnail preview by hitting "w" while using ctrl+tab to rotate through the list.

The rendering of the previews is pretty decent and it has some nice aesthetic flourishes. For instance, the tab previews have reflections and are displayed on a translucent black frame with rounded corners. The translucent frame was rendered properly on Windows XP but showed up as an opaque rectangle sheet on Linux. One minor (and probably unavoidable) issue that I noticed with the thumbnails is that they don't include plug-in content, so you end up with empty holes in the page where Flash media is embedded, for instance.

Awesome Bar



In addition to the changes that have been made to the tab switching interface, the alpha release also adds some smarter filtering mechanisms for the Awesome Bar. Users can now include sigils in Awesome Bar queries to narrow down the results. For instance, if you want the bar to only show matches from bookmarks, you type an asterisk. You can also use a carat to limit the search to bookmarks or a plus sign to match against tagged pages. You can also search against URLs by using an at sign and match only against titles by using a pound sign. New configuration options can be used to make any of those filters enabled by default.

These Awesome Bar enhancements offer a lot of useful functionality (especially the bookmark filter) and also demonstrate the potential for the Awesome Bar to move beyond simple search operations and into the realm of command behaviors. For more details, check out this blog entry.

Web developers



Firefox 3.1 alpha 1 also has some great stuff for web developers. The Gecko rendering engine got some long-awaited CSS3 features like text-shadow, box-shadow, and border images. The shadow features have been around for a long time in Opera and WebKit and are also part of the Acid3 test. Another significant addition is the HTML5 Canvas text API. This is an area where Firefox seems to be a bit ahead of the curve—the Canvas text functions are still in the draft stage and aren't implemented by other browsers yet.







CSS text shadow demo from CSS3.info

Firefox 3.1 alpha 1 is available for download from the Mozilla web site. Binaries and installation instructions are available for all three major platforms. Since this is an early alpha release and is intended primarily for developers, we recommend that users create a separate profile for testing it. For more details, check out Mozilla's official release notes.