The next generation: Mozilla Firefox 3

New Fox

© jacktoon, Fotolia

© jacktoon, Fotolia

Article from Issue 91/2008
Author(s):

The next major release of Firefox promises changes to the user interface and serious speed benefits. Firefox 3 seamlessly integrates the Gtk environment and offers a plethora of new features.

After almost a year and a half of development, the next generation Firefox browser release is rapidly approaching. The developers plan to unveil Firefox 3 early in 2008 [1], although Mozilla hasn't announced an exact date.

A beta version of Firefox 3.0 is currently available for downloading and testing [2]. Here, I look at the Beta 3 release. (Beta 4 made an appearance just before this issue went to print.)

Improvements are noticeable, especially with Firefox for Linux. On first inspection, new cross-platform features stand out, such as a new bookmark system called Places [3] or the website zoom function that also zooms any images on the page. Also, numerous new features optimize interaction between Linux and Firefox.

Overview

Starting with a short overview of the key new features in Firefox 3, the new bookmark system, Places, stands at the top of the list. In the new system, bookmarks reside in a flat file, rather than in a static hierarchy of folders (bookmarks.html). The bookmark system relies on tags to organize the bookmarks in a style similar to social networks or blogs. The software stores the tags in an SQLite database (Figure 1).

A Smart Bookmarks option in the Bookmarks toolbar lets you view the Most Visited and Recently Bookmarked bookmarks (Figure 2). A comprehensive API [4] is available to Firefox extension developers and supports extended access to the new system.

Another extremely practical new feature is Firefox's ability to scale the images on a page up (Ctrl-+) and down (Ctrl+-). This prevents altering the layout of a web page you are viewing when you zoom in. In the beta release, there was no way to disable this function.

The developers have also improved the address line in which users enter web addresses. When you enter a URL, the program not only searches in the browser history, but also in the bookmarks. Firefox 3 gives you a two-line display of the matches with the corresponding favicon while you type, making it easier to find a page that you visited previously or stored in your bookmarks.

Additionally, the application marks websites that you access via https. Instead of a stylized padlock, you are shown details about the certificate issuer and owner (see Figure 3). This makes life more difficult for phishers interested in capturing your passwords, PINs, and TANs.

The Acid2 test [5] gives users a reference for compliance with web standards (Figure 4). Previously, Firefox 2 did not pass the test, whereas Firefox 3 complies with all the typical standards and correctly renders the graphic in the test. This puts Firefox on a par with Safari, Konqueror, and Opera.

Firefox has also made some improvements under the hood. Mozilla uses the Cairo [6] library to render page content and draw the program interface. Because of this, Firefox renders complex web pages much faster.

Linux News

One of the most obvious changes in the Linux version is that Firefox now uses genuine Gtk widgets: icons, scroll boxes, and buttons. Previously, the browser did not draw widgets that matched the desktop theme. Firefox 3 now integrates seamlessly and assumes the appearance of all Gtk-based applications such as Gnome or XFCE. Some bad blood between the Mozilla and KDE [7] developers explains why there is still no Qt variant of Firefox to integrate seamlessly with KDE.

Firefox automatically uses preconfigured icons. Where possible, the browser integrates icons from the desktop theme. On top of this, tabs in Firefox – and buttons for closing them – looked like the tents in any other Gtk application. Firefox has stopped trying to look the same on every platform on which it runs.

Previously, Linux users were unable to use the mouse wheel to scroll on the web page as soon as the mouse cursor hit a plugin (i.e., a Java applet or Flash animation) because the plugin captured the wheel's scrolling action, forcing the user to drag the mouse out of the plugin area. This issue has been resolved.

The developers have made serious improvements to the printing system [9]. Firefox versions up to and including 2.x used lpr to address the printing system. This reduced the number of options users had for manipulating the results when printing from the browser.

Firefox 3 now directly accesses the Gtk printing features. Users can access the printing options they are familiar with from other Gnome programs, such as specifying the number of pages per sheet of paper (Figure 5).

Performance

In the past, Firefox was not known for being the fastest browser, but developers focused on improving the performance of Firefox 3. In our lab, I decided to compare Firefox 2.0.0.11 with Firefox 3 Beta 3 using the 32-bit version of Opera 9.25 and Opera 9.5 Beta 2, a 64-bit version that will be appearing shortly, as references. The tests were run on an AMD Athlon 64 X2 AM2 3800+ machine with 2GB RAM and Ubuntu Gutsy Gibbon 7.10 (64-bit).

In the first test, I analyzed how long the browser took to load a complex web page with a CSS layout. To do so, I saved the "CSS Rendering Benchmark" [10] test page locally, opened it in the browser, and recorded the time for complete rendering of the page. A JavaScript embedded in the page handled this. Because the values could fluctuate, I repeated the test 10 times to determine an average. It turns out that Firefox 2 is a little bit faster. On average, it took 692 milliseconds for the benchmark, whereas Firefox 3 took an average of 845 milliseconds in our lab. The developers still have much work to do.

Our next benchmark investigated how long Firefox takes to render a web page with a large table. For this, I used the Load Time Analyzer [11]. Load Time Analyzer measures the time required to completely render a web page [12] and display it. Again, I saved the page locally and reloaded it 10 times, calculating an average value. Firefox 3 clearly outperforms its predecessor in this discipline. On average, it took only 675 milliseconds, whereas Firefox 2 took about 1,002 milliseconds to render the page. This represents a 32 percent performance boost.

After the static website tests, I decided to investigate the JavaScript engine. To do so, I used the JavaScript benchmarks by SunSpider [13]. The benchmarks test a number of non-browser-specific routines and record the times. According to SunSpider, Firefox 3 is 1.13 times faster with JavaScript than Firefox 2, which will make a big difference with popular Ajax-based pages, such as Gmail.

Finally, I investigated how much memory the browser needs, considering that Firefox 2 has a reputation for being a RAM hog. To analyze this, I launched the test candidates with fresh profiles and loaded 10 web pages with considerable content.

Then, I used the Gnome system monitor to investigate the memory consumption of the individual processes. Again, the developers seem to have made considerable progress with Firefox 3: Instead of the 100MB that Firefox 2 required, Firefox 3 only needed 75MB.

The browser's performance is noticeably improved, although Firefox still came in behind the commercial Opera browser (see the "Performance Comparison" table). The Beta 4 version of Firefox appeared after I completed these tests. Mozilla worked on tuning the JS engine for Beta 4, and the performance was significantly better. I added Konqueror 3.5 and 4 to the comparison and found that Firefox Beta 4 was competitive with the alternatives. A 64-bit version of Firefox 3 (currently in development) will provide additional performance benefits.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News