[sorry about the screwed up reply, i'm away from home and it's screwing up my
mail relaying]
On Thu, Dec 21, 2000 at 03:04:01PM -0800, John Bandhauer wrote:
> Ari Heitner wrote:
> > So I'm embedding mozilla, and I want access my XPCom objects from JS. I
> >
> > the question is, what's the rule for maing those type library files
> > available?
>
> xpcom only sees .xpt files in the 'components' directory. In a
> debug build, changes to xpt files are autdetected on every
> application startup. In release builds you need to force an
> autoregistration programatically (either via
> nsIInterfaceInfoManager::autoRegisterInterfaces()
> or using the autoRegister method on nsIComponentManager of via
> whatever mechanism the installer provides if you are using the
> installer).
Right. Sounds good.
Except ... I don't have a 'components' directory :) or release builds or
debug builds.
I have automake and autoconf. Sometimes with -g and -D_DEBUG. Sometimes not.
Install is either 'make install' or a custom web-based installer...
And an application that uses the gtkmozembed library (along with many
others). I register components with the component manager on startup, since
I don't have rights to the system mozilla directory.
Where might xpcom see (or be directed to see) xpt files in an arbitrary
application, in an arbitrary location?
cheers,
ari
PS i guess i should give a better background if anyone's interested.
i'm hacking Sash, which is a linux rewrite of IBM's 'doze- (and IE-) based
weblication tool (slick windows version at sash.alphaworks.ibm.com).
Weblications are JavaScript-based applications, largely HTML/DHTML/XML
content (filled in with system libraries exposed to JS). Weblications and
their support libraries can be installed on a per-user or on a system wide
basis. The libraries ("extensions" and "locations") are XPCom components
accessible from JS. The Sash runtime loads the appropriate extension
libraries dynamically (and explicitly), after reading a weblication's
description file.
The ability to install or uninstall an extension is important to sash, as is
maintaining per-weblication access rights to libraries (for security
purposes). So I'm not sure the standard mozilla "register a component
library once and it's available forever" practice (which mozilla does with
its own libraries at install time) will work for sash. That's why we've been
registering XPCom components explicitly at weblication startup. If I was
going to maintain mozilla- (or windows com-) style component databases, i
think we'd need to have a bunch of separate such databases, and be able to
use several simultaneously.
i'm not sure that was totally lucid :) i'll be glad to take
suggestions/questions/comments/snide remarks ..