Документация
Память и приватность
Как расширение хранит и управляет состоянием синхронизации локально в браузере.
Для разработчиков
Расширение Vremya.io хранит все данные синхронизации локально в браузере с помощью IndexedDB и Chrome Storage API. Никакие данные календаря или учётные данные не отправляются на внешние серверы — всё остаётся на вашем устройстве.
Хранилище IndexedDB
Расширение использует IndexedDB (база OWAJiraSync) для структурированных данных, требующих быстрых запросов и больших объёмов:
- События календаря — захваченные события с метаданными, статусом синхронизации, ID worklog
- Очередь пересчёта статусов — события, ожидающие пересчёта
- Кэш задач Jira — закэшированные задачи для маппинга
- Статусы подключений — результаты последней проверки провайдеров и писателей
- Запросы — запросы синхронизации (активные и завершённые)
- Синхронизируемые события — события в процессе синхронизации
Chrome Storage (chrome.storage.local)
Используется для настроек, метрик производительности и небольших ключ-значение данных:
- Настройки — каналы синхронизации, включённые провайдеры, правила маппинга, состояние авторизации
- Метрики производительности — время обработчиков, история использования памяти, статистика загрузки страниц
Ячейка памяти в потоке синхронизации
У каждого канала синхронизации есть центральная ячейка памяти: Источники (OWA, EWS, Google и др.) → Память → Назначения (Jira, календари). Ячейка памяти хранит события между импортом и экспортом, обеспечивая офлайн-буферизацию и возобновление.
Мониторинг памяти
На страницах popup и настроек расширение отслеживает использование JavaScript heap (performance.memory) и сохраняет метрики в chrome.storage. При высоком использовании (>80%) выдаются предупреждения. Примечание: performance.memory недоступен в контексте Service Worker.