XPCOM (Cross Platform Component Object Model) is a cross-platform component model from Mozilla. It is similar to Microsoft COM and CORBA. It features multiple language bindings and IDL descriptions thus programmers can plug their custom functionality into the framework and connect it with other components.
XPCOM is one of the main things making the Mozilla application environment an actual framework. It is a development environment that provides the following features for the cross-platform software developer:
The flexibility to reuse the XPCOM components from the Gecko library and develop new components that run on different platforms facilitates rapid application development and results in an application that is more productive and easier to maintain. The networking library, for example, is a set of XPCOM components that can be accessed and used by any Mozilla application. File I/O, security, password management, and profiles are also separate XPCOM components that programmers can use in their own application development.
XPCOM adds a lot of code for marshalling objects between different usage contexts (e.g. different languages). This leads to code bloat in XPCOM based systems. This was one of the reasons why Apple forked KHTML to create the WebKit engine (which is now used in several web browsers in various forms, including Safari and Google Chrome) over the XPCOM-based Gecko rendering engine for their web browser.
The Gecko developers are currently trying to reduce superfluous uses of XPCOM in the Gecko layout engine. This process is commonly referred to as deCOMtamination within Mozilla.
- Jorge O. Castro (June 15, 2004). "Ars Technica sits down with Scott Collins from Mozilla.org". Ars Technica.
- Ryan Paul (September 9, 2008). "Why Mozilla is committed to Gecko as WebKit popularity grows". Ars Technica.
|Look up xpcom in Wiktionary, the free dictionary.|
- XPCOM API Reference
- XPCOM Project Homepage
- XPCOM Part 1: An introduction to XPCOM
- A slightly out-of-date but still useful book that talks about XPCOM
- A Simple XPCOM Tutorial