Оценка памяти Canvas/WebGL в Inspector почти не меняется после создания заметных texture/buffer resources. Разбор Safari TP 251: самостоятельный диагностический артефакт, прямые источники, опровержимый контроль, обратимый canary, stop-line и privacy-safe handoff.
Ответ на запрос: Canvas memory не учитывает graphics resources в Safari TP 251
Сначала зафиксируйте, какой результат опровергнет гипотезу. Единственная пользовательская боль: оценка памяти Canvas/WebGL в Inspector почти не меняется после создания заметных texture/buffer resources. Нормализованный intent этой страницы — «как проверить оценку памяти Canvas WebGL resources в Safari Technology Preview 251». Критерий, который можно опровергнуть: оценка отражает направление изменения graphics resources и после cleanup не остаётся монотонно завышенной. Возможная ложная причина сформулирована отдельно: рост JS heap или backing store самого canvas, ошибочно приписанный texture resources. До запуска выбирается такая развилка: дельта следует create/delete — pass; не меняется только GPU-ветка — reproduced; прыгают controls — inconclusive. Если нужная поверхность отсутствует, ставится `unsupported`; если нет обязательного наблюдения, ставится `unknown`; оба статуса отличаются от `not-reproduced`. Проверка выполняется на изолированном fixture, поэтому не затрагивает production, VPN, маршрутизацию, рабочий профиль, реальные аккаунты или личные данные. Вывод нельзя переносить на stable Safari, другой браузер либо чужой сайт без отдельного опыта.
Доказательная граница 318915@main@main
Свежесть подтверждается release item, а механизм — commit. WebKit датирует Safari Technology Preview 251 26 августа 2026 года и перечисляет изменение: улучшена оценка memory use Canvas, WebGL и WebGPU за счёт включения graphics resources. Связанная primary-страница 318915@main@main была открыта 29 августа: identifier совпадает, commit title описывает тот же узкий механизм. Для темы «оценка памяти Canvas/WebGL в Inspector почти не меняется после создания заметных texture/buffer resources» этого достаточно только чтобы подтвердить наличие change item и его инженерную границу. Release Notes и 318915@main@main не измеряют количество затронутых пользователей, не доказывают поисковый спрос, не сообщают результат для произвольного приложения и не гарантируют попадание в стабильную версию. Google News, Reddit и Apple search results были лидами к перепроверке даты; их заголовки и комментарии не использованы как техническое evidence.
Артефакт опыта: дельта-бюджет `resource class/count/dimensions → Inspector estimate before/after/delete`
Пустой бланк создаётся раньше первого прогона. Здесь это дельта-бюджет `resource class/count/dimensions → Inspector estimate before/after/delete`. Локальный стенд: локальный canvas с небольшими одноцветными textures фиксированных размеров и явным delete; без пользовательских изображений. Схема записи специфична для задачи: `resourceClass` — наблюдаемое значение или пусто с причиной; `count` — наблюдаемое значение или пусто с причиной; `dimensions` — наблюдаемое значение или пусто с причиной; `bytesFormula` — наблюдаемое значение или пусто с причиной; `estimateBefore` — наблюдаемое значение или пусто с причиной; `estimateAfterCreate` — наблюдаемое значение или пусто с причиной; `estimateAfterDelete` — наблюдаемое значение или пусто с причиной; `sampleTime` — наблюдаемое значение или пусто с причиной. В строке 318915@main добавляются `expected`, `observed`, build, timestamp и единица, если она применима. Формула или источник каждого вычисленного значения указывается рядом; пропуск не превращается в ноль. IP, cookie, Authorization, токены, device labels, внешние URL, пути, сырые media и содержимое файлов исключаются до записи. Test-only идентификаторы разрешены в виде краткого hash внутри запуска и удаляются после cleanup. Именно набор «resourceClass, count, dimensions, bytesFormula, estimateBefore, estimateAfterCreate, estimateAfterDelete, sampleTime» делает материал самостоятельным: он отвечает на боль «оценка памяти Canvas/WebGL в Inspector почти не меняется после создания заметных texture/buffer resources», а не подставляет другое название в универсальный браузерный чек-лист.
Control и решение для 318915@main
Независимый control отделяет симптом от причины. Для 318915@main используется: 2D canvas без GPU texture и WebGL-контекст с созданием, но без сохранения ссылок после delete. Он получает тот же build, порядок событий и поля «resourceClass, count, dimensions, bytesFormula, estimateBefore, estimateAfterCreate, estimateAfterDelete, sampleTime». Проверяемый confounder — рост JS heap или backing store самого canvas, ошибочно приписанный texture resources. Если основная ветка отклоняется, а control остаётся спокойным, применяется развилка «дельта следует create/delete — pass; не меняется только GPU-ветка — reproduced; прыгают controls — inconclusive». Если отклоняется control, итог `invalid`; если control технически недоступен, итог `environment-blocked`; если значения неполны, итог `inconclusive`. Нельзя объявлять дефект только потому, что фраза «оценка памяти Canvas/WebGL в Inspector почти не меняется после создания заметных texture/buffer resources» похожа на сообщение форума. Сначала должны совпасть fixture, измеряемая поверхность и ожидаемый ответ «оценка отражает направление изменения graphics resources и после cleanup не остаётся монотонно завышенной». Этот порядок запрещает объяснение задним числом и сохраняет различие между соседними API, layout и media change items.
Обратимый canary и критерий PASS
Canary меняет только заранее выбранное условие. Для этой статьи действие сформулировано так: создать ограниченный набор ресурсов, прочитать estimate, удалить их и дождаться одного settle interval. Сначала заполняется baseline по полям «resourceClass, count, dimensions, bytesFormula, estimateBefore, estimateAfterCreate, estimateAfterDelete, sampleTime», затем выполняется только указанная операция. После заранее выбранного settle-event те же поля читаются повторно без округления и подмены отсутствующих значений. PASS допустим лишь при условии: оценка отражает направление изменения graphics resources и после cleanup не остаётся монотонно завышенной. Затем действие полностью откатывается, и baseline для артефакта «дельта-бюджет `resource class/count/dimensions → Inspector estimate before/after/delete`» должен восстановиться. Несовпадение rollback переводит запись в `invalid`, даже если основная ветка выглядела убедительно. Canary не расширяют на production, пользовательский media, рабочие разрешения, продолжительный стресс-тест или внешние страницы. Один run сохраняет свою строку; повтор не перезаписывает редкое отклонение.
Stop-line и privacy-safe handoff
Stop-line имеет приоритет над удачным наблюдением. Немедленная остановка: создаётся большой ресурс, возникает memory pressure, включены другие вкладки или результат объявляется точным байт-в-байт. Для повторения оставляют build, hash fixture, поля «resourceClass, count, dimensions, bytesFormula, estimateBefore, estimateAfterCreate, estimateAfterDelete, sampleTime», expected/observed, control status, cleanup status и primary link 318915@main@main. Статус выбирается из `reproduced`, `not-reproduced`, `unsupported`, `environment-blocked`, `invalid`, `inconclusive`, `unknown`; отдельной строкой приводится развилка «дельта следует create/delete — pass; не меняется только GPU-ветка — reproduced; прыгают controls — inconclusive». Перед передачей удаляются пути, имена, адреса, labels и любые значения, способные идентифицировать пользователя либо инфраструктуру. Даже успешный handoff подтверждает только условие «оценка отражает направление изменения graphics resources и после cleanup не остаётся монотонно завышенной» в этом fixture. Он не обещает автоматическое исправление, стабильную поддержку, индексацию, позицию, цитирование ИИ или доказанный спрос.
Материал подготовлен редакцией VOne с помощью ИИ; дата Release 251, primary 318915@main, техническая граница, самостоятельный артефакт, control, обратимость, privacy-stop и роль community lead постатейно проверены 29 августа 2026 года.
Источники и проверка
- WebKit — Release Notes for Safari Technology Preview 251 проверено 2026-08-29
- WebKit commit 318915@main проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.