Safari Technology Preview 251: DOMMatrix2DInit в SVGMatrix.multiply. People-first диагностика: лист «input a–f → operand type → result a–f → point x/y»; синтетический fixture, независимый контроль, одно обратимое воздействие, stop-line и обезличенный handoff.
Проблема и соседняя ловушка
Прямой ответ на запрос «как проверить DOMMatrix2DInit dictionary в SVGMatrix multiply Safari Technology Preview 251» начинается с границы: проверяется только боль «SVGMatrix.multiply не принимает обычный словарь DOMMatrix2DInit, хотя значения a–f валидны» на локальном fixture. Успех заранее определяется так: plain dictionary и DOMMatrix дают одинаковые a–f и координаты точки в пределах выбранной погрешности. Нельзя подменять его похожей картинкой, общей скоростью браузера или выводом о стабильном Safari. Отдельная ловушка — ошибка порядка affine multiplication, названная отсутствием dictionary-support. Исход получает один из статусов reproduced, not reproduced, unsupported, environment-blocked, invalid или unknown. Первое наблюдение не считается доказательством, пока контроль и возврат к baseline не подтвердили, что изменилась ровно одна причина.
Официальная запись и её ограничения
Официальная страница WebKit от 26 августа 2026 года относит к Safari Technology Preview 251 следующий change item: добавлена поддержка передачи DOMMatrix2DInit dictionary в SVGMatrix.multiply(). Техническая ссылка — 318109@main. Release note и commit подтверждают наличие конкретного изменения в ветке, но не частоту жалоб, спрос, причинность для чужой страницы, результат на данном компьютере или перенос в стабильный выпуск. Публичная ветка MacRumors перепроверена только как community lead. Её текст, реакции и поисковые snippets не используются как фактологическое evidence и не дают права писать о массовости.
Минимизированный набор наблюдений
Fixture: локальный SVG с identity matrix, явным словарём a–f и одной контрольной точкой без DOM-рендеринга. До действия без интерпретации записываются поля dictionary, входная matrix, результирующие a–f, transformed point и тип исключения. Рабочий артефакт — лист «input a–f → operand type → result a–f → point x/y». У каждой строки есть expected, observed, время, версия TP 251 и флаг валидности. Используются только синтетические данные. Запрещено сохранять cookie, IP, Authorization, токены, реальные URLs с query, имена профилей, пользовательские файлы и полные логи. Если нужное поле нельзя получить без персональных или секретных данных, тест останавливается: пробел не заполняют догадкой и не расширяют сбор.
Отрицательный контроль
Контрольная ветка готовится до canary: ручное умножение двух 3x3 affine matrices для той же контрольной точки. Она проверяет, не объясняется ли симптом общей средой или тестовой обвязкой. Риск «ошибка порядка affine multiplication, названная отсутствием dictionary-support» получает собственную колонку, потому что совпадение внешнего вида не означает совпадение причины. Если control отклоняется вместе с основной веткой, результат invalid и публикационная формулировка не утверждает воспроизведение. Такой контроль не обещает универсальной корректности; он лишь делает конкретный вывод опровержимым и не позволяет замаскировать соседний сбой вторым изменением.
Обратимый тест
Основной шаг: передать один plain object с translation/scale, затем эквивалентный DOMMatrix экземпляр. Сначала фиксируется baseline, затем выполняется только указанное воздействие, после заранее выбранного settle-события повторно снимаются поля dictionary, входная matrix, результирующие a–f, transformed point и тип исключения. Далее состояние полностью возвращается и baseline измеряется ещё раз. PASS возможен, когда plain dictionary и DOMMatrix дают одинаковые a–f и координаты точки в пределах выбранной погрешности. Production, реальные аккаунты, чужие сайты, VPN-конфиги, маршрутизация и пользовательские данные в процедуру не входят. Если rollback не возвращает исходные признаки, весь прогон помечается invalid независимо от привлекательности результата.
Вердикт без расширения вывода
Финальное решение хранится как лист «input a–f → operand type → result a–f → point x/y». Reproduced означает только выполнение условия «plain dictionary и DOMMatrix дают одинаковые a–f и координаты точки в пределах выбранной погрешности» на этом стенде; not reproduced не опровергает проблему в других средах. Стоп-линия: остановиться, если словарь содержит 3D-поля, NaN, getter с побочным эффектом или сравнение использует разный порядок умножения. Для передачи разработчику достаточно минимального fixture, версии, обезличенных значений «поля dictionary, входная matrix, результирующие a–f, transformed point и тип исключения», результата контрольной ветки, отметки rollback и ссылки на 318109@main. Статья не обещает индексацию, позиции, спрос, стабильную поддержку или автоматическое исправление; сомнительный либо неполный прогон не должен становиться новым URL.
Материал подготовлен редакцией VOne с помощью ИИ; дата, WebKit Release 251, primary commit 318109@main, техническая граница, контроль, rollback, privacy-stop и роль community lead постатейно проверены 29 августа 2026 года.
Источники и проверка
- WebKit — Release Notes for Safari Technology Preview 251 проверено 2026-08-29
- WebKit commit 318109@main проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.