1
edit
Changes
→Discussion
XPConnect's primary reason for existence is to replace handwritten code used in places where native code needs to interact with JavaScript code. An example is the DOM module.
In order for XPConnect to properly function with XPCOM interfaces, it must be declared using [[Researching_XPIDL_and_IDL_Technologies|XPIDL]].
The XPConnect does not support the scripting of MS COM objects. It also does not support any interfaces that are not declared within [[Researching_XPIDL_and_IDL_Technologies|XPIDL]]. While XPCOM objects are mainly supported, it does not support scripting of XPCOM objects that break conventions in XPCOM. E.g. non-standard return types, use of C++ default parameters, assumptions about the underlying C++ type of the object implementing a given interface, etc.