Closed Bug 1155012 Opened 9 years ago Closed 8 years ago

Nightly says it isn't the default browser when started from Thunderbird links and the next start

Categories

(Firefox :: Shell Integration, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED INVALID
Tracking Status
firefox40 --- affected

People

(Reporter: bj, Unassigned)

Details

Nightly isn't the default browser two times after I start it from Thunderbird.

Steps to reproduce:
1) Make Nightly the default browser.
2) Close Nightly.
3) Start Nightly from a Thunderbird link.
4) Make Nightly the default browser.
5) Close Nightly.
6) Start Nightly.
7) Make Nightly the default browser.
8) Start Nightly.

Expected:
* Nightly is always the default browser.

Actual:
* In steps 3 and 6 Nightly isn't the default browser.

I don't know how long this has been going on, but not long as I start Nightly from a link occasionally. But I've had Nightly closed three times and seen this behavior in the last day or son. (I don't remember whether the first time was this morning or yesterday.)
Are you still seeing this and/or do you have any idea how to reproduce / under what circumstances this happens?
Flags: needinfo?(bj)
I am still seeing this problem. I just tried at least eight times and Nightly never thought it was the default browser when started from Thunderbird.

I noted several things in my experiments today:

1) If I start Nightly from Thunderbird, exit Nightly, and click a Thunderbird link again Nightly doesn't start. When I then start Nightly from the command line the Thunderbird requested links open (in addition to my saved tabs from last time). The first time I figured this out the tabs from three Thunderbird clicks opened.

2) The pop-up "do you want me to be the default browser" doesn't always appear. In particular it didn't appear the first time I tried this experiment today (and I haven't seen the pop-up on some first Thunderbird clicks after I log in). But when I checked preferences Nightly didn't think it was the default browser. Later successful attempts to start Nightly from Thunderbird produced the dialog.

3) When Nightly thinks it is the default browser and I exit and start Nightly from the command line Nightly still thinks it is the default browser after restart.

4) The message below appears several times in Nightly console output. It is connected to the dialog "default browser" appearing and to clicking the "make default" button. (Obviously no console output when Thunderbird starts Nightly.)

(firefox:26541): GLib-CRITICAL **: g_find_program_in_path: assertion 'program != NULL' failed
(In reply to B.J. Herbison from comment #2)
> 4) The message below appears several times in Nightly console output. It is
> connected to the dialog "default browser" appearing and to clicking the
> "make default" button. (Obviously no console output when Thunderbird starts
> Nightly.)
> 
> (firefox:26541): GLib-CRITICAL **: g_find_program_in_path: assertion
> 'program != NULL' failed

This is helpful. It looks like there's a bug in our Gnome shell integration code.

Where is Nightly installed (ie absolute path) and do you use a PPA or did you manually extract an official Mozilla archive file somewhere? And how do you launch it from the commandline?
Component: General → Shell Integration
Oh, and can you try to check in the Thunderbird options how/where that's configured to launch Nightly, and using which path?
I installed Nightly by extracting an archive file. (At one point the Nightly PPA wasn't updated Nightly.) The location is ~/Software/firefox and I start it from the command line with the command Software/firefox/firefox (or with the full absolute path from my post-login setup script).

I don't know how Thunderbird determines the browser to start, but what I learned this morning is below.

Environment: Ubuntu with XFCE. Looking in xfce4-settings-manager under Preferred Applications the default web browser is "Debian Sensible Browser", but I told Nightly to become the default browser and it is. I double-checked, Thunderbird is starting Nightly and not the older version of Firefox on the system.

I found this page about Thunderbird browser launching:
    http://kb.mozillazine.org/Changing_the_web_browser_invoked_by_Thunderbird
That page doesn't help as network.protocol-handler.app.http isn't in my Thunderbird configuration (and the example shown, /usr/bin/firefox, starts the system Firefox).

The only Thunderbird network.protocol-handler*http* settings are:
network.protocol-handler.expose.http default boolean true
network.protocol-handler.expose.https default boolean true
network.protocol-handler.warn-external.http default boolean false
network.protocol-handler.warn-external.https default boolean false

I found nothing when I searched "firefox" in Thunderbird prefs.js. (And it was the correct file as it changed when I tweaked settings in Thunderbird.)
Flags: needinfo?(bj)
OK. It sounds like what's happening is that when Nightly is run through the symlink used by Debian's "sensible browser" stuff, the GNOME shell service code we're using to try to determine where we are and/or where our wrapper script is, breaks (I'm guessing, mostly, because I don't know exactly how the symlink and/or "sensible browser" stuff works.

Mike and/or Karl, can you help figure out what's going on here and/or fix it? :-)
Flags: needinfo?(mh+mozilla)
Flags: needinfo?(karlt)
Can you tell the result of the following commands at the various steps of the STR:

- xdg-mime query default x-scheme-handler/http
- xdg-mime query default x-scheme-handler/https
- gconftool-2 -g /desktop/gnome/url-handlers/http/command
- gconftool-2 -g /desktop/gnome/url-handlers/https/command
Flags: needinfo?(mh+mozilla)
(In reply to Mike Hommey [:glandium] from comment #7)
> - xdg-mime query default x-scheme-handler/http
> - xdg-mime query default x-scheme-handler/https

Both of these were "firefox.desktop" every time I checked.

> - gconftool-2 -g /desktop/gnome/url-handlers/http/command
> - gconftool-2 -g /desktop/gnome/url-handlers/https/command

The http and https versions stayed in sync.
* The both started out as "/home/bj/Software/firefox/firefox %s".
* I exited Nightly and the values were unchanged.
* I clicked a link from Thunderbird, and Nightly opened with a "default browser" prompt and the values were unchanged.
* I said "make default" and the values changed to "thunderbird %s".
* I exited, still "thunderbird %s".
* Started Nightly from the command line and got the prompt, still "thunderbird %s".
* Clicked "make default" and the value was restored to the original value.
Here is my guess: your thunderbird comes from your distro with a wrapper script that sets MOZ_APP_LAUNCHER.

Check the output of:
sed 's/\x00/\n/g' /proc/<pid>/environ | grep MOZ_APP_LAUNCHER

replacing <pid> with the pid of thunderbird and firefox when launched from thunderbird.
(In reply to :Gijs Kruitbosch from comment #6)
> Mike and/or Karl, can you help figure out what's going on here and/or fix
> it? :-)

Mike's hypothesis sounds promising.
Flags: needinfo?(karlt)
The MOZ_APP_LAUNCHER theory is correct, it appears to be a benefit of Ununtu, and probably not a problem for people using the standard Firefox in Ubuntu. I've modified my launcher to ship thunderbird.sh.

Thank you all for your help.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.