XPCOM

An Introduction to XPCOM

A tutorial from IBM developerWorks: Tutorial

XPCOM is a cross platform component object model, similar to Microsoft COM. It has multiple language bindings, allowing XPCOM components to be used and implemented in JavaScript, Java, and Python in addition to C++. Interfaces in XPCOM are defined in a dialect of IDL called XPIDL.

XPCOM itself provides a set of core components and classes, e.g. file and memory management, threads, basic data structures (strings, arrays, variants), etc. The majority of XPCOM components are not part of this core set and are provided by other parts of the platform (e.g. Gecko or Necko) or by an application or even by an extension.

Documentation

XPCOM API Reference
Documentation of core components, interfaces, and functions provided by XPCOM.
XPCOM changes in Gecko 2
A number of changes in Gecko 2 affect compatibility of XPCOM components. This article details those changes.
String, hashtable, array and stream guides
Using the basic data structures.
XPCOM Glue
The XPCOM Glue allows using XPCOM utility functions and classes, without having a dependency on unfrozen parts of XPCOM (xpcom_core.{dll,so,dylib}).
Creating XPCOM Components
This book provides a tutorial about building an XPCOM component that controls browsing behavior.
How to Build an XPCOM Component in Javascript
Quick-start guide for writing JavaScript components
How to Build an XPCOM Component in C++
Don't let extensions in the title fool you - the article is mainly about binary components Linux and Windows HowTo, Windows HowTo, Redux, OS/X HowTo
Using XPCOM in JavaScript without leaking
Using XPCOM in JavaScript (also known as XPConnect) is an environment where memory management issues are not obvious. Despite this, it's easy to write JavaScript code that leaks, because some of the objects you're dealing with are reference-counted behind the scenes.

View All...

Community

Tools