>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Обновление локально установленных расширений http://forum.mozilla-russia.org/viewtopic.php?id=52312 |
TopTuK > 09-11-2011 17:26:54 |
Коллеги, добрый день! Непростая ситуация сложилась при разработке расширения для ФФ в связи с переходом Мозиллы на ускоренный режим выпуска новых версий. Вопрос к экспертам: Необходимо придумать способ, который гарантированно бы позволял установить расширение локально (просто прописав наименование и пути в реестре), а также ФФ автоматически проверял наличие новой версии данного расширения в репозитории Мозилла. К сожалению, писать для пользователя мануал, чтобы он зашёл туда-то, нажал то-то - слишком дорогая операция. Что я пробывал: 2. Если я для каждого профиля FF запишу в директорию Extension мое расширение, то его станет возхможно обновить до новой версии. Но этот способ не подходит по нескольким причинам: Что очень хочется - установить расширение локально для всех профилей с возможностью обновления через репозиторий Mozilla. P.S. Вариант использовать свой сервер обновлений рассматривается в качестве альтернативы |
hydrolizer > 09-11-2011 18:37:54 |
TopTuK пишет
http://kb.mozillazine.org/Installing_ex … stallation TopTuK пишет
Если расширение ваше - обновление из вашего репозитория вас устроит? Если да - то сделать это можно вот так: https://developer.mozilla.org/en/Extens … patibility |
TopTuK > 10-11-2011 00:58:30 |
hydrolizer пишет
Да, вариант с использованием нашего репозитория есть. (сответственно прописывать UpgradeURL). Первоначально задача ставилась как размещение расширений в репозитории Mozilla. |
hydrolizer > 10-11-2011 03:08:14 |
TopTuK пишет
А у вас есть доступ на запись этот "репозиторий"? Расширения даже от самой MoFo устанавливаются не из репозитория, а всё с того же АМО. И поэтому вариантов - только 2: устанавливать расширение с АМО, либо устанавливать из какого-то другого источника. Для первого варианта вам нужно просто разместить на АМО расширение. Что нужно для второго - описано в данной выше ссылке. Если место, где вы разместите расширение, будет доступно по https-соединению, то install.rdf/update.rdf не нужно будет подписывать ключом. Кроме того, функциональность апдейта из произвольного расположения вполне поддерживает апдейт по протоколу file:///. TopTuK пишет
-install-global-extension не работает со времен FF3.6. Если надо установить расширение глобально, то придется это делать вручную. TopTuK пишет
https://developer.mozilla.org/en/Addons … rURL%28%29 TopTuK пишет
А обычно так и делается - xpi содержит все локализации, какие есть. TopTuK пишет
Расширение, даже установленное глобально в папку %ProgramFiles%\Mozilla Firefox\extensions, на которую у пользователя нет прав на запись, можно легко отключить. Более того, начиная с последнего релиза, такое расширение по умолчанию будет отключено, а при первом запуске профиля FF спросит у пользователя, желает ли он включить это расширение (и пользователь, разумеется, может не пожелать этого). Если вам нужно без каких-либо вариантов заставить пользователя использовать свое расширение - боюсь, вам остается только запаковать его внутрь omni.jar. Но это уже будет не расширение, а просто свой код, включенный внутрь FF. |
TopTuK > 10-11-2011 12:16:09 |
hydrolizer пишет
Вы абсолютно правы насчет директории %ProgramFiles%\Mozilla Firefox\extensions, но мы прописываем наши расширения в реестр, а сами расширения лежат в директории с продуктом. Продуктовая директория защищается самозащитой. Спасибо большое за помощь, будем думать. P.S. hydrolizer пишет
Да, на мой взгляд такое новшество - спорная идея. У нас три расширения устанавливаются вместе с продуктом, пришлось для каждого отдельно перезапускать браузер. |
TopTuK > 16-11-2011 12:42:16 |
Провел тест по локальной установке расширения через реестр и попытке обновления с внешнего сервера. Данный подход не выполнил поставленную задачу. Я установил расширение через реестр Windows. В install.rdf прописал тег UpdateURL и UpdateKey согласно описанию на developer.mozilla.org. После запуска браузера расширение успешно установилось (я разрешил установку). Обновление всех расширений не помогло. В логах не написано, что данное расширение проверялось на обновление. Интересно, что если установить в директорию профилей пользователей браузера, то все обновляется. А вот если через реестр, то нет. Неужели никак нельзя обновить локально установленные расширения? |
TopTuK > 18-11-2011 12:35:19 |
any ideas? |
Unghost > 20-11-2011 00:59:05 |
Сервер отдаёт манифест с правильным mimetype? |
TopTuK > 29-11-2011 13:38:20 |
Правильным, его можно скачать. |
hydrolizer > 29-11-2011 15:01:11 |
TopTuK пишет
Кхм... 10-11-2011 00:08:14 hydrolizer пишет
|
TopTuK > 05-12-2011 17:22:31 |
hydrolizer, Вы правы. Интересно, что если положить в директорию extensions профиля, то FF успешно подхватит это расширение. |