Recorded Canvas/WebGPU objects разных типов получают один идентификатор и UI связывает аргумент не с тем объектом. Разбор Safari TP 251: самостоятельный диагностический артефакт, прямые источники, опровержимый контроль, обратимый canary, stop-line и privacy-safe handoff.
Ответ на запрос: Object ID разных типов сталкиваются в Canvas Inspector Safari TP 251
Эта проверка начинается с измеримого условия. Единственная пользовательская боль: recorded Canvas/WebGPU objects разных типов получают один идентификатор и UI связывает аргумент не с тем объектом. Нормализованный intent этой страницы — «как проверить collision object identifiers по типам Canvas Inspector Safari Technology Preview 251». Критерий, который можно опровергнуть: каждая ссылка разрешается в объект ожидаемого типа; совпадение локального номера не меняет type ownership. Возможная ложная причина сформулирована отдельно: один объект, показанный в двух actions, ошибочно принятый за collision разных типов. До запуска выбирается такая развилка: reference ведёт к другому type — reproduced; same-type control ошибочен — recorder-invalid; ссылки корректны — pass. Если нужная поверхность отсутствует, ставится `unsupported`; если нет обязательного наблюдения, ставится `unknown`; оба статуса отличаются от `not-reproduced`. Проверка выполняется на изолированном fixture, поэтому не затрагивает production, VPN, маршрутизацию, рабочий профиль, реальные аккаунты или личные данные. Вывод нельзя переносить на stable Safari, другой браузер либо чужой сайт без отдельного опыта.
Доказательная граница 318567@main@main
Свежесть подтверждается release item, а механизм — commit. WebKit датирует Safari Technology Preview 251 26 августа 2026 года и перечисляет изменение: исправлены коллизии recorded object identifiers через назначение идентификаторов отдельно для каждого типа. Связанная primary-страница 318567@main@main была открыта 29 августа: identifier совпадает, commit title описывает тот же узкий механизм. Для темы «recorded Canvas/WebGPU objects разных типов получают один идентификатор и UI связывает аргумент не с тем объектом» этого достаточно только чтобы подтвердить наличие change item и его инженерную границу. Release Notes и 318567@main@main не измеряют количество затронутых пользователей, не доказывают поисковый спрос, не сообщают результат для произвольного приложения и не гарантируют попадание в стабильную версию. Google News, Reddit и Apple search results были лидами к перепроверке даты; их заголовки и комментарии не использованы как техническое evidence.
Артефакт опыта: типизированная матрица `object type/local id → displayed reference → resolved type`
Пустой бланк создаётся раньше первого прогона. Здесь это типизированная матрица `object type/local id → displayed reference → resolved type`. Локальный стенд: локальная короткая Canvas recording с двумя безопасными object types и повторным использованием числового local id. Схема записи специфична для задачи: `recordIndex` — наблюдаемое значение или пусто с причиной; `objectType` — наблюдаемое значение или пусто с причиной; `localId` — наблюдаемое значение или пусто с причиной; `displayId` — наблюдаемое значение или пусто с причиной; `resolvedType` — наблюдаемое значение или пусто с причиной; `actionName` — наблюдаемое значение или пусто с причиной; `referenceTarget` — наблюдаемое значение или пусто с причиной; `collisionFlag` — наблюдаемое значение или пусто с причиной. В строке 318567@main добавляются `expected`, `observed`, build, timestamp и единица, если она применима. Формула или источник каждого вычисленного значения указывается рядом; пропуск не превращается в ноль. IP, cookie, Authorization, токены, device labels, внешние URL, пути, сырые media и содержимое файлов исключаются до записи. Test-only идентификаторы разрешены в виде краткого hash внутри запуска и удаляются после cleanup. Именно набор «recordIndex, objectType, localId, displayId, resolvedType, actionName, referenceTarget, collisionFlag» делает материал самостоятельным: он отвечает на боль «recorded Canvas/WebGPU objects разных типов получают один идентификатор и UI связывает аргумент не с тем объектом», а не подставляет другое название в универсальный браузерный чек-лист.
Control и решение для 318567@main
Независимый control отделяет симптом от причины. Для 318567@main используется: два объекта одного типа и два разных типов при одинаковой последовательности recording actions. Он получает тот же build, порядок событий и поля «recordIndex, objectType, localId, displayId, resolvedType, actionName, referenceTarget, collisionFlag». Проверяемый confounder — один объект, показанный в двух actions, ошибочно принятый за collision разных типов. Если основная ветка отклоняется, а control остаётся спокойным, применяется развилка «reference ведёт к другому type — reproduced; same-type control ошибочен — recorder-invalid; ссылки корректны — pass». Если отклоняется control, итог `invalid`; если control технически недоступен, итог `environment-blocked`; если значения неполны, итог `inconclusive`. Нельзя объявлять дефект только потому, что фраза «recorded Canvas/WebGPU objects разных типов получают один идентификатор и UI связывает аргумент не с тем объектом» похожа на сообщение форума. Сначала должны совпасть fixture, измеряемая поверхность и ожидаемый ответ «каждая ссылка разрешается в объект ожидаемого типа; совпадение локального номера не меняет type ownership». Этот порядок запрещает объяснение задним числом и сохраняет различие между соседними API, layout и media change items.
Обратимый canary и критерий PASS
Canary меняет только заранее выбранное условие. Для этой статьи действие сформулировано так: записать три действия, открыть ссылки на объекты, завершить recording и уничтожить контекст. Сначала заполняется baseline по полям «recordIndex, objectType, localId, displayId, resolvedType, actionName, referenceTarget, collisionFlag», затем выполняется только указанная операция. После заранее выбранного settle-event те же поля читаются повторно без округления и подмены отсутствующих значений. PASS допустим лишь при условии: каждая ссылка разрешается в объект ожидаемого типа; совпадение локального номера не меняет type ownership. Затем действие полностью откатывается, и baseline для артефакта «типизированная матрица `object type/local id → displayed reference → resolved type`» должен восстановиться. Несовпадение rollback переводит запись в `invalid`, даже если основная ветка выглядела убедительно. Canary не расширяют на production, пользовательский media, рабочие разрешения, продолжительный стресс-тест или внешние страницы. Один run сохраняет свою строку; повтор не перезаписывает редкое отклонение.
Stop-line и privacy-safe handoff
Stop-line имеет приоритет над удачным наблюдением. Немедленная остановка: recording содержит внешнее изображение, object type не записан или UI вручную переименован. Для повторения оставляют build, hash fixture, поля «recordIndex, objectType, localId, displayId, resolvedType, actionName, referenceTarget, collisionFlag», expected/observed, control status, cleanup status и primary link 318567@main@main. Статус выбирается из `reproduced`, `not-reproduced`, `unsupported`, `environment-blocked`, `invalid`, `inconclusive`, `unknown`; отдельной строкой приводится развилка «reference ведёт к другому type — reproduced; same-type control ошибочен — recorder-invalid; ссылки корректны — pass». Перед передачей удаляются пути, имена, адреса, labels и любые значения, способные идентифицировать пользователя либо инфраструктуру. Даже успешный handoff подтверждает только условие «каждая ссылка разрешается в объект ожидаемого типа; совпадение локального номера не меняет type ownership» в этом fixture. Он не обещает автоматическое исправление, стабильную поддержку, индексацию, позицию, цитирование ИИ или доказанный спрос.
Материал подготовлен редакцией VOne с помощью ИИ; дата Release 251, primary 318567@main, техническая граница, самостоятельный артефакт, control, обратимость, privacy-stop и роль community lead постатейно проверены 29 августа 2026 года.
Источники и проверка
- WebKit — Release Notes for Safari Technology Preview 251 проверено 2026-08-29
- WebKit commit 318567@main проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.