Аудит
Как работает Slopographic
Приложения работают в вашем браузере. Эта страница перечисляет функции браузера, которые они используют, каждый сетевой запрос, который они могут отправить, и то, что хранится на вашем устройстве, чтобы вы могли проверить каждое утверждение сами. Каждое утверждение здесь проверено по исходному коду в открытом репозитории.
Коротко
- Ваши файлы остаются на вашем устройстве. У приложений нет сервера, который их принимает, и никакой код не загружает открытый или сохранённый вами файл. Исключение — копия, которую вы разрешили отправить кнопке ИИ в сервис ИИ, подключённый вами самими.
- Файлы, которые вы выбираете на диске, читаются и записываются через File System Access API браузера, в выбранных вами папках. См. браузерные API.
- Данные хранятся в собственном хранилище браузера на этом устройстве (IndexedDB и localStorage). См. что сохраняется.
- Некоторые запросы покидают сайт, но только в случаях, перечисленных в всех исходящих запросах: скачивание, которое вы подтверждаете, резервная копия в облаке, которую вы подключили, сервис ИИ, подключённый с вашим ключом, курсы валют, которые вы включили, аналитика или реклама, которые вы приняли.
- Кнопка ИИ работает с моделью на вашем устройстве, с сервером на вашем компьютере, например Ollama или LM Studio, или с вашим ключом для такого сервиса, как Claude, ChatGPT или Gemini. С ключом то, что вы спрашиваете, уходит из браузера прямо к этому провайдеру. См. кнопку ИИ.
- Главная страница загружает код Google Analytics при каждом визите, с аналитикой в режиме «отказано». Другие страницы загружают его, только если вы приняли аналитику. Реклама загружается, только если вы приняли рекламу.
Простыми словами
Куда уходят мои файлы?
Никуда. Когда вы открываете фото, PDF или таблицу, приложение читает его внутри этой вкладки браузера. Шага загрузки нет, и нет сервера Slopographic, который мог бы его принять. То, что вы сохраняете, попадает на ваш собственный диск или в хранилище этого браузера на этом устройстве. Копия уходит в сервис ИИ только если вы подключили его со своим ключом и разрешили это (см. кнопку ИИ).
Почему приложение иногда что-то скачивает?
Некоторым функциям нужен большой файл, которым большинство людей никогда не пользуется: модель ИИ (чтобы удалить фон, распознать текст или расшифровать речь), видеодвижок (чтобы конвертировать видео) или шрифт для другой письменности. Такие файлы загружаются только тогда, когда вы используете функцию, после того как приложение сообщит, что это за файл и каков его размер. Они сохраняются в браузере, поэтому это происходит один раз. Ваши собственные файлы никогда не входят в этот запрос.
Работает ли это офлайн?
Да, после первого визита. Собственные файлы сайта сохраняются браузером, поэтому приложения открываются и работают без подключения. Нужна сеть только для скачивания, которое вы ещё не сделали (модели или шрифта).
Нужно ли что-то устанавливать?
Нет. Просто откройте приложение в браузере на телефоне, планшете или компьютере и начинайте. После первого визита оно продолжает работать без интернета. Хотите значок на главном экране? На iPhone или iPad нажмите «Поделиться», затем «На экран «Домой»». На Android откройте меню браузера и нажмите «Добавить на главный экран». На компьютере нажмите значок установки в адресной строке. App Store и Google Play не нужны, а ваши файлы остаются на вашем устройстве.
Что отправляет кнопка ИИ и куда?
Это зависит от выбранной модели. Модель на вашем устройстве (ей нужен WebGPU, и она скачивается один раз) отвечает внутри этой вкладки, и ничего из того, что вы спрашиваете, не покидает устройство. Ollama, LM Studio и похожие серверы работают на вашем компьютере или на сервере в вашей сети, который вы настроили. С вашим ключом для такого сервиса, как Claude, ChatGPT, Gemini, OpenRouter или Groq, ваши сообщения идут из браузера прямо к этому провайдеру, без сервера Slopographic посередине, и действуют его условия и цены. Копия файла или снимок вашей работы отправляются только после того, как панель спросит и вы разрешите (можно разрешить для одного запроса, для одного визита или всегда, а отозвать в разрешениях ИИ). Изображения, созданные или изменённые ИИ («Создать изображение», «Изменить с ИИ»), требуют подключённого сервиса изображений, например OpenAI, Gemini или OpenRouter с вашим ключом: ничего в браузере их не рисует. Модели на вашем устройстве и на вашем компьютере ничего не стоят. Gemini, Groq и Mistral имеют бесплатные тарифы, а у OpenRouter есть бесплатные модели (панель отмечает их как «Бесплатно»). Ключ хранится в этой вкладке, пока вы её не закроете, или в этом браузере только если вы отметили «Запомнить на этом устройстве». Для OpenRouter можно нажать «Войти через OpenRouter» вместо вставки ключа: браузер перейдёт на openrouter.ai, вы разрешите доступ там, и при возврате эта страница запросит у самого OpenRouter ключ для этого браузера. Вход идёт напрямую между вашим браузером и OpenRouter, ничего не проходит через серверы Slopographic. Ключ оплачивается из ваших кредитов OpenRouter и хранится точно так же, как вставленный; его можно ограничить или отозвать на openrouter.ai/settings/keys, а «Забыть ключ» удаляет его из этого браузера.
Может ли ИИ-агент использовать приложения?
В браузере с поддержкой WebMCP — да: помощник в браузере или агент на вашем компьютере, подключённый через расширение браузера, может выполнять команды приложения, конвертации и рабочие процессы File convert, а также открывать, сохранять и скачивать файлы. Он обращается к вашим файлам по идентификаторам; работа идёт в этой вкладке, и приложения ничего не загружают, хотя агент видит то, что инструменты возвращают. Всё, что удаляет или заменяет вашу работу, сначала спрашивает вас. WebMCP — ранний черновик: Chrome включает его в пробном режиме (версии с 149 по 156) и за флагом, Edge — за флагом, а Firefox и Safari пока нет. Отключите его в «Настройках» или в «Справке», раздел «ИИ-агенты».
Могу ли я проверить это сам?
Да. Исходный код открыт, а разделы ниже перечисляют каждую функцию браузера, которую используют приложения, и каждый запрос, который они могут отправить, с файлом, который его делает. Можно также открыть инструменты разработчика браузера, перейти на вкладку «Сеть» и посмотреть: открытие и сохранение ваших файлов ничего не отправляет.
Используйте Slopographic из Claude Code и других ИИ-приложений
Скоро: ИИ-приложение на вашем компьютере, например Claude Code, Codex, Cursor, VS Code или Claude Desktop, сможет использовать приложение Slopographic, открытое в браузере: его настоящие команды, конвертации и рабочие процессы, при этом ваши файлы поступают внутрь, а результаты возвращаются файлами на ваш компьютер. Работает это через сервер Slopographic MCP, небольшую программу, которую ИИ-приложение запускает на вашем компьютере. Не нужны ни учётная запись, ни установка, кроме самого ИИ-приложения.
- Claude Code: введите
/plugin marketplace add slopographic/claude-plugin, затем/plugin install slopographic@slopographic. Это нужно сделать один раз. - Введите
/slopographic:slop-connect(можно добавить название приложения, напримерphotoslop). Claude Code откроет Slopographic в браузере и покажет короткий код. - Chrome один раз спросит, может ли этот сайт использовать приложения и сервисы на этом устройстве. Выберите «Разрешить»: через это страница связывается с Claude Code на вашем компьютере. Страница общается только с вашим компьютером (127.0.0.1), а не с вашей сетью.
- Введите код на странице. Затем страница покажет в углу «Claude Code подключён · Отключить». Нажмите «Отключить» или закройте вкладку, чтобы завершить подключение.
Каждая вкладка связывается отдельно, а код работает один раз. Без него никто другой на вашем компьютере не может использовать страницу. Действия, которые удаляют или заменяют вашу работу, всё равно спрашивают вас на странице, как и в панели ИИ. Подключиться может любая страница Slopographic из палитры команд: Ctrl+K (⌘K на Mac), затем «Подключить ИИ-приложение…».
Настройка для других ИИ-приложений (Codex, Gemini CLI, Cursor, VS Code, Windsurf, Claude Desktop) появится здесь, когда будут готовы скрипты.
Чаты ChatGPT могут обращаться только к серверам в интернете, поэтому пока не могут использовать этот локальный сервер. Codex в настольном приложении ChatGPT может.
API браузера, которые используют приложения, и спецификация каждого
Пути к файлам показывают основные места, где используется каждый API. Остальные найдёте, выполнив поиск по названию API в репозитории.
| API браузера | Для чего используется | Где в коде | Спецификация |
|---|---|---|---|
File System Access: window.showDirectoryPicker, FileSystemDirectoryHandle, createWritable | Локальные диски в Slop Drive, папка резервных копий для облачной синхронизации, импорт папки «Галерея» (только чтение) и загрузка папки модели ИИ с диска. Только Chrome и Edge. Запись заменяет файл только при закрытии. | drive/js/core/prov-dir.js, drive/js/ui/prov-drives.js, shared/sync/providers/local.js, gallery/js/io/source.js, shared/ai/webllm.js | wicg.github.io/file-system-access · MDN |
| IndexedDB | Файлы Slop Drive, дескрипторы папок, деловые записи, хранилище шрифтов и моделей ИИ, зашифрованные токены входа. Полный список в Что сохраняется. | shared/hub.js, drive/js/core/drives-store.js, shared/data/store.js, shared/sync/tokens.js, shared/library/store.js | w3.org/TR/IndexedDB · MDN |
| localStorage | Небольшие настройки: ваш выбор согласия, настройки облачной синхронизации, настройки каждого приложения, параметры вида Drive. | shared/consent/state.js, shared/sync/config.js, shared/profile/profile.js, drive/js/core/util.js | WHATWG HTML, Web Storage · MDN |
| sessionStorage | Состояние входа хранится только пока идёт перенаправление на вход в облако. Очищается при закрытии вкладки. | shared/sync/sync.js | WHATWG HTML, Web Storage |
| Origin Private File System | Не используется. В коде нет вызова navigator.storage.getDirectory. | нет | WHATWG File System |
| Service Workers | Работа офлайн. Регистрируется каждой страницей приложения после загрузки. Отвечает только на GET-запросы того же источника. | service-worker.js, shared/pwa.js | w3.org/TR/service-workers · MDN |
| Cache Storage | Сохранённые копии собственных файлов сайта, файлов моделей вырезания и файлов моделей чата ИИ после того, как вы их скачали. | service-worker.js, shared/cutout/loader.js, shared/ai/webllm.js | W3C Service Workers, Cache objects · MDN |
| Web App Manifest | Позволяет браузеру установить сайт как приложение. Объявляет название, значки и стартовую страницу. | manifest.webmanifest | w3.org/TR/appmanifest · MDN |
Storage Manager: navigator.storage.persist(), estimate() | Просит браузер сохранить хранилище этого сайта после установки или в автономном режиме. Slop Storage спрашивает вас, прежде чем спрашивать браузер. Показывает, насколько заполнено хранилище. | shared/pwa.js, shared/storage/storage.js | WHATWG Storage · MDN |
| Web Workers | Тяжёлая работа вне страницы: вырезание изображений, увеличение, вывод AI Tools, сборка PDF. | shared/cutout/cutout.js, upscale/js/engine/engine.js, aitools/common.js, pdf/js/io/build.js | WHATWG HTML, Workers · MDN |
| WebAssembly | Запускает встроенный ONNX Runtime Web для AI Tools, Upscale, Image to 3D, распознавания лиц и вырезания, в один поток. Библиотека WebLLM приложения чата тоже основана на WebAssembly. | aitools/workers/ort.js, upscale/js/engine/worker.js, img3d/js/model/depth.js, shared/faces/index.js, shared/ai/webllm.js | WebAssembly Core spec · MDN |
| WebGPU | Приложение чата проверяет, что потянет ваш компьютер, а рабочий процесс вырезания запрашивает адаптер GPU. Запускает модель чата на GPU в Slop AI и в панели ИИ каждого приложения. | shared/ai/sysinfo.js, shared/cutout/worker.js, shared/ai/webllm.js | w3.org/TR/webgpu · MDN |
| WebGL 2 | Предпросмотр 3D и цветокоррекция в SlopCut. | 3d/js/render/stage.js, drive/js/core/render3d.js, slopcut/js/render/grade.js | Khronos WebGL 2.0 spec · MDN |
| Canvas 2D и OffscreenCanvas | Рисование, редактирование изображений и экспорт почти во всех приложениях. | Около 130 файлов вызывают getContext('2d'), например photoslop/js/io/save.js | WHATWG HTML, Canvas · MDN |
| File и Blob, перетаскивание | Открытие файлов, которые вы выбираете или перетаскиваете на страницу. Файлы не покидают страницу, пока вы их не сохраните или не отправите. | shared/drop/, shared/preview/chrome.js | W3C File API · MDN |
Web Crypto: crypto.subtle | Проверка SHA-256 каждого скачанного файла перед сохранением и AES-GCM для зашифрованных токенов входа. | shared/cutout/loader.js, shared/library/store.js, shared/sync/tokens.js | w3.org/TR/WebCryptoAPI · MDN |
| Уведомления | Уведомления браузера о напоминаниях, только после того как вы нажмёте кнопку, чтобы их разрешить. | reminders/js/app.js, shared/reminders/engine.js | WHATWG Notifications · MDN |
| BroadcastChannel | Сообщения между открытыми вкладками этого сайта (канал slopographic). Остаются внутри браузера. | shared/hub.js | WHATWG HTML, Broadcasting · MDN |
Web Share: navigator.share() | Системное окно «Поделиться», только когда вы нажимаете «Поделиться». Затем система отправляет файл в выбранное вами приложение. | shared/preview/chrome.js, ai/js/ui/speccard.js | w3.org/TR/web-share · MDN |
WebMCP: document.modelContext.registerTool() | Предлагает ИИ-агенту в браузере действия приложения как инструменты (его команды, файловые операции, файлы по идентификаторам), только там, где браузер поддерживает этот API и включена настройка «Разрешить ИИ-агентам использовать это приложение». Инструменты работают на странице. Токен пробной версии (origin trial) находится в заголовке каждой страницы. | shared/agent/webmcp.js, shared/agent/workspace.js, shared/agent/boot.js | W3C Web Machine Learning CG draft · Chrome |
| WebSocket | Связь с ИИ-приложением на вашем компьютере (сервер Slopographic MCP), только после того как вы выберете «Подключить ИИ-приложение…». Подключается к ws://127.0.0.1, только к этому компьютеру. | shared/agent/bridge.js | WHATWG WebSockets |
| Fetch | Каждый сетевой запрос приложений. Полный список в разделе Исходящие запросы. | Около 35 мест вызова fetch( примерно в 30 файлах (несколько из них — комментарии) | WHATWG Fetch · MDN |
Что хранится на этом устройстве
Всё ниже хранится в этом браузере, на этом устройстве. Ничего отсюда не отправляется на сервер. У каждого сайта своё хранилище, поэтому то же приложение в другом браузере имеет собственную копию.
| Название | Тип | Что хранит | Где задаётся |
|---|---|---|---|
slop-drive | IndexedDB | Файлы и папки Slop Drive, включая содержимое файлов. | shared/hub.js |
slop-drive-folders | IndexedDB | Именованные локальные диски: дескриптор каждой папки и её название. Удаление диска забывает только дескриптор. | drive/js/core/drives-store.js |
slop-sync, slop-sync-local | IndexedDB | Зашифрованные токены входа в облако (AES-GCM под ключом, который нельзя извлечь). Дескриптор выбранной папки резервных копий. | shared/sync/tokens.js, shared/sync/providers/local.js |
slop-data | IndexedDB | Деловые записи: клиенты, товары, остатки, счета, платежи и записи главной книги (shared/data/schema.js). | shared/data/store.js |
slop-library | IndexedDB | Шрифты, установленные из «Получить больше», и файлы шрифтов, которые вы добавили. | shared/library/store.js |
slop-aitools, slop-ai | IndexedDB | Установленные вами модели AI Tools и чаты в приложении чата ИИ. | aitools/models.js, ai/js/core/store.js |
slop-session | IndexedDB | Открытый вид каждого приложения и несохранённые черновики, чтобы при возвращении всё продолжилось с того места, где вы остановились. | shared/session/session.js |
slop-consent | localStorage | Ваш выбор для аналитики, рекламы и курсов. Выключено, пока вы не выберете. | shared/consent/state.js |
slop-sync | localStorage | Настройки облачной синхронизации: ваши идентификаторы клиента OAuth и время последней синхронизации. Токены здесь не хранятся. | shared/sync/config.js |
slop-ai-keys | IndexedDB | Ваши ключи ИИ, только если вы отметили «Запомнить на этом устройстве». Без этой отметки ключ остаётся в этой вкладке (sessionStorage) и исчезает при её закрытии. В резервные копии не попадает. | shared/ai/cloud/keys.js |
slop-ai.cloud, slop-ai.imagegen, slop-ai.permissions | localStorage | Какой сервис ИИ и какую модель вы выбрали, ваш лимит расходов, настройки изображений и выданные вами разрешения ИИ. Ключи никогда. | shared/ai/cloud/keys.js, shared/ai/imagegen/core.js, shared/ai/permissions.js |
slop-ai.signin | sessionStorage | Пока вы входите через OpenRouter: одноразовые PKCE-верификатор и state, которые подтверждают, что вход начат в этой вкладке. Используются один раз, исчезают при закрытии вкладки, ключ никогда не хранят. | shared/ai/cloud/signin.js |
slop.agents | localStorage | «off», когда вы выключили «Разрешить ИИ-агентам использовать это приложение». Пока опция включена, ничего не хранится. | shared/agent/boot.js |
slop.bridge | sessionStorage | Пока эта вкладка связана с ИИ-приложением на вашем компьютере: порт и токен связи, чтобы перезагрузка не разрывала подключение. Исчезают при отключении или закрытии вкладки. | shared/agent/bridge.js |
slop-profile | localStorage | Настройки каждого приложения, которые вы изменили по сравнению с умолчанием. | shared/profile/profile.js |
slop-drive.prefs, slop-drive.theme | localStorage | Параметры вида Slop Drive и тема. | drive/js/core/util.js |
slopographic-v38 | Cache Storage | Сохранённые копии собственных файлов сайта, чтобы сайт работал офлайн. | service-worker.js |
slop-cutout-v1 | Cache Storage | Файлы моделей для вырезания, после проверки их SHA-256. | shared/cutout/loader.js |
Cookie: код сайта никогда не записывает cookie (в репозитории нет вызова document.cookie). Ваш выбор согласия хранится в localStorage, а не в cookie. Скрипты аналитики и рекламы Google могут устанавливать собственные cookie при запуске. Раздел Cookie и аналитика объясняет, когда они работают.
Исходящие запросы: все места, куда может уйти запрос
Список ниже полный для репозитория: он получен поиском всех fetch(, XMLHttpRequest, адресов скриптов и изображений и всех внешних адресов в коде. Помимо скриптов аналитики и рекламы, которые загружаются только так, как указано ниже, приложения не загружают сторонние скрипты, шрифты или таблицы стилей. Сторонних шрифтов и iframe нет.
| Адрес | Какое приложение или часть | Зачем | Когда происходит |
|---|---|---|---|
www.googletagmanager.com (Google Analytics, ID G-HW6FWQVFK3) | Главная страница (index.html); другие страницы через shared/consent/consent-mode.js | Учёт просмотров страниц | Главная страница: при каждом визите, с аналитикой в режиме «отказано», пока вы не примете. Другие страницы: только после того, как вы приняли аналитику. |
pagead2.googlesyndication.com (AdSense) | Страницы с рекламными блоками (shared/ads/ads.js) | Реклама | Только после того, как вы приняли рекламу. Загружается единственным загрузчиком в shared/consent/consent-mode.js. |
huggingface.co и его хранилища hf.co и xethub.hf.co | Чат ИИ (shared/ai/webllm.js, ai/js/core/engine.js); AI Tools и приложения OCR (aitools/model-registry.js, aitools/models.js) | Файлы моделей: OCR (PP-OCRv4), теги и модели чата | После нажатия «Скачать» или установки модели в «Получить больше» с подтверждением её размера и лицензии, либо при загрузке модели чата. AI Tools проверяет SHA-256 каждого файла, и файл должен прийти с хоста Hugging Face или из репозитория slopographic/cdn. |
cdn.jsdelivr.net (jsDelivr, только /gh/slopographic/cdn@ с фиксированным выпуском) | Каждый файл из репозитория slopographic/cdn (shared/cdn/assets.js): наборы из «Получить больше», модели речи и OCR, движки HEIC, RAW с камер, 3D и видео | Более быстрая кэшированная копия репозитория ниже; файлы больше 20 МБ берутся с raw.githubusercontent.com | Те же случаи, что и в строке ниже. Если jsDelivr не отвечает или присылает неверные байты, тот же файл загружается с raw.githubusercontent.com и проверяется так же. |
raw.githubusercontent.com | Чат ИИ (shared/ai/webllm.js, ядра GPU); наборы из «Получить больше» (shared/library/packs.json) | Ядра для модели чата; файлы шрифтов с github.com/google/fonts (OFL); языковые шрифты (Noto, OFL) для письма на других языках, например арабском, китайском или хинди; модель Real-ESRGAN 4x для Slop Upscale, модель глубины для Image to 3D и модели речи для Slop Transcribe и AI Tools (Whisper, KB-Whisper, NB-Whisper; aitools/speech-models.js), из репозитория slopographic/cdn | Когда вы нажимаете «Скачать» в «Получить больше» или в диалоге «Язык и модель» и подтверждаете, либо загружаете модель чата. Языковой шрифт также загружается, когда вы пишете текст на письменности, которой он нужен (например, в Slop PDF): приложение сначала спрашивает, если только вы не выбрали автоматическую загрузку языковых шрифтов (shared/fonts/jit.js). Каждый файл проверяется по SHA-256 перед сохранением. |
accounts.google.com, oauth2.googleapis.com, www.googleapis.com | Облачная синхронизация с вашим Google Drive (shared/sync/providers/gdrive.js, pkce.js, config.js) | Вход, затем резервное копирование и восстановление одного файла копии в необязательной папке. Использует область drive.file, которая затрагивает только файлы, созданные этим приложением, или выбранные вами. | Только если вы подключились со своим идентификатором клиента OAuth и нажимаете кнопку копирования или синхронизации. |
www.dropbox.com, api.dropboxapi.com, content.dropboxapi.com | Облачная синхронизация с Dropbox (shared/sync/providers/dropbox.js) | То же, что для Google Drive, только для Dropbox | Только если вы подключились и нажимаете кнопку копирования или синхронизации. |
data-api.ecb.europa.eu | Курсы валют (shared/data/rates-ecb.js, открывается из «Настроек», читается «Главной книгой» и «Калькулятором») | Ежедневные опорные курсы EUR Европейского центрального банка | Только когда включена категория курсов и вы нажимаете «Обновить». Обновление при открытии выполняется, только если вы также его отметили. |
| Адрес изображения, перетащенного с другого сайта | PhotoSlop (photoslop/js/app/tabs.js) | Открывает перетащенное изображение в новой вкладке | Только когда вы перетаскиваете изображение с другой страницы в PhotoSlop. |
slopographic.com (сам сайт) | Каждая страница, логотип на главной, service worker | Собственные файлы сайта | При каждом визите. Ничего другого с этого источника не запрашивается. |
Сервис ИИ, который вы подключаете со своим ключом: например api.anthropic.com, api.openai.com, generativelanguage.googleapis.com, openrouter.ai или api.groq.com, либо адрес, который вы вводите для Ollama, LM Studio или другого сервера | Панель ИИ (shared/ai/cloud/, список сервисов в shared/ai/cloud/catalog/); изображения ИИ (shared/ai/imagegen/) | Ваши сообщения, инструменты приложения и их результаты, а также копия файла или изображения только после вашего разрешения; для изображений ИИ — запрос и, при изменении, само изображение (не больше 1536 пикселей) | Только после того, как вы добавите свой ключ или адрес сервера и отправите запрос. Модель на вашем устройстве ничего не отправляет. |
openrouter.ai/auth (страница, на которую вы переходите) и openrouter.ai/api/v1/auth/keys | Вход через OpenRouter на панели ИИ (shared/ai/cloud/signin.js) | На страницу входа: адрес этой страницы, куда вернуться, вызов PKCE и случайный state. На адрес получения ключа: одноразовый код, который выдал OpenRouter, и его верификатор PKCE; OpenRouter отвечает ключом для этого браузера. Напрямую между вашим браузером и OpenRouter, без серверов Slopographic. | Только когда вы нажимаете «Войти через OpenRouter». |
127.0.0.1 (ваш собственный компьютер) | Подключение ИИ-приложения (shared/agent/bridge.js) | Страница общается с сервером Slopographic MCP, который запустило ваше ИИ-приложение: инструменты приложения, их результаты и файлы, которые вы просите отправить или сохранить | Только после того, как вы выберете «Подключить ИИ-приложение…» и введёте код, который показывает ИИ-приложение. Chrome сначала спросит. |
| Только ссылки: Patreon, YouTube и Vimeo | Ссылка на пожертвование (shared/consent/donate.js), ссылки на видео в заметках (notes/js/video.js) | Открывает сайт в новой вкладке при нажатии | Только при нажатии. Видео в заметке показывается как ссылка, а не как встроенный проигрыватель или миниатюра. |
Две вещи, которые похожи на сетевую активность, но ею не являются: tools/vendor-codemirror.mjs загружает пакеты с cdn.jsdelivr.net, когда разработчик запускает его вручную для обновления встроенного кода. Приложения этот CDN никогда не загружают. Просмотрщик почты (eml/js/frame.js) блокирует внешние изображения и скрипты в письме политикой безопасности содержимого (CSP), поэтому открытие письма не загружает удалённые изображения и скрипты.
Cookie и аналитика
- Сохраняется кодом сайта: выбор согласия в localStorage (
slop-consent), при этом аналитика, реклама и курсы выключены, пока вы не выберете. Хранилище можно очистить в браузере в любое время. - Не сохраняется кодом сайта: ни cookie, ни учётной записи. Репозиторий никогда не записывает cookie.
- Google Analytics: на главной странице тег загружается с
analytics_storageв режиме «отказано». Он включается, только когда вы принимаете аналитику. На других страницах он загружается, только после того как вы примете. - Собственные скрипты Google могут устанавливать собственные cookie при запуске. Это решает Google, а не код Slopographic. Шаги аудита ниже показывают, что браузер действительно сохраняет.
- Реклама: AdSense загружается только после того, как вы примете рекламу. Если отказаться от рекламы, рекламные блоки останутся пустыми.
Работа офлайн
После одного визита собственные файлы сайта сохраняются в Cache Storage service worker-ом (service-worker.js, со списком файлов в sw-precache.js). Страницы сначала проверяются по сети, затем берутся из кэша, а затем показывается офлайн-страница. Ваши файлы не находятся в кэше service worker: они лежат в выбранной вами папке или в IndexedDB. Приложения продолжают работать с выключенной сетью. Скачивания (модели и наборы шрифтов, перечисленные выше) требуют сети при первом использовании.
Как проверить самостоятельно
- Вкладка «Сеть» при загруженной странице. Откройте приложение, нажмите F12 (или Cmd+Option+I на Mac) и откройте вкладку «Сеть». Включите «Сохранять журнал», затем перезагрузите страницу. Прочитайте столбец «Домен». При обычном визите должен быть виден только
slopographic.com, а на главной странице — ещё домены аналитики Google. - Вкладка «Сеть», офлайн. На вкладке «Сеть» откройте меню ограничения скорости и выберите «Офлайн». Перезагрузите, откройте файл, отредактируйте его и сохраните. Приложение должно работать. Всё, что требует загрузки, об этом сообщает.
- Вкладка «Приложение», хранилище. В Chrome или Edge откройте вкладку «Приложение». В разделе «Хранилище» посмотрите Local storage, Session storage, IndexedDB, Cookies, Cache Storage и Service workers. Сравните то, что видите, с таблицами на этой странице.
- Примите или откажитесь, затем сравните. Откажитесь от аналитики и рекламы в полосе согласия, перезагрузите страницу и снова проверьте вкладку «Сеть». Затем примите их и посмотрите, какие запросы появляются.
- Прочитайте исходный код. Код открыт в репозитории slopographic на GitHub. Ищите в нём
fetch(,indexedDB.open,localStorageилиshowDirectoryPicker, чтобы подтвердить любую строку на этой странице. Код согласия находится вshared/consent/, облачная синхронизация вshared/sync/, а списки загрузок вshared/library/иaitools/.
Локальные папки (File System Access API) требуют Chrome или Edge. Firefox и Safari их не предлагают, и приложения сообщают об этом там, где это важно.