Safari Technology Preview 251: приложение хочет включить ImageDecoder, но не отделяет наличие API от успешного декодирования конкретного типа. People-first проверка: canary «feature → MIME support → decode → dimensions/pixels → close»; синтетический стенд, опровержимый контроль, один обратимый шаг, stop-line и минимизированный handoff.
Ответ и граница: WebCodecs
Здесь полезен узкий эксперимент, а не догадка по внешнему симптому. Запрос «как проверить WebCodecs ImageDecoder API в Safari Technology Preview 251» относится только к ситуации: приложение хочет включить ImageDecoder, но не отделяет наличие API от успешного декодирования конкретного типа. Условие успеха записывается до запуска: поддерживаемый путь возвращает frame 2×2 с ожидаемыми пикселями, а unsupported-control не маскируется. Внешне похожая ошибка сама по себе ничего не доказывает; отдельно проверяется ловушка «наличие конструктора, ошибочно объявленное гарантией поддержки любого изображения или stable Safari». Не делайте вывод по одной картинке. Сначала отделите unsupported от environment-blocked, запишите версию и не меняйте второй параметр ради красивого результата. Производственный сайт, реальный аккаунт и пользовательские данные исключены.
Что подтверждают Release 251 и 319179@main
Официальные WebKit Release Notes датированы 26 августа 2026 года и для Safari Technology Preview 251 сообщают: добавлена поддержка WebCodecs ImageDecoder API. Строка релиза ведёт к первичной записи 319179@main; её commit title и доступность перепроверены 29 августа. Пара official/primary подтверждает change item, но не частоту жалоб, спрос, stable-релиз или причинность на чужой странице. Community discussion остаётся только lead к дате. Технический предел статьи совпадает с формулировкой 319179@main и не расширяется поисковым заголовком.
Стенд и рабочий артефакт 319179
Стенд: Blob встроенного 2×2 PNG с четырьмя известными цветами, feature detection и отсутствие файлов пользователя. До воздействия без интерпретации запишите: constructor presence, isTypeSupported, mime, decode complete, frame dimensions, selected pixel hashes и close state. Рабочий артефакт — canary «feature → MIME support → decode → dimensions/pixels → close». Собирайте только allowlist полей стенда и отметку валидности. Любая потребность в реальном аккаунте, полном логе, адресе, секрете или содержимом пользователя немедленно останавливает эксперимент. Наблюдение не интерпретируется до прохождения control и финального cleanup.
Контроль, который может опровергнуть гипотезу
Сравнение считается валидным, только если меняется одна переменная и обе ветки проходят одинаковый сбор. Для этой боли используется: заведомо неподдерживаемый MIME и обычный createImageBitmap для той же синтетической картинки. Он проходит тот же порядок запуска, settle-событие и набор полей, что основная ветка. Риск «наличие конструктора, ошибочно объявленное гарантией поддержки любого изображения или stable Safari» получает отдельный признак. Контроль проходит то же settle-событие и те же поля. Его задача — различить механизм, поэтому совпавший сбой закрывает прогон статусом invalid. Такой дизайн делает тезис опровержимым и не требует доступа к исходным данным пользователя.
Одно обратимое воздействие
Разрешён один шаг: декодировать один встроенный PNG, закрыть VideoFrame и ImageDecoder и удалить Blob URL. Сначала снимите baseline, затем выполните только указанную операцию, дождитесь заранее выбранного события завершения и повторите поля «constructor presence, isTypeSupported, mime, decode complete, frame dimensions, selected pixel hashes и close state». Операция выполняется один раз на synthetic fixture. Повторный baseline после cleanup важнее впечатления от промежуточного кадра и является обязательным условием валидности. PASS допустим, когда поддерживаемый путь возвращает frame 2×2 с ожидаемыми пикселями, а unsupported-control не маскируется. Результат не усиливают словами о массовости; production, VPN, маршрутизация, чужие сайты и реальные media остаются вне опыта.
Stop-line, решение и минимальный handoff
Неполный прогон нельзя превращать в уверенное утверждение или новый соседний URL. Остановитесь, если PNG загружен из сети, MIME подменён сервером, frame не закрыт или тест переносит вывод на другой codec. Финальная запись хранит canary «feature → MIME support → decode → dimensions/pixels → close», результат контроля, отметку rollback и ссылку на 319179@main. Сомнительный прогон остаётся invalid или unknown, а не новой уверенной публикационной формулировкой. Масштаб вывода ограничен паспортом стенда. Handoff должен позволять повтор без исходных данных пользователя: одна страница/extension fixture, измерения, control, cleanup и точная ссылка на изменение. PASS означает только условие «поддерживаемый путь возвращает frame 2×2 с ожидаемыми пикселями, а unsupported-control не маскируется». Материал не обещает индексацию, позиции, поисковый спрос, stable-поддержку или автоматическое исправление.
Материал подготовлен редакцией VOne с помощью ИИ; дата, WebKit Release 251, primary commit 319179@main, техническая граница, независимый контроль, обратимость, privacy-stop и роль community lead постатейно проверены 29 августа 2026 года.
Источники и проверка
- WebKit — Release Notes for Safari Technology Preview 251 проверено 2026-08-29
- WebKit commit 319179@main проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.