Adding components to XULRunner is simple once you understand how XULRunner registers and saves the components.
After a new component has been written it must be placed in the
app/components/ directory (not
xulrunner/components/). Put both .dll/.js file and the .xpt(s) in there. Unlike extensions, it must be directly in that directory, not a subdirectory. Then you need to make sure that it gets registered.
Most initial problems with components are due to registration.
For new components or interface changes of existing ones to be noticed at all, you need to change the buildID in application.ini to trigger a re-registration of the components.
Alternatively, you can delete
xpti.dat in the user profile directory - that of your XULRunner app, not that of Firefox/Mozilla. It's named after your vendor and app name in application.ini, e.g.