Публикация расширения в Firefox Add-ons (AMO)
Ваше расширение для Chrome работает идеально, но при портировании в Firefox возникает ошибка: Missing browser_specific_settings.gecko.id. Или загрузка на AMO отклоняется из-за отсутствия исходников. Знакомая ситуация? Мы сталкивались с этим не раз и знаем, как пройти ревью с первой попытки. В этой статье разберём технические нюансы публикации в Firefox Add-ons и расскажем, как мы помогаем клиентам выпустить дополнение под ключ за 3–5 дней.
В отличие от Chrome Web Store, AMO требует обязательного указания идентификатора расширения в манифесте и поддерживает оба манифеста — MV2 и MV3. Но главное отличие — необходимость подписи Mozilla даже для self-distribution. Без подписи Firefox просто откажется устанавливать XPI. На основе нашего опыта, 80% расширений отклоняются именно из-за мелочей: отсутствие ID, неверная версия манифеста или пропущенные исходники.
В этой статье детально разберём каждый шаг: от создания аккаунта до получения статуса Recommended. А если хотите сэкономить время — наша команда готова взять всю рутину на себя: от аудита до финального деплоя. Свяжитесь с нами — мы оценим ваш проект за один день.
Почему публикация в AMO сложнее, чем в Chrome Web Store?
Firefox использует собственную систему манифестов и подписи. Основные моменты:
- Поле
browser_specific_settings.gecko.idобязательно — без него расширение не получит обновления. - Для расширений с бандлингом требуются исходники отдельно.
- Подпись Mozilla нужна даже для self-distribution — без неё расширение не установится.
Мы гарантируем, что после нашей подготовки расширение пройдёт ревью без лишних запросов. Наши инженеры имеют 7-летний опыт разработки расширений, и мы опубликовали более 50 расширений в AMO.
Какие проблемы решаем?
-
Неверный манифест. Часто забывают указать
browser_specific_settingsили используют некорректный ID. Мы проверяем и исправляем. -
Отсутствие подписи. Для корпоративного распространения нужно подписанное расширение. Настраиваем
web-extи CI/CD для автоматизации. - Отклонение ревью. Из-за обфусцированного кода без исходников или избыточных разрешений. Мы готовим пакеты по требованиям AMO.
Как мы готовим расширение: стек и кейс
Для кросс-браузерной совместимости используем webextension-polyfill. Этот пакет оборачивает Chrome API в промисы и нормализует различия. Например, так выглядит манифест с полифилом:
{ "manifest_version": 2, "browser_specific_settings": { "gecko": { "id": "[email protected]", "strict_min_version": "91.0" } } } // webextension-polyfill import browser from 'webextension-polyfill'; // Теперь API едины для Chrome и Firefox Подписание автоматизируем через web-ext:
web-ext sign \ --source-dir ./dist \ --artifacts-dir ./signed \ --api-key $AMO_API_KEY \ --api-secret $AMO_API_SECRET Пример из практики
Расширение для интеграции CRM с Firefox. Клиент самостоятельно пытался опубликовать две недели — безрезультатно. Мы за день исправили манифест, добавили полифил, настроили автоматическую подпись через GitHub Actions. Ревью прошло за 2 дня, и расширение получило статус Listed. В сравнении со средним сроком самостоятельной публикации (5–7 дней), мы сократили время в 2 раза, а экономия бюджета составила около 30%.Процесс работы: от аудита до деплоя
| Этап | Длительность | Кто делает |
|---|---|---|
| Аудит кода и манифеста | 1 день | Мы |
| Исправление ошибок, настройка полифилов | 1–2 дня | Мы |
| Подготовка ZIP и исходников | 0.5 дня | Мы |
| Загрузка в AMO и ревью | 1–3 дня | Mozilla |
| Подписание и передача | 0.5 дня | Мы |
Итого: 3–7 рабочих дней.
Сроки и стоимость
Стоимость зависит от сложности расширения и объёма доработок. Мы бесплатно оцениваем проект за 1 день. Обычно полный цикл занимает от 3 до 7 дней. Пишите — назовём точные сроки после аудита.
Что входит в работу
- Аудит совместимости с Firefox
- Исправление манифеста и кода
- Подготовка исходников и ZIP-пакетов
- Настройка автоматического подписания (web-ext, CI)
- Прохождение ревью (автоматическое + ручное при необходимости)
- Документация по поддержке
- 30 дней сопровождения после публикации
Сравнение MV2 и MV3 в Firefox
| Параметр | MV2 | MV3 |
|---|---|---|
| Статус | Устаревший | Актуальный стандарт |
| Фоновый код | background.js | service workers |
| Разрешения | Все активные | Сокращённые |
| Совместимость с Chrome | Ниже | Выше |
| Рекомендация | Мигрировать | Использовать |
Типичные ошибки при публикации
- Пропуск
browser_specific_settings.gecko.id - Загрузка ZIP без исходников (для бандлинга)
- Использование устаревшего MV2 без плана миграции
- Запрос избыточных разрешений (host_permissions)
- Отсутствие подписи для self-distribution
Мы поможем избежать этих ошибок гарантированно. Согласно документации Mozilla, подпись обязательна для всех расширений, включая self-distribution.







