Mozilla announced the official release of Firefox 3 beta 1 early this morning. The first Firefox 3 beta, which is available for download from Mozilla's servers, offers some hot new features for users and web developers.

The beta release was originally scheduled for July, but was delayed as a result of performance regressions. Back in July, Mozilla changed the roadmap and stated that pre-beta milestone releases would occur loosely every six weeks until the program was ready for a beta release. After the roadmap change, Mozilla issued the alpha 7 and alpha 8 releases prior to this beta, which is considered Milestone 9.

Mozilla's quality standards for betas dictate that the software must have all planned features fully implemented, must be stable and usable enough for daily browsing for a large number of people, and should display the vast majority of sites without serious regressions relative to the prior version. Now that Firefox 3 has met that standard, beta releases will be issued consistently until all of the implemented features are finalized and Firefox 3 matches or exceeds Firefox 2 in performance testing. At that point, Mozilla will issue release candidates to resolve last-minute problems and regressions before the official release. The big focus during the beta release cycles will be on quality assurance and bug fixing.

Firefox 3 delivers an impressive assortment of new features and interface improvements. There are lots of changes under the hood as well, which improve performance and reduce resource consumption. Firefox 3 is built on top of Gecko 1.9, the new version of Firefox's HTML rendering engine. In Gecko 1.9, much of the underlying rendering code is now performed with Cairo, an open source vector graphics software library that can leverage hardware accelerated rendering. As we have previously reported, the Gecko 1.9 rendering engine can pass the Acid 2 test, a CSS test case developed by the Web Standards Project. Several impressive additions to Firefox 3 were made possible by the Gecko overhaul, including support for full-page zoom.

The inclusion of the Places feature is another major architectural improvement in Firefox 3. The Places system, which was originally planned for Firefox 2, is a cohesive storage framework that leverages a SQLite database rather than flat files and unifies bookmark and history storage. In Firefox 3 beta 1, the Places system is almost completely finished. New user interfaces for bookmark management have also been created to give users access to the new capabilities—like support for bookmark tagging—that are made possible by the Places system. A new star icon adjacent to the URL text box uses the Places system to simplify the process of bookmarking a page. In the URL autocompletion box, stars are shown next to bookmarked pages.

The Places system supports elaborate bookmark search queries, which can be associated with a new kind of smart bookmark. A useful selection of smart bookmarks that use Places queries are included by default in the Places folder in the bookmarks toolbar. I haven't been able to find documentation for the query language yet, but the following example provides some insight into how the query system works:

place:folder=2&folder=287&queryType=1&sort=8&minVisits=1&maxResults=10



That example, which is taken from the Places folder in the bookmarks toolbar, will list the most frequently visited starred pages. The new bookmark system really has a lot of awesome goodies for addon developers. There is a really nice new scripting API for bookmark and history queries and infrastructure is under development for custom bookmark containers which will make it possible to, for instance, integrate access to bookmarks stored in a remote web service directly through the Firefox bookmark user interface.

The Places system offers so much new functionality that we can't even begin to address it all in a single article at this time. There are also lots of new JavaScript features like support generator expressions, iterators, expression closures, and the getElementsByClassName method. For more insight into Firefox 3 scripting improvements and architectural features that are of relevance to software developers, keep an eye on Open Ended, Ars Technica's journal for open source software.

The file downloading infrastructure has also been overhauled in Firefox 3. The download manager user interface has been completely redesigned and now includes a search text box for filtering completed downloads. The new download manager also supports integration with the user's anti-virus software and has better support for resuming paused or canceled downloads.

The old Save Password dialog has been replaced with a far saner and less intrusive alternative. Instead of displaying a modal dialog every time the user attempts to input login information in a web form, the new system displays password-saving buttons in a thin bar at the top of the screen after login information is sent to a server.

Another impressive addition in Firefox 3 is support for animated PNG images, a feature that will undoubtedly be welcomed by the IceWeasel development community's logo mascot.

There are a lot of little usability improvements that make a big difference. For instance, the address bar autocompletion system can now match against page titles as well as addresses, The zoom setting is now remembered on a per site basis, a new resizer in the navigation toolbar lets users adjust the width the search text box, and page identity information can now be accessed by clicking the page favicon at the left end of the address bar.

Over 11,000 bug reports have been closed and classified as fixed. Many longstanding problems have been resolved, and there are also plenty of improvements to resource consumption. According to Mozilla, over 300 individual memory leaks have been plugged and new architectural features, like the XPCOM cycle collector, have been added to combat memory waste.

Firefox 3 beta 1 is not intended for a mainstream user audience. Although beta 1 is considerably more reliable than the alpha releases, there are still issues that need to be resolved before it is ready for widespread public consumption. The beta is useful for web developers who want to experiment with the new features or ensure that their existing sites are compatible with Firefox 3. The beta is also good for experienced users and members of the broader open-source software community who want to participate in testing and bug triaging.

It is highly recommended that users create an alternate Firefox profile or backup your Firefox settings directory (~/.mozilla on Linux) before you test Firefox 3 in order to avoid damaging your configuration data. Users who want to test multiple versions of Firefox side-by-side will have to use the -no-remote parameter.

The official release notes are available on Mozilla's web site, but enthusiasts and developers will probably get more out of the unofficial trunk changelog page at Burning Edge which has useful annotations and tasty Bugzilla links.

Firefox 3 beta 1 delivers an outstanding improvement to the user experience. Unlike Firefox 2, which was a bit light on new features, Firefox 3 is practically overflowing with shiny new goodies. I've been using the alpha nightly builds as my primary browser for quite some time now and it has been very exciting to see new features landing every week (and sometimes painful to experience the occasional frustrating regressions). Now that we are in the beta cycle we can expect to see the reliability of the new features improve rapidly as the focus shifts towards testing and quality assurance. Despite delays and other setbacks, Firefox 3 is shaping up to be an outstanding web browser that delivers innovative new technologies while retaining Firefox's signature ease of use.