Полезная информация

Общайтесь со знакомыми и друзьями в нашей группе в Контакте.

№109-11-2011 17:26:54

TopTuK
Участник
 
Группа: Members
Зарегистрирован: 09-11-2011
Сообщений: 8
UA: Firefox 8.0

Обновление локально установленных расширений

Коллеги, добрый день!

Непростая ситуация сложилась при разработке расширения для ФФ в связи с переходом Мозиллы на ускоренный режим выпуска новых версий.

Вопрос к экспертам:
Я устанавливаю расширение для ФФ вместе с продуктом (записываю информацию в ветку реестра).
Такое расширение автоматически не обновляется из репозитория Мозиллы.

Необходимо придумать способ, который гарантированно бы позволял установить расширение локально (просто прописав наименование и пути в реестре), а также ФФ автоматически проверял наличие новой версии данного расширения в репозитории Мозилла.

К сожалению, писать для пользователя мануал, чтобы он зашёл туда-то, нажал то-то - слишком дорогая операция.

Что я пробывал:
1. Если расширение записать в %APPDATA%\Mozilla\Firefox\Extension\{ext_id}\install.rdf (тут все файлы расширения) - то получается такое же ограничение, как и пр записи в реестр. Это ожидалось, на developer.mozilla.com написано это же. https://developer.mozilla.org/en/Installing_extensions

2. Если я для каждого профиля FF запишу в директорию Extension мое расширение, то его станет возхможно обновить до новой версии. Но этот способ не подходит по нескольким причинам:
а. в XPI файле придется держать все локализации
б. такое расширение будет легко удалить.


Что очень хочется - установить расширение локально для всех профилей с возможностью обновления через репозиторий Mozilla.

P.S. Вариант использовать свой сервер обновлений рассматривается в качестве альтернативы
P.P.S Всем большое спасибо за помощь!

Отсутствует

 

№209-11-2011 18:37:54

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 8.0

Re: Обновление локально установленных расширений

TopTuK пишет

Что очень хочется - установить расширение локально для всех профилей

http://kb.mozillazine.org/Installing_ex … stallation

TopTuK пишет

с возможностью обновления через репозиторий Mozilla.

Если расширение ваше - обновление из вашего репозитория вас устроит? Если да - то сделать это можно вот так: https://developer.mozilla.org/en/Extens … patibility

Отсутствует

 

№310-11-2011 00:58:30

TopTuK
Участник
 
Группа: Members
Зарегистрирован: 09-11-2011
Сообщений: 8
UA: Chrome 15.0

Re: Обновление локально установленных расширений

hydrolizer пишет
TopTuK пишет

Что очень хочется - установить расширение локально для всех профилей

http://kb.mozillazine.org/Installing_ex … stallation

TopTuK пишет

с возможностью обновления через репозиторий Mozilla.

Если расширение ваше - обновление из вашего репозитория вас устроит? Если да - то сделать это можно вот так: https://developer.mozilla.org/en/Extens … patibility

Да, вариант с использованием нашего репозитория есть. (сответственно прописывать UpgradeURL).
Завтра протестирую вариант с "-install-global-extension".

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

Отсутствует

 

№410-11-2011 03:08:14

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 8.0

Re: Обновление локально установленных расширений

TopTuK пишет

Первоначально задача ставилась как размещение расширений в репозитории Mozilla

А у вас есть доступ на запись этот "репозиторий"? Расширения даже от самой MoFo устанавливаются не из репозитория, а всё с того же АМО. И поэтому вариантов - только 2: устанавливать расширение с АМО, либо устанавливать из какого-то другого источника. Для первого варианта вам нужно просто разместить на АМО расширение. Что нужно для второго - описано в данной выше ссылке. Если место, где вы разместите расширение, будет доступно по https-соединению, то install.rdf/update.rdf не нужно будет подписывать ключом. Кроме того, функциональность апдейта из произвольного расположения вполне поддерживает апдейт по протоколу file:///.

TopTuK пишет

Завтра протестирую вариант с "-install-global-extension".

-install-global-extension не работает со времен FF3.6. Если надо установить расширение глобально, то придется это делать вручную.
Далее, я не припомню опции для обновления глобально установленных расширений вручную из менеджера дополнений - поэтому сомневаюсь, что обновление таких расширений возможно вообще, включая автоматическое. Видимо, предполагалось, что обновление установленных таким образом расширений ложится целиком на администратора. Возможно, функцию апдейта можно для отдельного расширения вызвать искусственно из самого расширения - это нужно проверить.

TopTuK пишет

Может существует API, которое бы позволяла установить конкретное расширение конкретной версии из репозитория?

https://developer.mozilla.org/en/Addons … rURL%28%29
https://developer.mozilla.org/en/Addons … File%28%29

TopTuK пишет

а. в XPI файле придется держать все локализации

А обычно так и делается - xpi содержит все локализации, какие есть.

TopTuK пишет

б. такое расширение будет легко удалить.

Расширение, даже установленное глобально в папку %ProgramFiles%\Mozilla Firefox\extensions, на которую у пользователя нет прав на запись, можно легко отключить. Более того, начиная с последнего релиза, такое расширение по умолчанию будет отключено, а при первом запуске профиля FF спросит у пользователя, желает ли он включить это расширение (и пользователь, разумеется, может не пожелать этого). Если вам нужно без каких-либо вариантов заставить пользователя использовать свое расширение - боюсь, вам остается только запаковать его внутрь omni.jar. Но это уже будет не расширение, а просто свой код, включенный внутрь FF.

Отсутствует

 

№510-11-2011 12:16:09

TopTuK
Участник
 
Группа: Members
Зарегистрирован: 09-11-2011
Сообщений: 8
UA: Firefox 8.0

Re: Обновление локально установленных расширений

hydrolizer пишет

Расширение, даже установленное глобально в папку %ProgramFiles%\Mozilla Firefox\extensions, на которую у пользователя нет прав на запись, можно легко отключить. Более того, начиная с последнего релиза, такое расширение по умолчанию будет отключено, а при первом запуске профиля FF спросит у пользователя, желает ли он включить это расширение (и пользователь, разумеется, может не пожелать этого). Если вам нужно без каких-либо вариантов заставить пользователя использовать свое расширение - боюсь, вам остается только запаковать его внутрь omni.jar. Но это уже будет не расширение, а просто свой код, включенный внутрь FF.

Вы абсолютно правы насчет директории %ProgramFiles%\Mozilla Firefox\extensions, но мы прописываем наши расширения в реестр, а сами расширения лежат в директории с продуктом. Продуктовая директория защищается самозащитой.

Спасибо большое за помощь, будем думать.
IMHO вариант с размещением XPI-файла в директории extensions каждого профиля FireFox наиболее подходит под описанные требования.

P.S.

hydrolizer пишет

олее того, начиная с последнего релиза, такое расширение по умолчанию будет отключено, а при первом запуске профиля FF спросит у пользователя, желает ли он включить это расширение

Да, на мой взгляд такое новшество - спорная идея. У нас три расширения устанавливаются вместе с продуктом, пришлось для каждого отдельно перезапускать браузер.

Отсутствует

 

№616-11-2011 12:42:16

TopTuK
Участник
 
Группа: Members
Зарегистрирован: 09-11-2011
Сообщений: 8
UA: Firefox 8.0

Re: Обновление локально установленных расширений

Провел тест по локальной установке расширения через реестр и попытке обновления с внешнего сервера. Данный подход не выполнил поставленную задачу.
https://developer.mozilla.org/en/Instal … #updateURL
https://developer.mozilla.org/en/Adding … s_Registry

Я установил расширение через реестр Windows. В install.rdf прописал тег UpdateURL и UpdateKey согласно описанию на developer.mozilla.org.
На сервер я выложил обновления, а также файл UpdateXPI.rdf. В манифесте обновления прописал пути к новой версии, ее контрольную сумму.
Манифест подписал в теге Signature.

После запуска браузера расширение успешно установилось (я разрешил установку). Обновление всех расширений не помогло. В логах не написано, что данное расширение проверялось на обновление.
Все делал согласно документации, представленной выше. Локальный Web сервер работает, с него можно скачать через браузер файлы.

Интересно, что если установить в директорию профилей пользователей браузера, то все обновляется. А вот если через реестр, то нет.
На всякий случай изменил дату создания и модификации директории с расширением.

Неужели никак нельзя обновить локально установленные расширения?

Отсутствует

 

№718-11-2011 12:35:19

TopTuK
Участник
 
Группа: Members
Зарегистрирован: 09-11-2011
Сообщений: 8
UA: Firefox 8.0

Re: Обновление локально установленных расширений

any ideas?

Отсутствует

 

№820-11-2011 00:59:05

Unghost
Призрак-админ
 
Группа: Administrators
Откуда: Moscow, Russia
Зарегистрирован: 08-10-2004
Сообщений: 11771
UA: Nightly 11.0

Re: Обновление локально установленных расширений

Сервер отдаёт манифест с правильным mimetype?
Также установите app.update.log в true, откройте Консоль ошибок и запустите обновление. Посмотрите что напишет.


Do not meddle in the affairs of Wizards, for they are subtle and quick to anger.

Отсутствует

 

№929-11-2011 13:38:20

TopTuK
Участник
 
Группа: Members
Зарегистрирован: 09-11-2011
Сообщений: 8
UA: Firefox 8.0

Re: Обновление локально установленных расширений

Правильным, его можно скачать.
app.update.log установлен. В лог не попадает ничего. По-видимому, не опрашивает FF локально установленные расширения.

Отсутствует

 

№1029-11-2011 15:01:11

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 9.0

Re: Обновление локально установленных расширений

TopTuK пишет

По-видимому, не опрашивает FF локально установленные расширения.

Кхм... 10-11-2011 00:08:14

hydrolizer пишет

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

Отсутствует

 

№1105-12-2011 17:22:31

TopTuK
Участник
 
Группа: Members
Зарегистрирован: 09-11-2011
Сообщений: 8
UA: Firefox 8.0

Re: Обновление локально установленных расширений

hydrolizer, Вы правы. Интересно, что если положить в директорию extensions профиля, то FF успешно подхватит это расширение.

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]