В папке…
C:\Users\<user>\AppData\Local\Google\Chrome\User Data\Default\Service Worker\CacheStorage
…хром у меня 20+ Гб стабильно копит раз в n-месяцев. Другие браузеры такой подлянки не делают. Приходится это вычищать каждый раз.
И да, это не обычный кэш картинок, а именно сервис-воркеры. Что происходит: при заходе на сайт браузер может зарегистрировать фоновый процесс — Service Worker. Он работает независимо от вкладок и живёт в фоне, чтобы обеспечивать оффлайн-доступ (который мне нах не нужон), быстрый запуск страниц (я это отключаю лол), push-уведомления (ВСЕГДА ВЫКЛЮЧАЮ, АЛО! хватит засирать мой комп!) и прочий клятый PWA (Progressive Web App = «прогрессивное» мать его веб-приложение). В общем, адский ад.
У этого механизма есть собственное CacheStorage API. В отличие от стандартного HTTP-кэша, где умный браузер сам решает, что хранить и когда вычищать, здесь управляет сам сайт (sic!) через JavaScript. То есть код страницы может сказать: «положи вот эти 100500 МБ скриптов и картинок, плюс десяток видеофрагментов, плюс JSON с данными», и браузер как болванчик без вопросов сложит всё это в CacheStorage. В результате на диске оказываются буквально копии ресурсов сайта, вплоть до сраных видосиков. Не, вещь полезная дико… но должны быть какие-то блин лимиты?!
Почему растёт именно у Chrome?
У него политика квот такая, что он разрешает CacheStorage занимать до 80% свободного места на системном диске (верхний потолок может доходить до 50–100 Гб). И пока юзверь вручную не почистит, данные там остаются. Ну а например, святой Firefox ограничивает жёстче: там такие кэши срезаются быстрее и не дают разрастаться до десятков гигабайт.
Как именно?
Архитектурно это выглядит так: каждая «domain origin» (сайт) получает свой namespace в CacheStorage. Внутри — ключ-значение хранилище, реализованное поверх LevelDB (ключи — URL ресурсов, значения — бинарные блобы с контентом). Ну и скотина Chrome хранит это прямо на диске в указанной папке.
Сделано по-идиотски. Никаких автоматических политик «очистить старое» там нет, пока не включится принудительное высвобождение места (Eviction), которое срабатывает только при @#$% нехватке свободного пространства.
И ведь самое занятное — в настройках браузера ты об этом даже не узнаешь. «Очистить кэш» вроде бы есть, но это затрагивает только обычный HTTP-кэш. CacheStorage продолжает жить своей жизнью. То есть пользователь думает, что всё почистил, а на самом деле на диске сидит этот тайный склад мусора, организованный сервис-воркерами.
<вырезано цензурой>

Что делать.
Это чудо заняло у меня 100 гб на ssd диске
Как остановить это?
никак. чистить периодически 🙂 или перейти на другой браузер — firefox, например
А как именно чистить ?
у меня по адресу c:\Users\Windows\AppData\Local\Google\Chrome\User Data\Default\Service Worker\CacheStorage\ лежит 1.5 Гб какой-то хрени непонятной. Могу я просто вручную сделать DELETE всем файлам, которые лежат в папке Service Worker\CacheStorage\ ?
Или это чревато ?
Да, можно удалять