Описание проекта
Существующее кэшбэк-расширение (No-Click CashBack) для внутреннго пользования на фирме перестало работать после перехода Chrome к Manifest V3. Необходимо адаптировать расширение к новым требованиям, отладить функционал контент-скриптов, фонового скрипта и обеспечить корректную работу логики (редиректы, сохранение clientId и т.д.).
Текущее состояние
Расширение на Manifest V2 было работоспособно, но Google заблокировал его, так как оно не соответствует новым требованиям.
Структура:
manifest.json (версия 3, частично переделан)
Фоновые скрипты (background/service worker)
Контент-скрипты (content.js)
Скрипты для popup (options.js)
Список магазинов (shops.js)
HTML-страницы (popup.html, notification.html и т.д.)
Основной функционал:
при запуске с сервера подгружается список онлайн магазинов
при посещении онлайн-магазина , если не было переходов за последние сутки - то срабатывет редирект в фоне
Редирект через сервер client.catalogpl.com.
потом человек попадает на онлйн магазин
Сохранение и использование clientId.
Задачи
- Адаптировать расширение к Manifest V3:
- Проверить и доработать manifest.json (permissions, host_permissions, background → service_worker, content_scripts).
- Исправить контент-скрипт (content.js):
- проверить его загрузку на нужных сайтах (сайты скачиваются по api с моего сервера)
- Исправить фоновый скрипт (background.js):
- Исправить/проверить логику редиректов через http://client.catalogpl.com/....
- проверить сохранение clientId
- Устранить ошибки и проверить работу:
- Убедиться, что редиректы работают, clientId сохраняется, уведомления отображаются.
Ожидаемый результат
Расширение должно успешно проходить требования Manifest V3.
Все основные функции (редирект, сохранение clientId, уведомления) работают без ошибок.
Код не содержит лишних inline-скриптов, не нарушает CSP.
Расширение корректно устанавливается и функционирует в актуальной версии Chrome.
Материалы
Исходный код (архив с файлами: manifest.json, background.js, content.js, options.js, popup.html, shops.js и т.д.).
Доступ к тестовому аккаунту (при необходимости).
Формат сдачи
Архив или Git-репозиторий с рабочим расширением, готовым к установке в режиме разработчика.
Краткая инструкция, как проверить функционал (редирект, ввод/сохранение clientId, проверка уведомлений).