Как развернуть расширение Firefox в XULRunner/GeckoFX?

У меня есть разработанное бинарное расширение, которое отлично работает в Firefox, но не может развернуть его в XULRunner/GeckoFX. Расширение не имеет пользовательского интерфейса и просто предоставляет API для нашего основного приложения (в .NET).

Все руководства, которые я смог найти, объясняют, как их установить в приложение XULRunner. Но с помощью GeckoFX XULRunner работает в моем проекте, поэтому у меня нет приложения XULRunner.

Я уже пытался копировать каталог установленного расширения из каталога профиля Firefox в профиль XULRunner, а также использовать каталог профиля FF для GeckoFX, но безрезультатно.

В настоящее время я подозреваю, что расширение targetApplication в install.rdf необходимо настроить для GeckoFX, но каков правильный идентификатор?

Поскольку мы развертываем GeckoFX/XULRunner, встроенный в наш проект, мне не нужен менеджер расширений, достаточно статического развертывания.


person winter    schedule 07.01.2015    source источник


Ответы (1)


Наконец-то мне удалось заставить его работать. Вот что я сделал:

Сначала добавьте место, где развернуто расширение, используя Xpcom.ComponentRegistrar.AutoRegister():

void RegisterExtensionDir(string dir)
{
    Console.WriteLine("Registering binary extension directory:  " + dir);
    var chromeDir = (nsIFile)Xpcom.NewNativeLocalFile(dir);
    var chromeFile = chromeDir.Clone();
    chromeFile.Append(new nsAString("chrome.manifest"));
    Xpcom.ComponentRegistrar.AutoRegister(chromeFile);
}

Во-вторых, не используйте флаг ABI в расширении chrome.manifest. Итак, вместо

binary-component components/GeckoScraper.dll  ABI=WINNT_x86-msvc

я использовал

binary-component components/GeckoScraper.dll

Я считаю это ошибкой GeckoFX 29 и создал отн. ="nofollow">проблема для этого.

person winter    schedule 27.01.2015
comment
Является ли dir путем к файлу .xpi? Я ищу способ установить дополнения к GeckoFX, но не могу найти. - person TEK; 29.11.2015
comment
Еще один ответ на копирование и вставку от Bitbuchet, который не работает. Вам удалось найти решение? - person John M.; 25.05.2017
comment
Кто-нибудь нашел решение этого еще? - person mikro; 24.12.2018