The Netscape Communicator Suite source code was released as open source in 1998 under the guise of the Mozilla project, with the hope of breathing new life into it after heavy loss of market share to Microsoft's Internet Explorer (IE). Soon after, AOL bought Netscape and continued to support Mozilla. After what many felt was an overly long interim period, Mozilla 1.0 was released in June 2002. Before that, version 6 of the Netscape suite, based on the Mozilla code, was released to poor reviews. Netscape 7 was released around the time of Mozilla 1.0.1, to better reviews.
Around this time, a few developers within the Mozilla project who were dissatisfied with what they saw as poor management and feature bloat forked the code to create a new browser. Originally code-named "m/b" (for "mozilla/browser," where it lived in the source tree), it underwent a few more name changes before finally becoming Firefox. The Mozilla Foundation, once it became independent, eventually replaced the Mozilla browser with Firefox, and it became the showcase of their new set of tools, which also included the Thunderbird email client and the Sunbird calendar application. Development of the Mozilla Suite slowed to maintenance and security updates only.
The ethos and mandate of this new browser was simple--to create a lightweight browser that was easy to use. The goal was to give control back to users, and to make web browsing fun again. And right from the early days, the project did tap into a new spirit. Early adopters became fans, despite the many issues that needed to be fixed and the features that needed to be completed. With each new preview release, the number of downloads grew. The 1.0 preview release achieved eight million downloads in about a month. By the time 1.0 was released, it already had a very strong foothold. Firefox became the first open source project to reach the masses. This was helped in no small part by community marketing efforts such as spreadfirefox.com. So we have reached the point where we are today. While IE still has the dominant browser market share, Firefox is slowly making inroads into that and bringing energy and innovation back into the arena.
Not so long ago, the browser served one purpose: to view web pages. Other tasks were carried out by client applications. However, client and server are merging rapidly, and the browser has a key role to play in this transformation. And Firefox is leading the way. Web services and applications have replaced hefty client downloads for some applications. From the browser, you can keep up to date with news feeds, read your email, watch movies, and grab the latest tunes for your music library. AJAX is enabling powerful new applications in the browser by using old technologies in a new way. Google is using it with Google Maps and Gmail, and more sites using it are popping up each day. In the enterprise arena, companies are basing more and more of their tasks in the browser. These range from simple time-sheet applications to mission-critical applications. Some companies are already making the switch to Firefox.
The Web is not one platform or operating system. It does not need to be, and should not be, controlled by one company. It is about choice and how to make information available to people in a useful way. Firefox certainly gives power back to users. One of the great advantages of the Mozilla codebase and of Firefox is that it is cross-platform. Say you run Windows at work and Linux at home; in both environments, you can stick with the software that you like and are familiar with. Developers creating extensions can "write once, run anywhere." There has been much scare-mongering and hype recently about browsers being gateways for viruses and spyware. Some of it is true. Firefox is perceived as being more secure than IE, and certainly has a better track record in this area. It would be a mistake, however, to say that Firefox is completely secure. Some would argue that it is more secure simply because it does not have the dominant market share, and is therefore less of a target. This has some truth, but Mozilla is always quick to patch security bugs and release new versions. IE development stalled for many years once it reached market saturation, while Firefox came of age in the time of spyware and phishing. Therefore, Firefox is much better equipped to deal with these threats.
Mozilla's goal from the start was to support and adopt web standards for content. For example, it was the first browser to have nearly complete support for CSS1 and CSS2, while CSS3 is currently being factored in incrementally. Firefox does XML well, not just with content but using different syntaxes behind the scenes, such as RDF. Standards are important; not just because they ensure interoperability and a better user experience, but because they lower the deployment cost for websites. Think of a world where you don't have to test your pages in many different browsers or write hacky workarounds for inconsistencies. Many web developers dream about this. Early reports and previews of IE7 show that there will be greater standards support. This can only be a good thing for web developers, who for many years have been forced to write different versions of their sites to accommodate different browsers. Apple's Safari has a high commitment to web standards, as does Opera. Put all this together, and it means greater interoperability between web services and applications. Ultimately, the user will feel the benefit, too.
Firefox has some excellent tools built in for debugging websites. The JS Console will report any errors and warnings in your script. The DOM Inspector allows you to look at every node in your document to ensure that it is structured the way that you want it. There are many third-party extensions for web developers that aid testing enormously. There are many, many, preferences available for developers and users alike to tweak the way the browser behaves. Type about:config into the location bar and you will be exposed to hundreds of settings. (Warning: make sure you know what you are doing!) I'd recommend that web developers who want to write good markup and code that adheres to standards use Firefox as their primary test base, and then do follow-up testing in other browsers afterwards.
Figure 1. The much-hailed Web Developer Toolbar
One of the main problems that Firefox users encounter is that there are still too many sites out there that only work with IE. There is an ongoing campaign called Mozilla Tech Evangelism to make this better, and in recent builds of Firefox, a new tool called Reporter that facilitates reporting of broken sites has been added. If you are interested, there is an online interface for viewing submitted reports and an always-interesting top 25 list.
Plugins have traditionally been part of the browser environment, for such tasks as watching Flash movies or viewing PDF documents. Something different has evolved in Firefox, and that is the Extension Manager. The front-end access point for users is via the Tools -> Extensions menu item, but the term Extension Manager is used in a more general way for the whole feature, including the back end. Extensions are packages that you can install into Firefox that add a new feature to it, extend existing functionality, or just sit there and look nice. While "infinite extensibility" may be exaggerating a little, there are already a whole host of add-ons out there to carry out a broad range of functionality. There is a well-established community built around extensions to cater to Mozilla developers. The site mozdev.org has for five years been providing tools and free hosting for Firefox- and Mozilla-related projects. Mozilla Update, hosted by mozilla.org, is a one-stop shop for downloading all of the best extensions. Much has been written already about individual extensions, so I won't go down that road except to say that certain ones, such as Greasemonkey, take the spotlight from time to time. Greasemonkey accommodates the addition of scripts to change how web pages look and behave. The Web--your way. The architecture of Firefox, by being standards-based and open, is ideal to such customizations. You just need to look at the categories on Mozilla Update to get a feel for what else is out there.
Figure 2. The Firefox Theme Manager
Two other areas where customization comes into play in Firefox are themes and locales. The Theme Manager (Figure 2) looks similar to the Extension Manager, and like extensions, you can get themes from Mozilla Update. Tired of the default Firefox look? Change it. More themes are coming online all the time, the vast majority being of very high quality. While there is not yet a tool for building themes, don't be put off if you fancy making one yourself. All you need is an artistic streak, and some knowledge of CSS. Themes make Firefox look nice, but more important, are making it available in multiple languages. The more languages Firefox can speak, the wider the user base it will have. The Mozilla Localization Project is tasked with enabling Mozilla software, including Firefox, for a specific language or culture. The process for creating locales is still evolving, but now localizers can register and have their source files checked into the Mozilla CVS source tree. At the time of this writing, there are 38 official locales listed, with others pending, including Vietnamese, Thai, and Hindi.
Firefox 1.0 was released in November 2004. Since then, there have been supplementary releases, mainly to address security and stability issues. The current official release is 1.0.7. In the meantime, however, work has been continuing on the next major release. That release was to be 1.1, but because of all the new features added, it was deemed worthy to be bumped up to a 1.5 version. Firefox 1.5 Beta 1 was released on September 8, 2005, and Firefox 1.5 final is due in November after further beta releases.
Here are some of the new features to expect in 1.5:
-moz-column-gapproperties. There is more information at the Mozilla Developer Center, and you can see it in action at Robert O'Callahan's blog.
<canvas>tag: Scalable Vector Graphics (SVG) is an XML syntax for describing two-dimensional graphics, and is now available by default in Firefox. The
<canvas>tag brings new possibilities for overlayed and floating content, and is implemented in Mozilla on top of the cross-platform Cairo graphics library. Find out more here.
Figure 3. Robert O' Callahan's blog using Gecko's CSS3 multi-column support
Some of these features may seem a little abstract for the average browser user, but there are plenty more visible changes since 1.0, too. These include:
Figure 4. Clear sensitive data with one click
It is certainly clear, judging by the new features and the improvements to existing features, that the Firefox development team are not resting on their laurels. Another nice feature in the works is BitTorrent download support, and even though it is being developed by an external developer, it may lay the foundations of an implementation to make it into the Firefox source tree.
What does the future hold for Firefox? It is difficult to predict, because the web environment is changing shape all the time. But Mozilla is well-positioned both to innovate and to respond to users' needs as they arise, and Firefox will be at the forefront. The Mozilla Project as a whole is now paying more attention to the Mozilla as a platform ideal, as evidenced with the continuing development of XULRunner. This is a run-time environment for Mozilla applications, and eventually Firefox will be deployed using it.
Firefox gives choice to users in the web browsing arena. It is cross-platform, free, and standards-based. Expect it to be around for a long time to come. The future is bright, the future is Foxy!
Brian King is an independent consultant who works with web and open source technologies.
Return to the O'Reilly Network
Copyright © 2009 O'Reilly Media, Inc.