System info: Firefox 1.5+, Linux (FC4), gecko_sdk 1.8

I have a questions about building and packaging (xpi) an extension that uses 
C++ XPCOM objects.  Namely, does the C++ code get compiled and distributed as a 
shared library (.so)  or what gets packaged into the  .xpi file?

I have successfully built a simple firefox extension in linux.  It has a single 
C++ XPCOM component.  I am able to load firefox and see my extensions working, 
including the calls to native code.  I can package it up as an .xpi and install 
it successfully on both of my systems.  But it only works correctly on the 
system it was built on.  When I run Firefox on the 2nd system the extension 
loads (I see my debug "alerts" and XUL widgets appear), but when the XPCOM 
component gets loaded I get this error:
   TypeError: Components.classes['@foo.com/pm;1'] has no properties

I assume this is because my native library is not correctly packaged or 
registered.

My .xpi looks like this:
    chrome.manifest
    install.rdf
    chrome /
         pm.jar    
    defaults /
        preferences /
            defaults.js
    components /
        pm.so
        IPMObj.xpt

Any tips appreciated.  I've walked through the extension tutorial and can't see 
any reference to how the native components should be packaged.

Thanks,
Bob





_______________________________________________
dev-tech-xpcom mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-xpcom

Reply via email to