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