Mozilla Technology Overview
- 1 Introduction
- 2 Important Platform Technologies
- 3 Software Products Built on Mozilla
The Mozilla Platform is made-up of layers of separate technologies that go together to create various browser, Internet, and communication products. These projects all benefit from the same cross-platform, modular architecture.
Important Platform Technologies
Netscape Portable Runtime (NSPR) - http://www.mozilla.org/projects/nspr/index.html
The Netscape Portable Runtime (NSPR) provides a platform-neutral API for system level and libc like functions. The API provides platform independence for non-GUI operating system facilities. These facilities include threads, thread synchronization, normal file and network I/O, interval timing and calendar time, basic memory management (malloc and free) and shared library linking.
- API Reference - http://www.mozilla.org/projects/nspr/reference/html
- Good example showing File I/O using NSPR -
Gecko (Embeddable Browser Engine) - http://developer.mozilla.org/en/docs/Gecko
Examples of XPCOM being used:
- C++ - http://lxr.mozilla.org/seamonkey/source/toolkit/xre/nsAppRunner.cpp#2683
- JS - http://lxr.mozilla.org/seamonkey/source/toolkit/content/nsDragAndDrop.js#303
Example: Adding a Bookmark in Firefox -
XUL (pronounced "zool") is Mozilla's XML-based user interface language that lets you build feature rich cross-platform applications that can run connected to or disconnected from the Internet. These applications are easily customized with alternative text, graphics, and layout so they can be readily branded or localized for various markets. Web developers already familiar with Dynamic HTML (DHTML) will learn XUL quickly and can start building applications right away.
Example XUL File (browser.xul) http://lxr.mozilla.org/seamonkey/source/browser/base/content/browser.xul
Extensions are small add-ons that add new functionality to Mozilla applications such as Firefox and Thunderbird. They can add anything from a toolbar button to a completely new feature. They allow the application to be customized to fit the personal needs of each user if they need additional features, while keeping the applications small to download.
Modifying the Browser: AdBlock (show blocking an image from yahoo.com or Flash) https://addons.mozilla.org/firefox/1865/
Whole new Applications: ChatZilla (we'll use it later).
Software Products Built on Mozilla
"Mozilla" vs. Firefox
- Firefox (http://www.mozilla.com/en-US/) -- XUL based Gecko web browser.
- Camino (http://www.caminobrowser.org/) -- A Gecko web browser that uses native Cocoa APIs for the GUI. See http://www.caminobrowser.org/press/screenshots/apple.png)
- Thunderbird (http://www.mozilla.com/en-US/thunderbird/) -- XUL based Gecko email client.
- Eudora/Penelope (http://wiki.mozilla.org/Penelope_Releases) -- An email client built on-top of Thunderbird as an extension. Originally developed by Qualcomm, and now open source and run through Qualcomm/Mozilla.
- Sunbird and Lightening (http://www.mozilla.org/projects/calendar/) -- XUL based Gecko calendar clients.
- Miro (http://www.getmiro.com/) -- formerly Democracy, an Internet TV application dedicated to open standards and practices for web TV.
- Songbird (http://www.songbirdnest.com/) -- Desktop media player
- Open Komodo from ActiveState (http://www.activestate.com/openkomodo/) -- A developer tool targeting web developers and script language programmers.