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
Версии firefox: firefox-100.0-alt1 firefox-esr-91.9.0-alt1
Подтверждаю. Этот баг со времён p8 во всех продуктах, не только в Cизифе. Изменение параметров Thunderbird network.protocol-handler.warn-external.* в значение true не решают проблему. Также добавлю: при открытии некоторых ссылок, если firefox запускается впервые и на предложение сделать его браузером по умолчанию ответить "Не сейчас", открывается пустая вкладка, а не ссылка. После этого не надо закрывать firefox. Просто кликнуть по ссылке второй раз и тогда она откроется. Ожидаемое поведение: при клике по ссылке она должна открываться сразу в выбранном браузере по умолчанию.
Расследование показало, что всему виной галка "Всегда проверять, является ли 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 всё равно не считает себя браузером по умолчанию.
8. Если закрыть все окна Thunderbird и просто запустить любым способом Firefox, открыть его настройки и в них нажать кнопку "Установить по умолчанию" рядом с надписью "Firefox не является вашим браузером по умолчанию", в настройках MATE браузером так же будет выбран Thunderbird вместо Firefox. Т.е. Thunderbird виноват только тем, что он есть в системе и почему-то выбирается первым, даже не в алфавитном порядке.
(Ответ для Leonid Krivoshein на комментарий #4) > 8. Если закрыть все окна Thunderbird и просто запустить любым способом > Firefox, открыть его настройки и в них нажать кнопку "Установить по > умолчанию" рядом с надписью "Firefox не является вашим браузером по > умолчанию", в настройках MATE браузером так же будет выбран Thunderbird > вместо Firefox. > > Т.е. Thunderbird виноват только тем, что он есть в системе и почему-то > выбирается первым, даже не в алфавитном порядке. Вот это вы какие-то чудеса рассказываете. О таком поведении я слышу впервые и только от вас.
(Ответ для 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
Created attachment 10788 [details] Окружение при запуске из под Thunderbird
Created attachment 10789 [details] Окружение при запуске Firefox из MATE
(Ответ для 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
(Ответ для 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. Будет воспроизводиться проблема ?
(Ответ для 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:+"$@"}
Комментирование этой строки тоже решает проблему: #export MOZ_APP_LAUNCHER="${MOZ_APP_LAUNCHER:-$0}"
(Ответ для 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 и вот теперь проверить воспроизводимость.
(Ответ для Leonid Krivoshein на комментарий #12) > Комментирование этой строки тоже решает проблему: > > #export MOZ_APP_LAUNCHER="${MOZ_APP_LAUNCHER:-$0}" Ок. Попробуй так. Не вижу, чтобы thunderbird выставлял бы её.
В сизиф отправлен firefox-100.0.2-alt1, с которым я надеюсь проблема не будет проявляться.
(Ответ для Alexey Gladkov на комментарий #13) > и вот теперь проверить воспроизводимость. А вот так проблема тоже устраняется. Очевидно за счёт runas. Я-то делал похожим способом, но без runas. И наверное такой вариант лучше опакетить с оказией потому что переменная, скорее всего, нужна для перезапуска thunderbird.
(Ответ для Alexey Gladkov на комментарий #15) > В сизиф отправлен firefox-100.0.2-alt1, с которым я надеюсь проблема не > будет проявляться. Я понял суть исправления. Ура! Столько лет эта проблемка докучала. Спасибо!
(Ответ для Leonid Krivoshein на комментарий #17) > (Ответ для Alexey Gladkov на комментарий #15) > > В сизиф отправлен firefox-100.0.2-alt1, с которым я надеюсь проблема не > > будет проявляться. > Я понял суть исправления. Ура! Столько лет эта проблемка докучала. Спасибо! Я собирал оба эти проекта. Я искал и прописывал переменные, которые влияют на поведение этих проектов. Не нужно молчать столько лет, а стоит повесить багу и спросить :)
(Ответ для Alexey Gladkov на комментарий #18) > Я собирал оба эти проекта. Я искал и прописывал переменные, которые влияют > на поведение этих проектов. Пользуясь возможностью... если в thunderbird есть аналогичный код, стоит и там исправить. На случай, если при нажатии по электронному адресу в firefox будет открываться почтовик, в результате чего дефолтной почтовой программой будет становиться firefox. Т.е. данная проблема теоретически может быть зеркальной, раз оба проекта для аналогичной цели используют одну переменную.
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 не будет приводить к ошибкам.