[sisyphus] Firefox, Thunderbird, GNOME: mime-type handlers

Andrew Kornilov =?iso-8859-1?q?akornilov_=CE=C1_gmail=2Ecom?=
Вс Сен 9 06:28:32 MSD 2007


Привет всем.

Сегодняшнюю ночь провел в очень увлекательном разборе внутренностей
Firefox, чтобы понять, можно ли как-то улучшить его поведение в области
mime-types handling и сделать это более дружественным пользователю (это
сообщение пересекается с моим предыдущим потоком грязи на GTK :).
Вот здесь человек описал то, что хотелось бы видеть:
http://forums.gentoo.org/viewtopic-t-553299.html
Потратил кучу времени на разбор сборок firefox в Ubuntu, оказалось, что
зря. Пакеты типа firefox-gnome-support уже не нужны. В общем, резюме:
1. Firefox (это точно) и Thunderbird (скорее всего) оказались собраны у
нас без gnome-vfs и gnomeui. По умолчанию этот функционал включен, но
окончательное решение принимается run-time в процессе configure поиском
соответствующих частей gnome-vfs-devel и libgnomeui-devel. Ну и,
естественно, в hasher-е при сборке ничего такого нет, поэтому поддержка
отключается. Это явный misfeature bug, без gnome-vfs в FF совсем плохо,
а так хоть поддержка smb/sftp/etc появляется. Буду репортить, а может
майнтейнер прочитат и сделает.
Все-таки стоит сначала обсудить, может быть это специально сделано?
2. Пересмотрев кучу исходников и примерно поняв, как строится текущий
диалог открытия файла в FF, к сожалению убедился, что в списке
handler-ов могут быть только: defaultHandler и otherHandler. То есть
даже три приложения туда не поместить.
Редактирование во всех возможных видах файлов в /usr/share/mime-info/ не
приводило к появлению второго приложения (otherHandler) в списке
hanlder-ов для текущего открываемого mime type. Почему, пока не выяснил,
нужно еще пересмотреть логи, возможно, FF не видит (или gtk не дает)
handler-ы и начинает парсить это сам ( у него там несколько fallback-ов
в исходниках по части mime). Появление otherHandler при открытии файла
возникает только, если вы перед этим выбрали какое-то приложение
вручную, тогда оно сохраняется в ~/$MOZILLA_HOME/mimeTypes.rdf. Причем,
насколько я помню по опыту, иногда FF не запоминает его, не знаю, почему.
3. Можно попробовать захачить это все и использовать то, что использует
Nautilus для этого, но нужно время.
4. Все-таки всё это через одну, захардкоренную .опу. Жаль потерянного
времени.



Подробная информация о списке рассылки Sisyphus