On 9/7/07, Pravin <[EMAIL PROTECTED]> wrote:
> As per my understanding mozilla uses plug-in architecture to increase
> its functionality at runtime. For this, it uses plugins and extensions
> which are in form of  DSO's (Dynamic shared objects) (ie. .so .dll
> etc...).
> And it uses dlsym() and dlopen() like application programming
> interface for dynamic linking loader to activate the DSO's as and when
> they are needed.
>
That's how plug-ins (like flash) work. AFAIK, they can be used after
installation without restarting the app.

Extensions are more complicated. Most consist of XUL overlays and JS
attached to them, as well as XPCOM components. The XUL overlays modify
the application's UI when applied, and currently they are applied at
the master document's (usually window) load time. While there is now a
way to load XUL overlays dynamically, it doesn't work as well as the
normal load-time overlays.

The JS code in nearly all extensions does some initialization on
application startup or when a window it overlays loads. It's
impossible to implement installation-without-restart for extensions
without changes on their end.

To sum up, implementing install-without-restart would involve at least:
- fixing document.loadOverlay
- designing API for extensions to rely on for initialization, instead
of startup and load events they're currently using, documenting it
- writing the code to install extensions without restart
- fixing the issues that come up when people start porting their
extensions to the new mechanism

This was planned for Firefox 3, but was dropped due to lack of resources.

Upgrading/uninstalling is even harder, because you need a way to undo
all the changes an extension made to the UI. We currently don't even
have a way to "unload" overlays.

Also I'm afraid that the code extensions will have to include to
support (un)install-without-restart would be under-tested, because it
would often have to be different than the usual startup code and it
would only be run once.

Nickolay
_______________________________________________
dev-tech-xpcom mailing list
dev-tech-xpcom@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-xpcom

Reply via email to