Bug#571596: Iceweasel do not start after removal of xul-ext-torbutton

Mike Hommey mh at glandium.org
Fri Oct 8 08:23:19 UTC 2010


On Thu, Oct 07, 2010 at 10:21:19PM +0200, Jérémy Bobbio wrote:
> On Thu, Oct 07, 2010 at 09:47:15PM +0200, Mike Hommey wrote:
> > > The xul-ext-torbutton package in Debian displays a quite annoying
> > > behaviour. It can be reproduced by the following steps:
> > > 
> > >  1. Install Torbutton system-wide by installing xul-ext-torbutton.
> > >  2. Start Iceweasel for any existing profile or create a new one.
> > >  3. Quit Iceweasel.
> > >  4. Remove Torbutton by removing xul-ext-torbutton.
> > >  5. Trying to start any profile that has been opened while Torbutton was
> > >     installed, now results in Iceweasel silently failing to start.
> > > 
> > > As pointed by Ruud van Melick in #571596, this can be worked around by
> > > manually disabling the extension through the Add-ons panel before
> > > removing the package. After a succesful start using "-safe-mode", next
> > > start is fine as well. [...]
> > 
> > Does one need to actually use torbutton to trigger the problem or
> > installing/uninstalling is enough?
> 
> Starting Iceweasel with an existing profile or creating a new one while
> xul-ext-torbutton is installed is enough. If a profile has not been
> started between installation/uninstallation, it is not affected.

So, I was able to reproduce the issue, and the blame is shared between both
iceweasel and torbutton. The problem here is that torbutton overrides
one of the core components of iceweasel (exthandler), and as such
iceweasel uses torbutton's. After torbutton removal, iceweasel fails to
initialize the exthandler component because it disappeared, and thus
can't start.

I think this is a core problem in iceweasel/gecko (which also applies to
other gecko-based applications), and I think the best we can do in a
timely manner, without waiting for an absolute right fix is to use
dpkg triggers.

The way it would work is that dangerous extensions such as torbutton
would send a trigger to iceweasel and other packages it would break
(icedove, iceape...), which name we'd agree upon (how about
xulrunner-autoreg?) and iceweasel and other packages would do the right
thing.

Why triggers ? There are several reasons for that (all afaik):
- We don't need to add new executables in /usr/sbin or wherever else.
- You don't need to check if a script exists before executing it.
- Triggers even work (as in, don't fail) when the targetted package is
  not installed.
- Triggers also work (as in, don't fail) when the trigger is not
  listened to by the targetted package.

What do you think?

Mike



More information about the pkg-mozilla-maintainers mailing list