MSI установка dll по запросу от FireFox - PullRequest
0 голосов
/ 07 сентября 2011

С новым Firefox мы поставляем все больше и больше библиотек, так как интерфейсы XPom, с которыми мы взаимодействуем, меняются.Мы находимся на уровне 10 dll и растем, каждый размером почти 2 млн.

Этот размер беспокоит некоторых пользователей.

Пока мы рассмотрим реструктуризацию библиотеки, чтобы разделить части, которые мы можемДелая общее между ними, мы думаем о том, как мы можем уменьшить пространство на диске, поддерживая обновления версий.

Например, у пользователя установлены FireFox 3.6 и 4.0, и когда наш продукт установлен, мы устанавливаем dll для каждоговерсия.Когда Firefox обновлен до 4.0 (скажем, до 6.0), как мы можем теперь установить из msi недостающую dll для поддержки 6.0.

Есть идеи о том, как нам этого добиться?Мы беспокоимся без причины?

Моей первой мыслью было «AllowAdvertise», и когда FF попытается загрузить dll в соответствии с указаниями chrome, это приведет к установке, похоже, это не сработает.

Ответы [ 2 ]

2 голосов
/ 08 сентября 2011

Я полагаю, что ваше расширение предназначено только для Windows, поэтому поддержка нескольких платформ не является проблемой.Возможное краткосрочное решение:

  • Для каждой версии Firefox есть отдельный пакет расширений, отметьте его как совместимый только с этой версией Firefox (например, minVersion 4.0 и maxVersion 4. *).
  • Когда ваше расширение установлено, установите версию, совместимую с установленной пользователем версией Firefox.
  • Убедитесь, что ваши расширения имеют запись updateURL , которая указывает на вашсервер.Важно, чтобы в URL-адресе было указано %APP_VERSION%.
  • Обязательно протестируйте бета-версии Firefox и подготовьте новую версию расширения вовремя для следующего релиза Firefox (релизы запланированы по вторникам каждые 6 недель , следующий выпуск будет 27 сентября).
  • Настройте сервер так, чтобы в качестве обновлений указывались разные пакеты в зависимости от используемой версии Firefox.Поэтому проверка обновлений с %APP_VERSION% 4.0.1 будет отправлена ​​на extension-ff4.xpi, тогда как %APP_VERSION% 6.0 будет получать extension-ff6.xpi.

Firefox всегда будет проверять обновления расширений при обновлении приложения.,Если вы можете дать ему совместимое обновление, оно установит его.Но подготовка новых пакетов каждые шесть недель требует огромных усилий, и я думаю, что вы хотите реорганизовать свой код / ​​перейти на js-ctypes как можно скорее.О, и я думаю, что вам нужно игнорировать маловероятный сценарий, когда у некоторых пользователей установлено более одной версии Firefox.

2 голосов
/ 07 сентября 2011

Моя первая реакция - предложить вам перейти от XPCOM к js-ctypes . В конце концов, именно в этом направлении Mozilla подталкивает разработчиков расширений (см., Например, комментарии Владимира Паланта ). Если в вашем двоичном коде нет ничего, что абсолютно положительно требовало бы использования XPCOM, вам будет гораздо легче доставить DLL, которая взаимодействует с JS при необходимости через js-ctypes.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...