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

Safari Technology Preview 251: timeOrigin после смены browsing context group

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

Safari Technology Preview 251: timeOrigin после смены browsing context group. Локальная диагностика: лист «transition kind → timeOrigin → entry start → wall-clock delta → tolerance»; одно обратимое воздействие, независимый контроль, privacy-stop и пакет для разработчика без реальных данных.

Что не смешивать с соседними ошибками

Запрос «как проверить skew timeOrigin Navigation Timing после смены browsing context group в Safari Technology Preview 251» отвечает на одну самостоятельную боль: Navigation Timing entry получает смещённый timeOrigin после перехода, который меняет browsing context group. Узкий ожидаемый ответ здесь не равен обещанию исправления на любом сайте: нужно различить статус reproduced, not reproduced, unsupported, environment-blocked и unknown на одном фиксированном стенде. Главный соседний эффект, который обязан быть отделён, — коррекция системных часов или suspension вкладки вместо смены browsing context group. Поэтому до любого действия записывают наблюдение словами, а не диагнозом, и заранее задают успешный исход: временная шкала entry согласуется с новым timeOrigin в пределах заранее выбранной погрешности, контроль отделяет обычный clock jitter. Если результат не повторяется после rollback, первая попытка не считается доказательством.

Свежесть и предел первичного источника

Официальные Release Notes WebKit датированы 26 августа 2026 года и относят пункт к Safari Technology Preview 251: исправлен skew timeOrigin у Navigation Timing entries при смене browsing context group. Прямая первичная запись — 318057@main. Эта пара источников подтверждает наличие и техническую границу change item, но не подтверждает частоту жалоб, поисковый спрос, результат на конкретном устройстве, перенос в stable Safari или причину любого внешне похожего сбоя. Публичная ветка о релизе служит только свежим community lead; её комментарии и поисковый сниппет не используются как evidence. Вывод статьи ограничен указанной функцией и локальным воспроизведением.

Карта наблюдений

Безопасный fixture: две локальные страницы с изолирующими заголовками, одна контрольная без смены группы и журнал только относительных времён. До canary фиксируются performance.timeOrigin, entry.startTime, navigationStart equivalent, Date.now sample, headers и разность двух часов. Каждое поле получает expected, observed, время и отметку валидности, а итоговый рабочий артефакт — лист «transition kind → timeOrigin → entry start → wall-clock delta → tolerance». Стенд использует только синтетические данные: не сохраняются IP, cookie, токены, Authorization, полные приватные URL, реальные логи, имена профилей, локальные пути и пользовательское содержимое. Если обязательное наблюдение нельзя снять без таких данных, проверку прекращают. Нельзя заменять отсутствующее значение догадкой или добавлять вторую мутацию ради красивого результата.

Контроль, который может опровергнуть гипотезу

Контроль строится независимо от основной гипотезы: same-origin переход между страницами с одинаковыми заголовками, не меняющий context group. Он должен быть готов до воздействия и отличаться только проверяемым механизмом. Если контроль тоже меняется, результат main-fixture получает статус invalid, потому что возможны общая среда, renderer, cache или тестовая обвязка. Отдельно проверяется риск «коррекция системных часов или suspension вкладки вместо смены browsing context group»: его признак записывают рядом с основным, не смешивая строки. Такой дизайн не доказывает массовость, зато позволяет опровергнуть слишком широкое объяснение и не отправлять команде ложноположительный баг-репорт.

Rollback после одного воздействия

Единственное воздействие: выполнить один переход на страницу с заранее заданной сменой context group и сразу снять согласованный набор timestamps. Сначала снимается baseline, затем выполняется только это действие, после заранее выбранного settle-события записываются performance.timeOrigin, entry.startTime, navigationStart equivalent, Date.now sample, headers и разность двух часов, после чего выполняется полный rollback и повтор baseline. Успех узкой проверки означает: временная шкала entry согласуется с новым timeOrigin в пределах заранее выбранной погрешности, контроль отделяет обычный clock jitter. Никаких изменений production, чужих страниц, реальных аккаунтов или сетевой маршрутизации процедура не требует. Если rollback не возвращает исходное состояние, прогон помечается invalid даже при убедительном скриншоте; следующий эксперимент начинают только после чистого восстановления.

Классификация исхода

Решение оформляется через лист «transition kind → timeOrigin → entry start → wall-clock delta → tolerance». PASS допустим только когда выполнено условие «временная шкала entry согласуется с новым timeOrigin в пределах заранее выбранной погрешности, контроль отделяет обычный clock jitter» и независимый контроль остаётся валиден. NOT REPRODUCED означает лишь отсутствие симптома на этом fixture, а не отсутствие проблемы у всех. Stop-line: остановиться, если системные часы корректируются, вкладка заморожена, заголовки пришли из cache или измерения сняты в разные моменты. Для handoff достаточно версии TP 251, минимального кода, обезличенных значений «performance.timeOrigin, entry.startTime, navigationStart equivalent, Date.now sample, headers и разность двух часов», результатов контроля, статуса rollback и ссылки на 318057@main. Материал не обещает индексацию, позиции, универсальную поддержку, стабильный релиз или автоматическое исправление проекта.

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

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

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

Ответы

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

Ваш ответ

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

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

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