Всем привет.

У меня следующая проблема. Есть программа, которая интегрируется в браузеры Mozilla через расширение. Расширение находится в папке программы, то есть где то в c:\program files\my program\mozilla extension\, а точнее там, куда укажет пользователь при инсталляции.

Для регистрации я выбрал путь копирования файла с именем-GUID расширения в папку extensions профиля (http://forum.mozilla-russia.org/doku.php?id=general:extensions_installing). Это отлично работает в Firefox и Flock для путей записанных латиницей. Но если пользователь поставил программу в кириллическую директорию, браузеры не подхватывают расширение. Были попытки создавать файл в кодировках ANSI, UTF-16 и UTF-8 - ничего не сработало. Потом я нашел статью, как с помощью реестра Windows зарегистрировать экстеншен https://developer.mozilla.org/en/Adding_Extensions_using_the_Windows_Registry, но это работает только для Firefox, для Flock – увы…

Может файл регистрации нужно записать в какой-то специальной кодировке или писать не в ту ветку реестра? Подскажите, если кто знает как.

Elexander
extensions.ini ?

Anton пишет

Elexander
extensions.ini ?

И в самом деле! Запись в extensions.ini работает. Это я пропустил как-то. Спасибо.
Но есть проблема. При таком способе регистрации в меню браузера Tools->Add-ons расширение не появляется, то есть, у пользователя нет возможности самостоятельно его ни отключить, ни деинсталлировать. А эта возможность была бы очень кстати.

Если нет более простого решения, тогда, видимо, надо вручную добавлять информацию о расширении в extensions.rdf.
Или из внешней программы, или из расширения (nsIExtensionManager. installItemFromFile (in nsIFile file, in string locationKey)).

Есть еще один нюанс. Если профиль только создан, в нем нет файла extensions.ini,  а если его создать, то браузер при первом запуске перезатрет его. Тоесть, не получается зарегестрировать расширение в профиле, с которым не запускался браузер.

Elexander пишет

Если профиль только создан, в нем нет файла extensions.ini,  а если его создать, то браузер при первом запуске перезатрет его. Тоесть, не получается зарегестрировать расширение в профиле, с которым не запускался браузер.

Нехорошо это - с моей, как пользователя точки зрения - ставить в профиль, которого ещё нет.

ps. http://xpoint.ru/forums/programming/XUL/thread/44181.xhtml
а у меня сработало в Flock'е

Anton пишет
Elexander пишет

Если профиль только создан, в нем нет файла extensions.ini,  а если его создать, то браузер при первом запуске перезатрет его. Тоесть, не получается зарегестрировать расширение в профиле, с которым не запускался браузер.

Нехорошо это - с моей, как пользователя точки зрения - ставить в профиль, которого ещё нет.

ps. http://xpoint.ru/forums/programming/XUL/thread/44181.xhtml
а у меня сработало в Flock'е

Нет, профиль существует, существует его директория в \Application Data\Flock\Browser\Profiles\ и в ней папка chrome и 4 служебных файла. Если в этот момент создать папку extensions и в ней файл регистрации расширения, то оно поднимется при первом страте браузера с этим профилем. А если пойти путем extension.ini - ничего не выйдет. Вот об этом нюансе я говорил.

А пост скриптум, я честно говоря, не совсем понял. Что у вас сработало?
Эта тема на xpoint.ru моя, но там никто не ответил. А этому форуму (и вам конкретно) спасибо.

Elexander пишет

Что у вас сработало?

Установка расширения через реестр.

Anton пишет
Elexander пишет

Что у вас сработало?

Установка расширения через реестр.

Повторите для меня, пожалуйста, что и в какой последовательности вы делали.
Я пробовал создавать такие строковые параметры:
HKEY_CURRENT_USER\Software\Flock\Flock\extensions\elexander@testaddon
HKEY_CURRENT_USER\Software\Flock\extensions\elexander@testaddon
HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Flock\extensions\elexander@testaddon
HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Flock\2.0.3 (en-US)\extensions\elexander@testaddon
HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\Flock 2.0.3\extensions\elexander@testaddon
Все со значением D:\Work\тест аддон\

Для Firefox работает запись:
HKEY_CURRENT_USER\Software\Mozilla\Firefox\extensions\elexander@testaddon

Там ведь написано: "Where Vendor and Name are the values returned from the corresponding properties of nsIXULAppInfo."
Vendor = Flock
Name = Browser

Anton пишет

Там ведь написано: "Where Vendor and Name are the values returned from the corresponding properties of nsIXULAppInfo."
Vendor = Flock
Name = Browser

Да, извините. Недосмотрел. Буду внимательней в следующий раз. Большое спасибо.