JEEKSSHIRE 24

Разработка расширения для браузера: задачи, права и публикация

Расширение для браузера — небольшая программа, которая работает прямо в Chrome, Edge, Firefox или Safari: добавляет кнопку, читает нужные данные со страницы, заполняет формы или связывает сайт, который открыт у сотрудника, с вашей CRM и сервисами. Простое расширение с одним сценарием обычно собирается за одну–две недели, ещё несколько дней уходит на проверку магазинов расширений.

Какие задачи решает расширение

Расширение полезно, когда работа уже идёт в браузере, а нужного действия на сайте нет. Вместо отдельного приложения сотрудник или клиент нажимает кнопку прямо на той странице, где находится.

Если задача шире одного действия на странице, правильнее может быть веб-сервис или Telegram-бот. Это стоит обсудить на разборе задачи: иногда расширение — самый короткий путь, а иногда лишний слой.

Как устроено современное расширение

Chrome, Edge и другие браузеры на основе Chromium принимают расширения в формате Manifest V3; Firefox поддерживает тот же формат с небольшими отличиями, а для Safari расширение упаковывается в приложение через Xcode. Поэтому одна кодовая база обычно покрывает все четыре браузера, а различия закрываются небольшими настройками сборки.

Удалённый код в Manifest V3 запрещён: вся логика расширения проходит проверку магазина вместе с ним, а данные и правила приходят с вашего сервера.

Права и безопасность

Главный вопрос и для пользователя, и для проверки магазина — какие права просит расширение. Чем шире доступ (например, ко всем сайтам), тем строже проверка и тем осторожнее люди при установке.

Эти правила мы применяем и в собственных продуктах: безопасность — требование к каждой правке, а не отдельный этап перед сдачей.

Публикация в магазинах расширений

Расширение публикуется в Chrome Web Store, Microsoft Edge Add-ons, Firefox Add-ons и App Store (для Safari). Для каждого магазина нужны описание, скриншоты, иконки, политика конфиденциальности и объяснение каждого запрошенного права. Проверка обычно занимает от нескольких часов до нескольких дней, а при широких правах — дольше.

Для внутреннего инструмента компании расширение можно не публиковать открыто: оно ставится по закрытой ссылке или через управление браузерами в компании.

Сроки и стоимость

Расширение с одним сценарием — кнопка, чтение страницы и отправка в ваш сервис — обычно занимает одну–две недели работы. Связь с несколькими системами, вход по аккаунту, боковая панель с ИИ-агентом и поддержка Safari увеличивают срок. Точную оценку даём после разбора задачи — из чего она складывается, описано в разборе «Стоимость разработки ПО».

Начинать лучше с одного сценария для одного браузера, а остальные добавлять следующими релизами: так польза появляется раньше, а решения проверяются на живых пользователях. Подробнее — в разборе «Разработка MVP».

Расширение, веб-сервис или бот: что выбрать

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

РасширениеВеб-сервисTelegram-бот
Где работаетПоверх сайтов, открытых в браузереОтдельная страница или кабинетВ переписке в мессенджере
Когда подходитНужно действие на своём или чужом сайте, не уходя со страницыНужны своя логика, данные и интерфейс для разных ролейНужны быстрые уведомления, заявки и короткие ответы
Что делает пользовательУстанавливает расширение в браузерОткрывает ссылку и входит в аккаунтНаходит бота и нажимает «Старт»
ОграниченияМобильные браузеры поддерживают расширения ограниченноНет доступа к чужим страницамСложные таблицы и длинные формы неудобны
Проверка перед публикациейПроверка магазина расширенийНе нужнаНе нужна

Часто правильный ответ — связка: веб-сервис хранит данные и правила, расширение даёт кнопку на нужной странице, а бот присылает уведомления. Подробнее о веб-части — на странице Веб-приложения, о ботах — в разборе «Telegram-бот для бизнеса».

Этапы разработки расширения

Работа идёт короткими шагами, и после каждого есть результат, который можно проверить руками.

  1. Разбор задачи. Фиксируем один главный сценарий: на каких сайтах работает расширение, что читает, куда отправляет и что видит пользователь. Здесь же решаем, какие права действительно нужны.
  2. Прототип. Делаем рабочую кнопку или боковую панель на одном сайте и в одном браузере, чтобы убедиться, что данные со страницы читаются надёжно.
  3. Серверная часть. Настраиваем вход по аккаунту, приём данных, проверку полей и запись в CRM, таблицы или другие системы.
  4. Интерфейс и тексты. Всплывающее окно, настройки, понятные сообщения об ошибках и языки интерфейса.
  5. Проверка. Тестируем на реальных страницах, в разных версиях браузера и на медленном соединении, а отдельно — поведение расширения, если сайт поменял вёрстку.
  6. Публикация. Готовим описание, скриншоты, политику конфиденциальности и объяснение прав, отправляем на проверку магазина или раздаём по закрытой ссылке.

Что проверять при сдаче каждого этапа, подробно описано в разборе «Приёмка программного проекта».

Обновления после публикации

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

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

Частые ошибки

Большинство проблем с расширениями появляется не в коде, а в решениях, принятых на старте.

Как мы работаем

Расширения мы делаем в рамках услуги Разработка ПО на заказ: начинаем с разбора задачи, называем срок и состав первой версии, а затем выпускаем её короткими этапами. Код, доступы к магазинам расширений и серверная часть остаются у заказчика.

Опыт, на который мы опираемся, — собственные продукты Wallet, Legal и Контент-завод: серверная часть, вход по аккаунту, ИИ-функции, публикация в магазинах приложений и поддержка после запуска. Те же правила — минимальные права, ключи только на сервере, журнал ошибок и плановые релизы — применяем и к расширениям.

Если расширение — часть большего продукта, например спутник веб-сервиса или ИИ-агента, обсуждаем всё вместе: так проще не дублировать логику и держать данные в одном месте.

Частые вопросы

Можно ли одно расширение сделать для Chrome, Edge, Firefox и Safari?

Да. Код обычно общий, а различия браузеров закрываются настройками сборки. Для Safari расширение дополнительно упаковывается в приложение и публикуется через App Store.

Сколько длится разработка расширения для браузера?

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

Можно ли сделать расширение только для сотрудников?

Да. Внутреннее расширение можно не публиковать открыто и ставить по закрытой ссылке или через управление браузерами в компании.

Расширение может работать с нашей CRM?

Да. Расширение отправляет данные на ваш сервер, а сервер записывает их в CRM, таблицы или другие системы. Ключи доступа остаются на сервере, а не в расширении.

Какие права нужны расширению?

Только те, без которых не работает главный сценарий: доступ к конкретным сайтам, хранилище настроек и связь с вашим сервером. Каждое право объясняется в описании для магазина, а доступ ко всем сайтам запрашивается, только когда без него задача не решается.

Что будет с расширением после обновления браузера или сайта?

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

Можно ли сделать платное расширение или подписку?

Да. Оплата обычно проходит на вашем сайте или в веб-сервисе, а расширение при входе проверяет на сервере статус аккаунта и открывает платные функции. Так оплата не зависит от правил конкретного магазина расширений.

ⓘ