Bug 42788

Summary: Firefox ошибочно ставит Thunderbird браузером по умолчанию
Product: Sisyphus Reporter: Alexandr Shashkin <dutyrok>
Component: thunderbirdAssignee: Ajrat Makhmutov <rauty>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: glebfm, klark, legion, mikhail.alexandrov.99, rauty, sbolshakov
Version: unstable   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
Как данная ошибка отображается в настройках Mate
none
Окружение при запуске из под Thunderbird
none
Окружение при запуске Firefox из MATE none

Description Alexandr Shashkin 2022-05-18 16:11:50 MSK
Created attachment 10767 [details]
Как данная ошибка отображается в настройках Mate

Версия программы: thunderbird-91.7.0-alt1

Шаги, приводящие к ошибке:
1) Установить thunderbird и firefox (или firefox-esr)
2) firefox должен быть браузером по умолчанию
3) авторизироваться в учетной записи электронной почты
4) открыть письмо с ссылкой и перейти по ней (не должно быть открытым ни одного окна firefox)
5) согласиться, когда firefox предложит сделать его браузером по умолчанию
6) закрыть firefox и попытаться открыть ссылку еще раз; открыть ссылку из других приложений
7) в настройках системы посмотреть, какой браузер по умолчанию

Результат:
Открыть ссылку в браузере не получиться, так как браузером по умолчанию является thunderbird. В момент, когда была в первый раз открыта ссылка и дано согласие на установку firefox браузером по умолчанию, браузер по умолчанию поменялся на thunderbird.
Если не давать согласие на изменение браузера по умолчанию, то ошибка не воспроизведется

Ожидаемый результат:
Браузер по умолчанию не меняется на Mozzila Thunderbird
Comment 1 Alexandr Shashkin 2022-05-18 16:14:59 MSK
Версии firefox:
firefox-100.0-alt1 
firefox-esr-91.9.0-alt1
Comment 2 Leonid Krivoshein 2022-05-19 19:38:22 MSK
Подтверждаю. Этот баг со времён p8 во всех продуктах, не только в Cизифе. Изменение параметров Thunderbird network.protocol-handler.warn-external.* в значение true не решают проблему.

Также добавлю: при открытии некоторых ссылок, если firefox запускается впервые и на предложение сделать его браузером по умолчанию ответить "Не сейчас", открывается пустая вкладка, а не ссылка. После этого не надо закрывать firefox. Просто кликнуть по ссылке второй раз и тогда она откроется. Ожидаемое поведение: при клике по ссылке она должна открываться сразу в выбранном браузере по умолчанию.
Comment 3 Leonid Krivoshein 2022-05-21 04:40:48 MSK
Расследование показало, что всему виной галка "Всегда проверять, является ли Firefox вашим браузером по умолчанию" в настройках firefox. Если её отключить, проблема не воспроизводится. Если открывать ссылку не из thunderbird, проблема так же не воспроизводится. Возможно, на это поведение влияет окружение, создаваемое почтовиком, так как иных зримых отличий я не нашёл.

Однако, почему уверен, что проблема в firefox, а не в thunderbird:

1. Закрываем все окна firefox, он д.б. выбран браузером по умолчанию.
2. Переходим по ссылке http/https из thunderbird.
3. Firefox открывает ссылку, но блокирует работу со страницей диалоговым окном, в котором утверждает, что он не выбран браузером по умолчанию.
4. Ничего не нажимая в этом диалоге [3] открываем настройки и видим, что браузером по умолчанию выбран Firefox.
5. В консоли вводим команды:

$ xdg-settings get default-web-browser
firefox.desktop

$ xdg-settings check default-web-browser firefox.desktop
yes

6. Если в диалоге [3] согласиться, глобальные настройки тот час же "портятся", браузер по умолчанию переключается на thunderbird:

$ xdg-settings get default-web-browser
thunderbird.desktop

$ xdg-settings check default-web-browser firefox.desktop
no

7. После отключения указанного флага и перехода по ссылкам из thunderbird не предлагается изменить браузер, хотя под галкой в настройках firefox всё равно не считает себя браузером по умолчанию.
Comment 4 Leonid Krivoshein 2022-05-21 04:51:27 MSK
8. Если закрыть все окна Thunderbird и просто запустить любым способом Firefox, открыть его настройки и в них нажать кнопку "Установить по умолчанию" рядом с надписью "Firefox не является вашим браузером по умолчанию", в настройках MATE браузером так же будет выбран Thunderbird вместо Firefox.

Т.е. Thunderbird виноват только тем, что он есть в системе и почему-то выбирается первым, даже не в алфавитном порядке.
Comment 5 Alexey Gladkov 2022-05-21 14:34:05 MSK
(Ответ для Leonid Krivoshein на комментарий #4)
> 8. Если закрыть все окна Thunderbird и просто запустить любым способом
> Firefox, открыть его настройки и в них нажать кнопку "Установить по
> умолчанию" рядом с надписью "Firefox не является вашим браузером по
> умолчанию", в настройках MATE браузером так же будет выбран Thunderbird
> вместо Firefox.
> 
> Т.е. Thunderbird виноват только тем, что он есть в системе и почему-то
> выбирается первым, даже не в алфавитном порядке.

Вот это вы какие-то чудеса рассказываете. О таком поведении я слышу впервые и только от вас.
Comment 6 Alexey Gladkov 2022-05-21 14:52:13 MSK
(Ответ для Leonid Krivoshein на комментарий #3)
> Расследование показало, что всему виной галка "Всегда проверять, является ли
> Firefox вашим браузером по умолчанию" в настройках firefox. Если её
> отключить, проблема не воспроизводится. Если открывать ссылку не из
> thunderbird, проблема так же не воспроизводится. Возможно, на это поведение
> влияет окружение, создаваемое почтовиком, так как иных зримых отличий я не
> нашёл.
> 
> Однако, почему уверен, что проблема в firefox, а не в thunderbird:
> 
> 1. Закрываем все окна firefox, он д.б. выбран браузером по умолчанию.
> 2. Переходим по ссылке http/https из thunderbird.
> 3. Firefox открывает ссылку, но блокирует работу со страницей диалоговым
> окном, в котором утверждает, что он не выбран браузером по умолчанию.
> 4. Ничего не нажимая в этом диалоге [3] открываем настройки и видим, что
> браузером по умолчанию выбран Firefox.
> 5. В консоли вводим команды:
> 
> $ xdg-settings get default-web-browser
> firefox.desktop
> 
> $ xdg-settings check default-web-browser firefox.desktop
> yes
> 
> 6. Если в диалоге [3] согласиться, глобальные настройки тот час же
> "портятся", браузер по умолчанию переключается на thunderbird:
> 
> $ xdg-settings get default-web-browser
> thunderbird.desktop
>

Я подозреваю, что дело именно в окружении, из которого thunderbird вызывает firefox. Если быть более конкретным, то скорее всего дело в переменной MOZ_APP_LAUNCHER [1].

Попробуйте две вещи:

1. Посмотреть с каким окружением thunderbird запускает firefox. Если приложите его сюда, то будет очень полезно.
2. Запустить firefox из-под thunderbird с "чистым" окружением.

Только после этого можно думать про вину firefox.

[1] https://git.altlinux.org/gears/t/thunderbird.git?p=thunderbird.git;a=blob;f=thunderbird.spec#l445
Comment 7 Leonid Krivoshein 2022-05-21 16:05:39 MSK
Created attachment 10788 [details]
Окружение при запуске из под Thunderbird
Comment 8 Leonid Krivoshein 2022-05-21 16:06:38 MSK
Created attachment 10789 [details]
Окружение при запуске Firefox из MATE
Comment 9 Leonid Krivoshein 2022-05-21 16:11:07 MSK
(Ответ для Alexey Gladkov на комментарий #5)
> Вот это вы какие-то чудеса рассказываете. О таком поведении я слышу впервые
> и только от вас.
Видимо не очень чистый эксперимент вчера был, видимо не закрыл одно окно. Действительно, описанная в п.8 проблема проявляется только, если первый экземпляр Firefox был запущен из под Thunderbird.

Приложил окружение, взятое из /proc. Действительно, только при запуске из под Thunderbird наблюдается такое:

$ cat 1.env |tr \\0 \\n |grep MOZ
MOZ_LAUNCHED_CHILD=
MOZ_ASSUME_USER_NS=0
MOZ_PLUGIN_PATH=/usr/lib64/browser-plugins
MOZ_APP_LAUNCHER=/usr/bin/thunderbird
Comment 10 Alexey Gladkov 2022-05-21 16:37:42 MSK
(Ответ для Leonid Krivoshein на комментарий #9)
> (Ответ для Alexey Gladkov на комментарий #5)
> > Вот это вы какие-то чудеса рассказываете. О таком поведении я слышу впервые
> > и только от вас.
> Видимо не очень чистый эксперимент вчера был, видимо не закрыл одно окно.
> Действительно, описанная в п.8 проблема проявляется только, если первый
> экземпляр Firefox был запущен из под Thunderbird.
> 
> Приложил окружение, взятое из /proc. Действительно, только при запуске из
> под Thunderbird наблюдается такое:
> 
> $ cat 1.env |tr \\0 \\n |grep MOZ
> MOZ_LAUNCHED_CHILD=
> MOZ_ASSUME_USER_NS=0
> MOZ_PLUGIN_PATH=/usr/lib64/browser-plugins
> MOZ_APP_LAUNCHER=/usr/bin/thunderbird

Попробуйте запустить firefox из thunderbird убрав эти переменные окружения. Для этого просто переименуйте /usr/bin/firefox во что больше нравится и положите на него место скрипт, который бы убирал MOZ_APP_LAUNCHER. Будет воспроизводиться проблема ?
Comment 11 Leonid Krivoshein 2022-05-21 17:15:46 MSK
(Ответ для Alexey Gladkov на комментарий #10)
> Попробуйте запустить firefox из thunderbird убрав эти переменные окружения.
> Для этого просто переименуйте /usr/bin/firefox во что больше нравится и
> положите на него место скрипт, который бы убирал MOZ_APP_LAUNCHER. Будет
> воспроизводиться проблема ?
Таким способом не получится проверить. Опция проверки дефолтного браузера привязана к запущенному процессу. Если переименовываю в /usr/bin/firefox-bin, нужно выбирать его дефолтным. А с отключением проверки оно и так работает. Проще решить через этот скрипт:

$ cat /usr/bin/thunderbird
#!/bin/sh -e
export MOZ_APP_LAUNCHER="${MOZ_APP_LAUNCHER:-$0}"
export MOZ_PLUGIN_PATH="/usr/lib64/browser-plugins${MOZ_PLUGIN_PATH:+:$MOZ_PLUGIN_PATH}"
export NSS_SSL_ENABLE_RENEGOTIATION=1
/usr/lib64/thunderbird/thunderbird-bin ${1:+"$@"}
Comment 12 Leonid Krivoshein 2022-05-21 17:20:35 MSK
Комментирование этой строки тоже решает проблему:

#export MOZ_APP_LAUNCHER="${MOZ_APP_LAUNCHER:-$0}"
Comment 13 Alexey Gladkov 2022-05-21 17:26:23 MSK
(Ответ для Leonid Krivoshein на комментарий #11)
> (Ответ для Alexey Gladkov на комментарий #10)
> > Попробуйте запустить firefox из thunderbird убрав эти переменные окружения.
> > Для этого просто переименуйте /usr/bin/firefox во что больше нравится и
> > положите на него место скрипт, который бы убирал MOZ_APP_LAUNCHER. Будет
> > воспроизводиться проблема ?
> Таким способом не получится проверить. Опция проверки дефолтного браузера
> привязана к запущенному процессу.

Значит ты не понял суть моего предложения.
Я предлагал вот это:

[1. root]# cp /usr/bin/firefox /usr/bin/firefox-bin
[2. root]# cat >/usr/bin/firefox<<EOF
#!/bin/sh
exec env -u MOZ_APP_LAUNCHER runas /usr/bin/firefox /usr/bin/firefox-bin "$@"
EOF

и вот теперь проверить воспроизводимость.
Comment 14 Alexey Gladkov 2022-05-21 17:28:25 MSK
(Ответ для Leonid Krivoshein на комментарий #12)
> Комментирование этой строки тоже решает проблему:
> 
> #export MOZ_APP_LAUNCHER="${MOZ_APP_LAUNCHER:-$0}"

Ок. Попробуй так. Не вижу, чтобы thunderbird выставлял бы её.
Comment 15 Alexey Gladkov 2022-05-21 21:13:32 MSK
В сизиф отправлен firefox-100.0.2-alt1, с которым я надеюсь проблема не будет проявляться.
Comment 16 Leonid Krivoshein 2022-05-21 21:17:21 MSK
(Ответ для Alexey Gladkov на комментарий #13)
> и вот теперь проверить воспроизводимость.
А вот так проблема тоже устраняется. Очевидно за счёт runas. Я-то делал похожим способом, но без runas. И наверное такой вариант лучше опакетить с оказией потому что переменная, скорее всего, нужна для перезапуска thunderbird.
Comment 17 Leonid Krivoshein 2022-05-21 21:59:13 MSK
(Ответ для Alexey Gladkov на комментарий #15)
> В сизиф отправлен firefox-100.0.2-alt1, с которым я надеюсь проблема не
> будет проявляться.
Я понял суть исправления. Ура! Столько лет эта проблемка докучала. Спасибо!
Comment 18 Alexey Gladkov 2022-05-21 22:07:51 MSK
(Ответ для Leonid Krivoshein на комментарий #17)
> (Ответ для Alexey Gladkov на комментарий #15)
> > В сизиф отправлен firefox-100.0.2-alt1, с которым я надеюсь проблема не
> > будет проявляться.
> Я понял суть исправления. Ура! Столько лет эта проблемка докучала. Спасибо!

Я собирал оба эти проекта. Я искал и прописывал переменные, которые влияют на поведение этих проектов.

Не нужно молчать столько лет, а стоит повесить багу и спросить :)
Comment 19 Leonid Krivoshein 2022-05-21 22:33:31 MSK
(Ответ для Alexey Gladkov на комментарий #18)
> Я собирал оба эти проекта. Я искал и прописывал переменные, которые влияют
> на поведение этих проектов.
Пользуясь возможностью... если в thunderbird есть аналогичный код, стоит и там исправить. На случай, если при нажатии по электронному адресу в firefox будет открываться почтовик, в результате чего дефолтной почтовой программой будет становиться firefox. Т.е. данная проблема теоретически может быть зеркальной, раз оба проекта для аналогичной цели используют одну переменную.
Comment 20 Alexey Gladkov 2022-05-21 22:42:52 MSK
https://git.altlinux.org/gears/t/thunderbird.git?p=thunderbird.git;a=blob;f=thunderbird.spec#l445

Тут заменить заменить с

export MOZ_APP_LAUNCHER="\${MOZ_APP_LAUNCHER:-\$0}"

на

export MOZ_APP_LAUNCHER="\$0"

тогда обратная ситуация вызова thunderbird из firefox не будет приводить к ошибкам.