Cross Platform Component Object Model ( XPCOM ) is a platform-independent component model from Mozilla. It works much like CORBA or COM using interfaces. It has various language bindings and interface descriptions, so that programmers can install their own functionality into the framework and connect it with other components.

The model

The Cross Platform Component Object Model is one of many things that make the Mozilla application environment for a framework. It is a development environment that provides the following features for developers of cross-platform software:

  • Component Management
  • File Abstraction
  • Message exchange
  • Memory management

This component model makes almost all of the functionality of Gecko by a set of components, or alternatively available as reusable across platforms available libraries. Applications running on the various XPCOM libraries ( networking, security, DOM, etc. ) want to access using a serial called XPConnect layer of XPCOM, which reflects the different library interfaces by JavaScript (or other ( script ) languages ​​). XPConnect connects the front end with C - or C-based components in XPCOM, and it can be extended including scripting support for other languages ​​: PyXPCOM provides support for Python, PerlConnect and plXPCOM provide support for Perl, and efforts are being made, NET. - to provide and Ruby language support for XPConnect available (as of January 2007).

Using XPCOM components can be in languages ​​that were created for the specific links, write and compile. These components run on many different platforms.

The flexibility to reuse the XP components of Gecko library and develop new components that run on different platforms is facilitated by the rapid application development. The network component, for example, can be used by any application Mozilla. Ein-/Ausgabe, security, password management and profile are as XPCOM separate components, which can use a developer in its own application.