The Many Faces of Mozilla

by Mike Angelo

In Part I of this series, "Mozilla -- A Lizard for All Seasons" we took a closer look at Mozilla, the organization, and its Mozilla software development plan.In Part III of this series, we will take a closer look at the Mozilla web browser suite.

When you see a Mozilla-based application such as the Mozilla web browser (or its Netscape 6 sibling) on your monitor screen, you are not exactly looking at an application or program. Rather what you see is an interactive web page generated by Mozilla and its Gecko layout engine. Please see Figure 1.

Web page is an oversimplification. The Mozilla web browser face and a web page are similar in that the Mozilla Gecko engine lays both out in the same way. Mozilla-the-browser is a combination of text, images, widgets and so forth laid out by Gecko to form an interactive user interface. That interactive user interface is quite similar to a web page, something we will call a "web-like page" here.

Peeling Back the Lizard's Skin

To better understand what the Mozilla applications framework is, and the implications of it within the Linux community, you have to peel back the little, yet powerful, fellow's skin carefully to see what's under all that reptile leather. When you do that, you will find among other things that Mozilla-the-framework is compiled for several platforms (multiplatform) including Linux, Mac OS and Windows.

More importantly, software built to run on the Mozilla applications programming framework or stage is pretty much OS independent and, therefore, cross-platform. That's because software built to run on top of the Mozilla framework deals with the Mozilla framework, not the underlying OS.

Now, look more deeply under Mozilla's skin. You will find that Mozilla-the-framework can build lots more than just browsers; it can also be used to build other Internet clients such as E-Mail, Newsreader, FTP, Telnet, IRC and so forth.

Moreover, custom Mozilla-based client and/or application building is not limited to merely Internet clients. You can build all sorts of applications, such as word processors, spreadsheets and image editors, on top of Mozilla-the-framework too.

Mozilla, the Applications Programming Framework & Stage

The application programming framework face of Mozilla can develop into a wonderful thing for the Linux community, and for the computing community as a whole. Here is why.

Are you a programmer working in the Linux environment? If so, and if you build your software on top of the Mozilla applications programming framework, then the software should be runable on any platform for which Mozilla is compiled, without the necessity of any application-porting overhead. This opens the Windows, Mac OS and other platform-dependant markets to you and to your software products.

On the other hand, are you a Linux user craving the availability of more software to use on your Linux platform? If other-than-Linux-platform programmers develop their software for the Mozilla applications programming stage, then you can run it on your Linux box(es) without those programs being first ported to Linux.

The key here is that as long as the software is developed for the Mozilla applications programming framework, it makes little difference in which OS environment the software is developed. That's because Mozilla fits in between the OS platform and the application.

CPU - OS - Mozilla - Application

And you thought Mozilla was nothing but JABS (just another browser story) didn't you?

In order for all of the above to work, Mozilla must achieve wide acceptance by computer users across several major OS platforms, which could depend upon how well the computing public accepts the Mozilla browser suite. Since Netscape 6 is based upon Mozilla, broad acceptance of the upcoming NS 6 release could play an important role in the widespread development and deployment of Mozilla-based applications.

However, the underlying Mozilla framework package could be included with the Mozilla-based application distribution package. In that case it makes no difference if the end-user already has the Mozilla framework installed.

Building Your Own Mozilla-Based Applications

You can build all sorts of applications on top of the Mozilla applications programming framework. The Mozilla and Netscape 6 browser suites are examples of applications that have been built on top of the Mozilla applications programming framework. So is the ChatZilla chat client -- please see Figure 2.

A good way to ease yourself into Mozilla-based applications programming is to do some simple Mozilla-browser skinning. To do that you will find yourself digging into the chrome and skin directories and files, which Mozilla uses to lay out the interactive web-like page you see when you use the Mozilla browser.

What you will see when you dig into the chrome and skins is lots of XML, JS and CSS. If you author web pages, most likely you are familiar with eXtensible Markup Language (XML), Cascading Style Sheets (CSS) and Java Script (JS). You will also see XUL, (pronounced "zuul") that is pretty much unique to Mozilla. It is a Mozilla implementation of XML that is used to describe the interactive web-like page faces of Mozilla-based applications. Think of XUL as the Mozilla developers' name for an XML-based language used to describe the UI (User Interface). Creating your own Mozilla skin is mostly a matter of hacking the XUL, XML, CSS, JS and so forth that define the chrome and skin, and/or redoing the graphic images and widgets they use.

Easily Create Your Own Branded Mozilla-Based Software

Whether you are an individual web surfer or a business, government or educational organization, web developer, ISP or other commercial entity, you easily can customize the Mozilla browser suite skins to create your own personal or commercial web browser suite. You even can brand the customized browser you build for sale or for free distribution to your friends, associates or customers. Similarly, you can brand and distribute any other applications you build on top of the Mozilla applications programming framework. Please check Getting Started With Mozilla UI Hacking by Ben Goodger and Introduction to a XUL Document for more information about XUL and creating your own skins. (Links in the Resources section.)

One reason you can do this is that the Mozilla framework and browser suite are essentially free and open source under the Mozilla Public License (MPL) and the Netscape Public License (NPL). (Links in the Resources section below.) However, please have your lawyer check the details of these public licenses before you start selling or distributing your own branded version of the Mozilla browser suite or your own Mozilla-based software.

Once you get the hang of modifying the Mozilla browser suite look and feel by hacking the chrome and skins, you should have a good idea of how to build your own Mozilla-based applications. Don't forget the source code is open and mostly C++ and some XUL--whose source is C++ too. If necessary, you easily can hack the underlying Mozilla source code.

Standard of Review

Mozilla the applications programming framework and Mozilla the browser suite are works in progress. Moreover, Milestone 18 is not a public "show and tell" beta or preview release. It is a developer release that the Mozilla open-everything policy allows anyone to download and try. In essence, we are eavesdropping on software development and use a different standard of review than what is used for a public show and tell preview release, such as Netscape 6 Preview Release 3 (NS6-PR3). Therefore, this standard of review is very relaxed. The focus is not on problems with the software. Rather we let you know about the software, what it is expected to do when finished and provide a general overview.

Conclusion

Mozilla offers much more than meets the eye. It's an organization and also an open-source software product now in development, Mozilla 1.0.

The multi-platform Mozilla software development framework is particularly beneficial to the Linux community. It means that Linux developers who choose to write their programs to run on the Mozilla applications programming framework have access to user markets across OS platforms--without the need to invest in porting.

The Linux community receives further benefit from the multiplatform Mozilla development framework. Mozilla-based software produced by non-Linux environment developers that choose to write their programs to run on Mozilla becomes immediately available for use with Linux and provides a broader variety and depth of software for Linux users.

There is no need to wait for final release of Mozilla 1.0. The daily development builds and Milestone Mozilla releases are pretty decent and stable--at least insofar as the browser module goes. They also are pretty much feature complete.

If you want to try your hand at Mozilla-based application building, go ahead and download Mozilla now and try it. The Mtrunk builds are almost good enough to use for your regular browser. More about that coming up in Part III--please stay tuned.

Resources

Download Info--Official Mozilla Organization Downloads

Main Mozilla Download Page:http://www.mozilla.org/binaries.html

Mozilla Milestone 18 Download site:http://ftp.mozilla.org/pub/mozilla/releases/m18/

Mozilla Milestone Release Notes:http://www.mozilla.org/projects/seamonkey/release-notes/

Mozilla Nightly Builds:ftp://ftp.mozilla.org/pub/mozilla/nightly/(The "Mtrunk" builds are the Mozilla product builds and the "MN6" builds are the upcoming NS 6.0 base builds.)

NOTE: After installing Mozilla, you should go through all the preferences before you take Mozilla on-line for the first time. The Mozilla Organization has set the default Mozilla browser suite preferences to leave you open security-wise and privacy-wise. For example, the default preference are set to "Accept all cookies" and to enable "JavaScript for mail and news". If you consider those to be risky, you might want to change them to more conservative settings.

Other Mozilla Downloads

Mozilla Portshttp://mozilla.org/ports/

Mozilla Organization Materials & Pages

The Mozilla Organizationhttp://www.mozilla.org

Get Involved in the Mozilla Projecthttp://www.mozilla.org/get-involved.html

Mozilla Jargon Filehttp://mozilla.org/docs/jargon.html

Introduction to a XUL Documenthttp://mozilla.org/xpfe/xptoolkit/xulintro.html

The Mozilla Project and mozilla.org by Mitchell Baker, Chief Lizard Wranglerhttp://www.mozilla.org/editorials/mozilla-overview.html

Mozilla & Netscape Public Licenseshttp://mozilla.org/MPL/

Related Articles

"Netscape 6 Preview Release 3--Strike 3: Is NS 6 Out?"http://www2.linuxjournal.com/article.php?sid=4441

"Mozilla & Chatzilla--Real Internet Chatting and Communication"http://mozillazine.org/articles/article1430.html

MozillaQuest--Building Your Own Mozilla-Based Web Browserhttp://www.mozillaquest.com

Load Disqus comments