К обсуждениям

Safari Technology Preview 251 включает custom property в ключ random()

Редакция VOne Технологии

Safari Technology Preview 251 включает custom property в ключ random(). Безопасная локальная диагностика: парный журнал «property name → random key → computed item → reload», одна переменная, отрицательный контроль, rollback и минимизированный пакет для поддержки.

Симптом, который нельзя смешивать с соседним

Запрос «как проверить ключ кэша random() для разных CSS custom properties Safari Technology Preview 251» сводится к одной проверяемой боли: две независимые custom properties получают связанное значение random(), потому что имя свойства не входит в cache key. До опыта фиксируется ожидаемый признак: кэш сохраняет повторяемость там, где она задумана, но не объединяет разные custom property только из-за совпадающего выражения. Нельзя расширять вывод на stable Safari, другой движок, произвольный сайт или массовость симптома. Главная ловушка здесь такова: случайно совпавшие числа возможны; вывод требует наблюдать ключевую зависимость и несколько reload, не один скриншот. Поэтому наблюдение получает статус reproduced только после повторного одинакового результата и успешного возврата; not reproduced относится исключительно к этому стенду, а unsupported, environment-blocked и unknown остаются разными статусами.

Доказательная опора без вывода о массовости

Официальные Release Notes WebKit от 26 августа 2026 года формулируют изменение так: WebKit исправил caching key random(), в котором отсутствовало имя custom property. Пункт связан с первичной записью 319096@main. Release page доказывает наличие изменения в ветке Safari Technology Preview 251, а commit задаёт техническую границу конкретной правки. Ни один из этих источников сам по себе не подтверждает частоту запроса, результат на конкретном устройстве или будущий перенос в стабильный выпуск. Публичная ветка о релизе использована только как свежий community lead; комментарии, реакции и поисковые snippets не превращаются в доказательство причины.

Наблюдаемые величины и чистый fixture

Стенд: локальный элемент с двумя custom properties, одинаковым диапазоном random() и одинаковым явным ключом; значения выводятся только в тестовые размеры. До воздействия запишите: текст обеих деклараций, computed значения, имя элемента, номер повторения и состояние после полного reload fixture. Рабочий артефакт — парный журнал «property name → random key → computed item → reload». У каждого ряда должны быть версия TP 251, время, expected, observed и отметка о валидности контроля. Не сохраняются IP, cookie, токены, Authorization, полные URL с приватными query, локальные пути, имена профилей и содержимое рабочих документов. Случайные или вымышленные данные стенда помечаются как тестовые. Если обязательное поле нельзя получить без доступа к реальным данным, эксперимент останавливается: пробел не заполняют догадкой и не компенсируют дополнительной мутацией.

Пошаговый тест с полным rollback

Canary меняет ровно одну причину: читать пары значений на серии независимых reload, затем поменять только имя одной custom property и повторить серию. Контроль устроен отдельно: одно и то же свойство читается дважды в одном цикле для проверки стабильности кэша, а разные явные ключи дают сравнительный режим. Сначала снимается baseline, затем выполняется единственное воздействие, после него — заранее выбранное измерение, затем полный rollback и повтор baseline. Новый шаг не добавляют, пока предыдущий не получил результат и контроль. Если rollback не вернул исходное состояние, прогон invalid, даже когда картинка кажется убедительной. Тест выполняется только локально или на специально подготовленном безопасном стенде; production, пользовательские сессии и чужие страницы в процедуру не входят.

Как читать результат и когда прекратить

PASS для узкой гипотезы означает: кэш сохраняет повторяемость там, где она задумана, но не объединяет разные custom property только из-за совпадающего выражения. Практический результат оформляется как парный журнал «property name → random key → computed item → reload». Stop-line: маленькая серия не доказывает качество случайности; статья проверяет идентичность ключа и стабильность, а не статистическое распределение. Для передачи разработчику достаточно: stylesheet, журнал пар без пользовательских данных, число повторов, метод reload, контроль ключа и 319096@main. Перед отправкой артефакт ещё раз очищают от идентификаторов и проверяют, что отрицательный контроль действительно отличался только указанной переменной. Материал не обещает исправление на другом сайте, стабильную поддержку функции, индексацию, позиции или универсальное поведение; он даёт воспроизводимый путь, по которому команда может отделить наблюдаемый факт от предположения.

Материал подготовлен редакцией VOne с помощью ИИ; дата, первичный WebKit commit 319096@main, техническая граница, контроль, обратимость, privacy-stop и роль community lead постатейно проверены 29 августа 2026 года.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.