скачал исходник firebug, получил из nsIFireBug.idl с помощью xpidl nsIFireBug.h, но че то в этом хедере я не вижу ни одного нормального описания функций, все какие то пустые, так и должно быть, или надо этот хедер как то по другому получать?

В *.idl - только объявление интерфейса. Реализация - в отдельном файле. Если реализовано на javascript, значит в *.js, если на C, значит надо компилировать *.h + *.c. Ну и *.xpt, если интерфейс не стандартный.

Как же ж тогда получить доступ к этому компоненту из C++ приложения, основанное на XULRunner'e?

Может быть я конечно и ошибаюсь, но, скорее всего нет - из C кода особого смысла вызывать библиотечный код, написанный на скрипте, нет. Кроме тех случаев, когда C-код реализует исполнение этих самых скриптов. Я думаю, тут два варианта - если этот код должен вызываться и из C и из JavaScript, тогда надо его переписать целиком на C. Если он должен вызываться только из JavaScript, тогда можно оставить как есть. В xulrunner приложения ведь компоненты тоже встраиваются. Скорее всего, часть логики приложения будет на xul/js, может быть, функциональность компоненты будет востребована только этой частью ?

Если компонент написан js/xul, файл.xpi , можно ли как то вручную установить и зарегестрировать этот компонент, чтоб потом я мог к нему обратится через nsComponentManager?

Если js+xpt находится в папке components, то он должен зарегистрироваться при запуске приложения, насколько я понимаю. Ну, может быть сначала ещё придётся удалить comreg.dat и/или xpti.dat.

Спасибо, Anton, действительно зарегистрировалась компонента, в файлах compreg.dat,xpti.dat, она прописалась,теперь буду пробовать получить к ней доступ через менеджер компонентов, если есть наброски по реализации такого, просьба выложить в эту тему.

Если доступ к компоненту из js - то Components. classes [contract_id]. createInstance/getService (interface_id)
Если доступ к C компоненту из C кода, то (примерно;предположительно ) надо у менеджера компонентов просить class factory по contract_id к тому, что она вернёт делать QI.
C->js наверное тоже реализуемо как-нибудь, но какие там могут быть технические детали я предположить не могу.