Переход с надстройки Firefox на WebExtensions: обновления версии надстройки в более старых версиях Firefox

У нас есть расширение Firefox, которое недавно было перенесено из архитектуры надстроек Firefox в «новую» архитектуру WebExtensions, однако у нас есть пара проблем:

  1. Есть ошибка, из-за которой наше расширение не может работать в FF49 с использованием WebExtensions.
  2. Мы хотим сохранить поддержку старой версии дополнений на https://addons.mozilla.org для поддержки клиенты, использующие более старые версии Firefox, включая Firefox ESR, но также хотят сделать версию WebExtensions доступной для тех, кто предпочитает самую последнюю и лучшую версию браузера.

Мой вопрос: Могу ли я иметь несколько версий нашего расширения, доступных на http://addons.mozilla.org/ которые поддерживаются для определенных версий Firefox? т. е. версия 1 нашего расширения поддерживает FF ‹= 49; версия 2 поддерживает FF >= 50.


person lepolt    schedule 08.11.2016    source источник


Ответы (1)


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

В файле manifest.json вы можете указать strict_min_version:

"applications": {
  "gecko": {
    "id": "[email protected]",
    "strict_min_version": "42.0",
    "strict_max_version": "50.*",
    "update_url": "https://example.com/updates.json"
  }
}

Однако для этого ключа manifest.json требуется Firefox 45 (для WebExtensions). Указание минимальной и максимальной версии для приложения было доступно в течение многих лет для других типов надстроек. Вам также потребуется вручную настроить максимальную совместимую версию Firefox для каждой версии вашего дополнения на странице Центр AMO для разработчиков.

В AMO Developer Hub на панели управления надстройки выберите «Управление статусом и версиями» (нижняя опция в верхней части цветного левого списка меню):
Выбор меню AMO

На странице, отображаемой при выборе «Управление статусом и версиями», выберите интересующую вас версию.

На странице каждой версии вашего дополнения вы можете изменить версии Firefox, с которыми совместима выбранная версия вашего дополнения:
Совместимость версии AMO Firefox

Примечание. Хотя по моему опыту выбор совместимости версий влияет на то, какая версия надстройки устанавливается автоматически, установка максимальной версии не помешает пользователям предложить установить и установить самую последнюю версию вашего дополнения в более поздних версиях Firefox, чем максимальная версия, указанная для самой последней версии вашего дополнения. Кроме того, AMO автоматически увеличит максимальную версию Firefox самой последней версии вашего дополнения на основе автоматического тестирования, даже если вы вручную установили максимальную версию.

Однако в надстройках других типов этим можно управлять с помощью strictCompatibility запись в install.rdf. В моем случае я не знал о несовместимости с будущей версией Firefox во время загрузки версии надстройки (до появления несовместимой версии Firefox). Таким образом, я не установил эту опцию в моем install.rdf. Для WebExtension этим можно управлять с помощью ключа strict_max_version в файле manifest.json.

Если у вас есть более новая версия вашего дополнения, загруженная в AMO, вам не нужно беспокоиться об этом. Версия вашего дополнения, совместимая с версией Firefox, запущенной пользователем, на основе информации, содержащейся в файле .xpi дополнения, и/или указанной вами в AMO. Панель управления Developer Hub для каждой версии должна автоматически выбираться для загрузки и установки. Новые версии вашего дополнения, объявленные несовместимыми со старой версией Firefox, не должны использоваться для автоматического обновления.

Примечание о переносе данных:
вам следует рассмотреть возможность выпуска по крайней мере одной версии вашего дополнения, в которой используется Встроенное WebExtension, чтобы иметь возможность перенести любые данные, которые вы сохранили в старой версии дополнения, в WebExtensions.

person Makyen♦    schedule 08.11.2016
comment
Из любопытства, есть ли у вас конкретный опыт обновления дополнения SDK версией WebExtensions? Существуют ли конкретные препятствия/советы по миграции? - person Xan; 08.11.2016
comment
Я еще не пытался обновить дополнение к WebExtensions. Все мои общедоступные надстройки используют возможности, которых нет и, вероятно, не будет в WebExtensions. Таким образом, мой опыт работы с WebExtensions в настоящее время включает в себя только некоторые еще не выпущенные надстройки (вероятно, в конечном итоге выпущенные) и около 40-50 небольших тестовых расширений, созданных для тестирования и / или для ответов на вопросы здесь. Однако у меня есть общедоступное дополнение, отличное от WebExtension, которое очень привязано к конкретным версиям Firefox. Его необходимо обновить для многих, но не для всех новых версий Firefox. Таким образом, я разобрался с проблемами обновления версии. - person Makyen♦; 08.11.2016
comment
Я думаю, что этот путь обновления заслуживает проверки, и у меня еще нет учетной записи AMO, чтобы сделать это. - person Xan; 08.11.2016
comment
@Xan, я согласен, тест, подтверждающий, что он работает именно с WebExtensions, - хорошая идея. Всегда возможно, что в коде, добавленном для интерпретации WebExtensions, есть ошибки. Однако эта возможность существует уже довольно давно для других типов надстроек. За последние несколько лет в выпусках Firefox было несколько потенциально критических изменений, когда эта возможность была необходима для многих надстроек. Отсутствие тестирования было основной причиной, по которой я также упомянул, что минимальная/максимальная версия должна также указываться через пользовательский интерфейс AMO Developer Hub, который я использовал/тестировал. - person Makyen♦; 08.11.2016