The first user-facing symptom: Google Chrome stable is correctly set as the default browser in System Settings / Details / Default Applications as well as in `update-alternatives --display x-www-browser`, yet it keeps complaining about not being a default browser. Clicking "Make Google Chrome the default browser." has no response.
I have successfully reproduced and debugged the problem. I managed to establish that it is connected to xdg-utils, namely to /usr/bin/xdg-settings script.
```
michal@furia:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 15.10
Release: 15.10
Codename: wily
michal@furia:~$ xdg-settings get default-web-browser
firefox.desktop
michal@furia:~$ xdg-settings set default-web-browser google-chrome.desktop
michal@furia:~$ echo $?
2
michal@furia:~$ xdg-settings get default-web-browser
firefox.desktop
```
There is a function in /usr/bin/xdg-settings called desktop_file_to_binary() and it has a bug. It is slightly different than the one in the vanilla xdg-utils 1.1.0 rc3. It is implemented in scripts/xdg-utils-common.in.
See line 65 in xdg-utils-1.1.0~rc3+git20150907/scripts/xdg-utils-common.in :
When passed to `which` and then to `readlink -f` it results with no path to the actual binary. In the vanilla xdg-utils package (version 1.1.0 rc3) the `sed` part is replaced with `first_word`. An alternative would be adding `| head -1`.
Then we would have only one `google-chrome-stable` or `firefox` which in turn would result with the actual path to binary resolved correctly and that would make xdg-settings work fine.
The first user-facing symptom: Google Chrome stable is correctly set as the default browser in System Settings / Details / Default Applications as well as in `update- alternatives --display x-www-browser`, yet it keeps complaining about not being a default browser. Clicking "Make Google Chrome the default browser." has no response.
The problem is reported here http:// askubuntu. com/questions/ 688779/ google- chrome- stable- keeps-asking- if-it-should- be-set- to-default but the answer is somewhat wrong.
I have successfully reproduced and debugged the problem. I managed to establish that it is connected to xdg-utils, namely to /usr/bin/ xdg-settings script.
``` chrome. desktop
michal@furia:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 15.10
Release: 15.10
Codename: wily
michal@furia:~$ xdg-settings get default-web-browser
firefox.desktop
michal@furia:~$ xdg-settings set default-web-browser google-
michal@furia:~$ echo $?
2
michal@furia:~$ xdg-settings get default-web-browser
firefox.desktop
```
There is a function in /usr/bin/ xdg-settings called desktop_ file_to_ binary( ) and it has a bug. It is slightly different than the one in the vanilla xdg-utils 1.1.0 rc3. It is implemented in scripts/ xdg-utils- common. in.
See line 65 in xdg-utils- 1.1.0~rc3+ git20150907/ scripts/ xdg-utils- common. in :
``` \[[^]=] *])?=" "$file" | cut -d= -f 2- | sed -e 's/ .*$//'`"
command="`grep -E "^Exec(
```
When executed against google- chrome. desktop or firefox.desktop it results with:
``` chrome- stable chrome- stable chrome- stable
google-
google-
google-
```
or
```
firefox
firefox
firefox
```
respectively.
When passed to `which` and then to `readlink -f` it results with no path to the actual binary. In the vanilla xdg-utils package (version 1.1.0 rc3) the `sed` part is replaced with `first_word`. An alternative would be adding `| head -1`.
Then we would have only one `google- chrome- stable` or `firefox` which in turn would result with the actual path to binary resolved correctly and that would make xdg-settings work fine.