Как опубликовать расширение в Mozilla Add-ons (Firefox)
Гайд по публикации Firefox-расширения через addons.mozilla.org. Полностью бесплатно — нет developer fee. Время прохождения: 1-10 рабочих дней.
Для публикации Firefox-расширения: (1) создайте бесплатный AMO Developer Account на addons.mozilla.org, (2) убедитесь что Manifest V3 совместим с Firefox (есть отличия от Chrome), (3) загрузите ZIP через Submit a New Add-on, (4) выберите listed (публичное) или unlisted (по прямой ссылке), (5) заполните описание и ассеты, (6) дождитесь approval (1-10 дней — обычно быстрее Chrome).
Шаг 1: Регистрация AMO Developer Account
- Перейдите на addons.mozilla.org/developers/
- Создайте Firefox Account (или войдите существующим)
- Подтвердите email
- Согласитесь с Developer Agreement
- Включите 2FA (опционально, но рекомендуется)
Регистрация полностью бесплатна. Не требуется оплата как в Chrome Web Store.
Шаг 2: Manifest V3 для Firefox
Firefox поддерживает Manifest V3, но с отличиями от Chrome:
- Firefox использует background scripts или event pages, а не service workers (Chrome MV3 использует service workers)
- Для совместимости с обоими браузерами используйте
browser_specific_settings:
{
"manifest_version": 3,
"name": "TON Scanner",
"version": "1.0.0",
"browser_specific_settings": {
"gecko": {
"id": "ton-scanner@toncoinshop.com",
"strict_min_version": "109.0"
}
},
"background": {
"scripts": ["background.js"]
}
}
Также можно использовать webextension-polyfill для общего кода:
npm install webextension-polyfill
// В коде:
import browser from 'webextension-polyfill';
// Работает в Chrome (через chrome.*) и Firefox (через browser.*)
const tabs = await browser.tabs.query({active: true});
Шаг 3: Listed vs Unlisted
Mozilla предлагает два режима публикации:
- Listed — публичное расширение в каталоге addons.mozilla.org. Доступно всем, индексируется поисковиками. Это наш выбор.
- Unlisted — расширение подписывается Mozilla (чтобы Firefox его принял), но не появляется в каталоге. Распространяется только через прямую ссылку или установку из вашего сайта.
Шаг 4: web-ext CLI для разработки
Mozilla предоставляет официальный CLI:
# Установка
npm install -g web-ext
# Запуск в Firefox с авто-перезагрузкой
web-ext run --source-dir=./your-extension
# Линтинг (обязательно перед submission!)
web-ext lint --source-dir=./your-extension
# Сборка готового XPI
web-ext build --source-dir=./your-extension
Шаг 5: Submission
- Перейдите на addons.mozilla.org/developers/addon/submit/
- Выберите «On this site» (listed)
- Загрузите ZIP-архив расширения
- Mozilla автоматически валидирует — исправьте все warnings/errors
- Подтвердите что используете source code из загруженного ZIP (если используете build process — приложите unminified source отдельно)
- Заполните Name, Summary, Description
- Выберите Category
- Загрузите иконки и скриншоты
- Укажите Privacy Policy URL
- Укажите Support email/URL
- Submit
Шаг 6: Review
Mozilla review происходит по двум трекам:
- Automated review — для простых расширений без особых permissions. Результат: подписание автоматически, доступно в каталоге сразу.
- Manual review — для расширений с broad permissions (например
<all_urls>) или сложной логикой. Время: 1-10 дней.
Если расширение Manual — обязательно предоставьте:
- Build scripts (если используется bundler)
- Unminified source files
- Инструкцию как воспроизвести build
- Тестовые credentials если нужно для review
Особенности Mozilla review
- Mozilla особенно требовательна к privacy — любая отправка данных должна быть в Privacy Policy
- Содержательный changelog в каждой версии — без него review может затянуться
- Не используйте
eval(),Function(),setTimeout(string)— автоматически отклоняется - Не подгружайте код с CDN — только bundled
- Если используете аналитику — выбирайте privacy-friendly решения (Plausible, не Google Analytics)