Восстановление, хранилище и устранение неполадок
Глава 6: Восстановление, хранилище и устранение неполадок
Chrome будет прерывать расширение. Вопрос не «если», а «когда» — service worker засыпает в простое, вкладки закрываются, Chrome отбирает память под нагрузкой. Эта глава — о том, как расширение выживает и что делать, когда швы становятся видны.
Модель восстановления в одном абзаце
Каждая запись пишет свои аудиофрагменты и метаданные в IndexedDB (локальную базу данных браузера) по ходу дела. Если Chrome убьёт расширение в середине записи, фрагменты остаются. При следующем открытии боковой панели они появятся в списке сохранено на этом устройстве с кнопкой Upload all — авторизованные пользователи могут повторить прерванную загрузку с места остановки благодаря возобновляемым многочастным загрузкам. Анонимные пользователи могут скачать аудио на компьютер или войти и загрузить его позже. Ничего не теряется молча.
Этот раздел — сводка; примечания к выпускам версий 1.6–1.9 содержат полную историю классов ошибок, которые это заменило.
Список «сохранено на этом устройстве»
Открывается в верхней части боковой панели при наличии локально подготовленных записей. Каждая строка показывает:
- Заголовок встречи (или «Untitled —
<date>» для записей, которые не получили заголовка). - Длительность захваченного.
- Статус (Ready to upload / Uploading / Failed / Finalized).
- Кнопки: Upload (для авторизованных) или Download / Delete.
Upload all в верхней части списка опустошает очередь. Она выходит, как только повторная зачистка сигнализирует о завершении, а не ждёт полного четырёхминутного крайнего срока, поэтому она ощущается отзывчивой.
Когда Chrome убивает расширение в середине записи
Любое из перечисленного может произойти и обрабатывается:
- Вкладка, которую вы записываете, закрыта. Service worker получает событие
tabs.onRemovedи запускает обычную остановку + сброс загрузки до того, как Chrome сможет усыпить service worker. - Вкладка записи падает. Микрофонный content-script relay умирает; через 5 секунд без PCM-кадров боковая панель показывает предупреждение «microphone signal was lost». Запись останавливается, а фрагменты, захваченные до этого момента, подготавливаются для восстановления.
- Service worker перезапускается Chrome. При следующем холодном запуске расширение пингует offscreen-документ; если он отвечает, запись продолжается без разрывов, если нет — offscreen отбрасывается, и панель возвращается в состояние настройки с сохранёнными фрагментами.
- Offscreen-документ отбирается под давлением памяти. Его обработчик
pagehideпринудительно останавливает запись. 30-секундная защита от зависания сигнала микрофона внутри offscreen также останавливает запись, если все внешние сигналы потеряны. - Браузер закрыт во время записи. Запись появится в списке «сохранено на этом устройстве» при следующем открытии Chrome.
Единственный случай, который раньше молча приводил к потерям — окончание встречи Google Meet через single-page-app-навигацию — обрабатывается service worker, который отслеживает уход вкладки с URL кода встречи напрямую, независимо от content script.
Когда загрузка не удаётся
Загрузки используют возобновляемую многочастную передачу. Если часть не удаётся, повторяется только эта часть. Если вся загрузка умирает в середине передачи:
- Подготовленные фрагменты остаются в IndexedDB.
- Запись появляется в списке «сохранено на этом устройстве» со статусом Failed.
- Авторизованный: Upload в этой строке возобновляет передачу с последней успе шной части. Для длинных встреч это не полная повторная загрузка.
- Анонимный: Download сохраняет аудио на ваш компьютер как файл
.webm; вы можете воспроизвести его локально или загрузить позже после входа.
Управление хранилищем
Локальные записи больше не удаляются автоматически через 30 дней. Если вы относитесь к расширению как к автономному рекордеру — записываете встречи, храните файлы локально, никогда не входите — раньше старые записи молча исчезали. Это исправлено.
Только две категории безопасно очищаются автоматически:
- Финализированные сироты — загрузка подтвердила, что запись безопасно находится в R2, и локальная копия теперь избыточна.
- Сироты по 0 байт — запись умерла до захвата какого-либо аудио; нечего восстанавливать.
При 500 МБ подготовленных локальных записей вверху боковой панели появляется жёлтое предупреждение о хранилище. Оно рекомендательное — никакие данные не удаляются — но это подсказка войти и загрузить или скачать и очистить.
Чтобы очистить конкретную запись: кликните Delete в её строке в списке «сохранено на этом устройстве». Если у записи есть незагруженные живые заметки, удаление запрашивает подтверждение.
Распространённые проблемы
«Значок расширения серый на chrome://, edge:// или в Chrome Web Store».
Chrome запрещает расширениям работать на страницах chrome://, страницах edge:// и самом Chrome Web Store. Это общебраузерное ограничение; SeaMeet ничего не может сделать. Откройте встречу в обычной вкладке.
«Захват вкладки не удался с 'Cannot access a chrome:// URL' или 'Extension not allowed for this tab'».
Вкладка была открыта до установки расширения. Chrome отказывается подключать захват вкладки к вкладке без предоставленного разрешения. Перезагрузите вкладку и попробуйте снова.
«Записи отображаются как 0:00 в списке восстановления».
Это была ошибка в старых версиях — длительность записывалась только при остановке, поэтому у прерванной записи её не было. Теперь она сохраняется во время записи, так что это происходит только если запись закончилась до первого обновления длительности. Возвращается к — при неизвестности.
«Загруженный файл воспроизводится, но показывает неизвестную / бесконечную длительность».
Записи до 100 МБ переписывают метаданные длительности перед завершением загрузки, поэтому для них это исправлено. Более крупные или возобновлённые записи сохраняют резервный вариант Part-1 patch — файл воспроизводится, но небольшое количество плееров может некорректно перематывать. Попробуйте VLC в качестве обходного пути.
«Встреча Meet закончилась, но запись продолжалась».
Этот класс ошибок был исправлен в 1.9. Если это происходит в 1.9 или позже, сообщите — с номером версии из chrome://extensions/ и указанием платформы встречи.
«Субтитры остановились в середине встречи».
Живое преобразование речи в текст автоматически переподключается несколько раз; когда попытки исчерпываются, над транскриптом появляется баннер «Retry captions». Кликните его. Запись продолжается всё это время — никакое аудио не теряется.
«У записи вызова Meet неверный заголовок (заголовок вкладки)».
Это было исправлено в 1.8 — записи расширения теперь начинаются как «Untitled — <date>», совпадая со значением по умолчанию веб-приложения, так что сгенерированный ИИ заголовок встречи корректно заменяет его после загрузки. Если вы видите это в 1.8 или позже, переименование ИИ обычно догоняет в течение минуты.
Когда сообщать об ошибке
- Запись не появилась в списке «сохранено на этом устройстве» после прерывания.
- Upload all заявляет об успехе, но записи нет в вашей веб-библиотеке.
- Расширение приводит к падению Chrome (а не просто корректно завершается с ошибкой).
- Любая молчаливая потеря данных.
Сообщайте в репозитории настольного приложения (seasalt-ai/seameet-app-desktop) с версией расширения, версией браузера и, по возможности, скриншотом боковой панели.
Быстрый справочник
| Симптом | Попробуйте |
|---|---|
| Расширение не записало | Перезагрузите вкладку, затем повторите |
| Запись отсутствует после сбоя | Проверьте список «сохранено на этом устройстве» в боковой панели |
| Загрузка застряла | Кликните Upload снова в строке — возобновляемая многочастная |
| Субтитры остановились | Кликните Retry captions в баннере над транскриптом |
| Предупреждение о хранилище на 500 МБ | Войдите и Upload all, или Download и Delete |
| Встреча продолжала записываться после окончания | Обновитесь до 1.9+, если ещё не |
Последнее обновление: 2026-08-27
Опубликовано: