more communities

The past month has seen new versions of each of the top three browsers released. Internet Explorer 9, Firefox 4, and Chrome 10 have all just come out, each touting faster javascript performance, improved HTML5 support, better standards compliance, and more customization tools and features. The world wide web is a very different place now than it was even a couple of years ago, and browsers have progressed significantly in the past few years. In this review, we will take a closer look at these three browsers and others, to see what the ultimate Super User should use to browse the internet.

The Contestants

According to Wikipedia’s article on usage share of web browsers, synthesized from usage statistics collected by various companies including Net Applications and Stat Counter, the top five web browsers are Internet Explorer, Mozilla Firefox, Google Chrome, Apple Safari and Opera, in that order. Usage share varies dramatically between regions, but global averages are shown in the following chart:

We took a look at the latest versions of each of these browsers, comparing factors such as their installation and startup times, JavaScript performance, HTML5 features, standards compliance, and features. The following versions of each browser were used:

Testing Setup

Each browser was tested on the same system, my HP Pavillion dm4t, on a fresh Windows 7 Professional x64 installation, with the following relevant specifications:

Intel Core i5-M430

4GB DDR3 RAM

ATI Mobility Radeon HD 5450

7200 RPM SATA HDD

Fresh installations of each browser were used. Before running benchmarks, each browser was run once to acknowledge first-run dialogs and let the browser configure itself. Other than this, the tests were started with default profiles, and no extensions or add-ons installed.

Initial Tests: Installation and Startup

People rarely want to wait when they fire up their browser, so we measured each browser’s startup time and how long it took to run the installer. I asked on Super User for recommendations of software to measure installation times, but nobody could find any. I ended up writing a quick little app to do it myself. The program allows you to select a file, then starts a timer when you run the file. The timer stops automatically as soon as the file exits. To benchmark startup times, I used Passmark AppTimer. Install times were one area with pretty dramatic differences. Firefox, Chrome and Opera all installed in under half a minute. Internet Explorer and Safari took notably longer. IE9 took nearly 2 minutes to run the initial installer, and then required a reboot. This is likely because of how deeply Internet Explorer is integrated with Windows. Safari also required a reboot, taking a little under 1:30 to install.

You only have to install your browser once though, so while long installation times can be frustrating, users will likely forget them quickly. Startup times are much more applicable though. For each of the browsers, I tested how long it took for the browser to open and load the Google home page.

IE9 took 15 times longer to start up than Chrome and Opera did, but all started very quickly, in under a third of a second. Start-up times will be affected by the speed of the hardware, particularly if you are using an SSD. This testing was also done with clean browser profiles. Most browsers open quickly when they are first started, but once you start to accumulate web history, add-ons, bookmarks, and other cruft, the startup times can decrease significantly. In the future, I will be trying to find a way to compare how browsers’ startup times increase over time.

Browser Speed

As web apps become more prevalent, a browser’s speed becomes more important. I used two common JavaScript benchmark tests to measure each browser’s JS performance: SunSpider and V8. These tests run various intensive calculations in JavaScript, and test how quickly the browser can complete them.

The SunSpider benchmark gives a result in milliseconds. The lower the score, the faster the browser completed the test, so a lower score is better in this case. IE9 scored the fastest time at 258.7 ms. Chrome, Firefox and Opera all scored nearly the same, while Safari’s score was much higher at almost 400 ms.

The v8 benchmark test gives the browser a score; the higher the score the faster the browser’s JavaScript engine. Google Chrome scored the highest on this test, at 8033, while IE9 was the slowest this time at 2206. Google uses this benchmark to tune Chrome’s JavaScript performance, so it’s no surprise to see their browser ranking the highest in this test.

What these two graphs compared really show is that browser benchmarks are overall not particularly useful for determining how fast a browser actually is. One can pick out some trends – for example, Safari performed poorly in both tests – but when one browser is the fastest in one test and the slowest in another, we see that the tests don’t mean as much. Real world usage is what makes the difference.

As more applications move into “the cloud” as web apps, and particularly with HTML5 features being used to deliver graphical content, the graphical performance of browsers is also worth measuring. For this test, we used the Microsoft Test Drive FishIE Tank, which shows a simulated scene using HTML5 with fish swimming in an ocean scene. The test is graphics-intensive, and demonstrates the 2D accelerated graphics in some modern browsers. IE9 and Firefox both use Windows Direct2D API for accelerated 2D graphics. The test was designed to showcase Internet Explorer’s capabilities, so note that there will be a bias in IE’s favor here. The test measures the frames per second (FPS) of the animation as an increasing number of fish are added to the simulation.

IE9 unsurprisingly performed the best. Firefox had the next best performance, though it dropped down at 250 fish. Chrome did not score as high as Firefox, but held on longer, making it to 250 fish before losing performance. Safari outperformed Chrome at first, but like Firefox, only made it to 100. Opera could barely run the simulation at all, scoring a mere 7 FPS with 50 fish.

Standards Compliance

Acid Test

The better a browser conforms to web standards set by the w3c, the more likely modern webpages are to render correctly. The Acid tests are a series of tests designed to test browsers’ standards compliance with CSS and HTML. All of the browsers I tested passed Acid1 and Acid2 with scores of 100%. Acid3, the latest test, was not handled quite as well by some. The Acid3 test renders a series of colored boxes on the screen, and must get to 100/100 and look exactly like the reference rendering provided. Most browsers tend to pass or almost pass the Acid3 test. However, Acid3 is an artificial test which browser developers can target specifically even if the browser doesn’t comply with all of the standards.

The HTML5 Test

HTML5 introduces many new browser features, including embedded video, improved form elements, local storage, offline webapps and geolocation. The HTML5 Test is an independently developed browser test which detects the browser’s support for various HTML5 features. Browsers get points for each feature they implement fully, and bonus points for optional features not required by the HTML5 specification. The maximum possible points would be 400 for a browser that fully implemented all of the specifications.

None of the browsers got a full score of 400; Chrome scored the highest with 288 points and 13 bonus points. Firefox got the next best score with 240 points and 9 bonus points. Internet Explorer – despite being heralded by Microsoft as full of HTML5 features – got only 130 points and 5 bonus points. HTML5 Video is one of the features that many are hoping will liberate the web of Flash-based video players. Browser manufacturers and content distributors have yet to standardize on a codec though. Codecs are like drivers, but for videos: depending on how the video is saved, you need a certain codec to view it. H.264 is the most prevalent codec today, but is not licensed freely, so some popular browsers like Firefox have declined to implement it. Google introduced the WebM codec last year, as an efficient and open-source alternative to H.264. YouTube has started supporting HTML5 for some of its videos, using both the WebM and H.264 codecs. Part of the problem with a lack of agreement on web codecs is that content distributors must encode their videos multiple times if not all browsers support their codec of choice. The HTML5 test checks which of the common codecs a browser has installed. Chrome supports the most, with H.264, Ogg/Theora and WebM. Safari on Windows supports none, while IE9 supports only H.264. Opera and Firefox both support Ogg/Theora and WebM, but no others.

Customization

Add-Ons and Extensions

Most websites will look and behave mostly the same regardless of which modern browser you use. What really makes certain browsers shine is their options for customization. In past years, Firefox was heralded for its extensive add-on library, but all five of these browsers now have add-on galleries.

Most of the add-on sites do not list exactly how many add-ons they have, though the most active add-on sites are for Firefox and Chrome.

User Scripts

Greasemonkey is a Firefox add-on which was released in 2006 to allow users to create small JavaScript files that manipulate items on the page. These scripts are called user scripts, and there are currently over 65,000 user scripts on the official userscripts.org site alone, with many others posted elsewhere on the web. Google Chrome supports user scripts natively without needing an extra extension. Opera, Safari and Internet Explorer can also support them, but tend to be less widely tested and supported by user script developers. There is a large collection of user scripts on stackapps.com for adding functionality to Stack Exchange sites like Super User. For example, I created a user script that shows the editing preview side-by-side with the markdown text; check it out!

Appearance

Firefox, Chrome and Opera all support browser skins to change the look of the browser. Internet Explorer and Safari do not have any native support for this.

Security

Most malware comes from visiting malicious or infected websites, so having a browser which will protect you against these threats is important. Browser security is a complex topic, and could fill an entire post in and of itself, but here are a few factors to consider.

Sandboxing is a technique where a web browser isolates each page as a separate process, and prevents it from accessing other pages or other files on the system. Plugins like Adobe Flash Player and Adobe PDF Reader can also be sandboxed. If a malicious script runs in one tab, it is unable to compromise the rest of the system – theoretically – as the whole process runs at a lower privilege level. Currently, the only of these browsers which support sandboxing are Internet Explorer 9 and Google Chrome. Only Chrome sandboxes plugins like Flash and PDF Reader, giving it an edge in security. The following video explains how sandboxing works:

[youtube]29e0CtgXZSI[/youtube]

The annual Pwn2Own contest pits security researchers against browsers, with a cash prize and ownership of the compromised computer for the winners. Google Chrome is the only browser which has yet to be compromised in the Pwn2Own competition, which is largely attributed to its sandboxing security.

Of course, you would prefer never to be exposed to a malicious script in the first place. Most browsers now have an option to check a database of known malicious sites, and will try to prevent you from visiting them. Chrome and Firefox both use Google’s SafeBrowsing database to check whether pages may be hazardous. Internet Explorer uses Microsoft’s SmartScreen Filter. Neither Opera nor Safari supports any such feature.

And the Winner is…

It all comes down to what you, as a user, need. Firefox and Chrome are the most customizable browsers, and rank similarly in speed. Firefox and Internet Explorer have an edge in accelerated 2D graphics, but Chrome can play more HTML5 videos and implements the most HTML5 features.

Overall, despite marked improvements in standards compliance, Internet Explorer 9 still lags in supported HTML5 features, Acid3 compliance, and video codecs. While it will work fine for many users, the true super user will likely find it inadequate. Safari on Windows has a poor user experience, is comparably slow, and lacks many HTML5 features. Opera seems to be hovering in the middle – not excelling in any one category, but consistently performing well.

Due to its lightning-fast install and startup times, excellent JavaScript performance, HTML5 implementation progress, excellent security, and advanced features which require add-ons for Firefox, such as user scripts and the HTML inspector, as well as more video codec support, we award Google Chrome the distinction of being the Spring 2011 Super User Browser of Choice. Nevertheless, all five of these browsers performed admirably, and are far ahead of where browsers were even a year ago. If you’ve been using the same browser for years, it might be time to give something else a try, because no matter which you pick, it’s almost certain to be speedy and work well.

Interesting article. I’d like to add that Opera has never been targeted at the Pwn2Own contest. Thus, only the very low number of security advisories over time and the vendor’s fast reaction time hint at a presumably high security level.

Besides IE9, Firefox performs impressively well in Fishtank. I wonder how this speed comparison would look like on Linux and MacOS. Interestingly, in Opera’s (software) renderer hardly drops below 10fps with 100 fishes on my 3 years old MacBook.