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