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 struc
![XPCOM - Mozilla | MDN](https://cdn-ak-scissors.b.st-hatena.com/image/square/e51bd6dc33a667d35eb4146698a198e55ff92d6e/height=288;version=1;width=512/https%3A%2F%2Fdeveloper.mozilla.org%2Fstatic%2Fimg%2Fopengraph-logo.72382e605ce3.png)