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

Safari Technology Preview 251: согласованный lifecycle browser.alarms

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

Safari Technology Preview 251: browser.alarms даёт несогласованные значения между create, get, getAll и clear. People-first проверка: ledger alarm «create → get → getAll → clear → absence»; синтетический стенд, опровержимый контроль, один обратимый шаг, stop-line и минимизированный handoff.

Ответ и граница: Web Extensions

Этот запрос решается сравнением двух воспроизводимых веток на синтетическом стенде. Запрос «как проверить create get clear lifecycle browser alarms в Safari Technology Preview 251» относится только к ситуации: browser.alarms даёт несогласованные значения между create, get, getAll и clear. Условие успеха записывается до запуска: один и тот же alarm согласованно виден до clear и отсутствует после него без ложного firing. Внешне похожая ошибка сама по себе ничего не доказывает; отдельно проверяется ловушка «разница wall-clock и monotonic времени, ошибочно принятая за API inconsistency». Граница намеренно узкая: один механизм, один synthetic fixture и одна версия. Любой соседний сбой получает отдельную гипотезу, а не подгоняется под этот commit. Производственный сайт, реальный аккаунт и пользовательские данные исключены.

Что подтверждают Release 251 и 318493@main

Официальные WebKit Release Notes датированы 26 августа 2026 года и для Safari Technology Preview 251 сообщают: исправлены несколько несогласованностей browser.alarms API. Строка релиза ведёт к первичной записи 318493@main; её commit title и доступность перепроверены 29 августа. Из release page и commit нельзя выводить массовость, рейтинг или результат на произвольном Mac. MacRumors, Reddit и snippets не повышают уровень evidence технического тезиса. Технический предел статьи совпадает с формулировкой 318493@main и не расширяется поисковым заголовком.

Стенд и рабочий артефакт 318493

Стенд: development extension с одним alarm уникального тестового имени и временем достаточно далёким для отмены до firing. До воздействия без интерпретации запишите: operation, alarm name, scheduledTime, periodInMinutes, get/getAll presence, clear result и cleanup timestamp. Рабочий артефакт — ledger alarm «create → get → getAll → clear → absence». Используется минимизация данных: фиксируется allowlist наблюдений и validity flag, а всё идентифицирующее удаляется до сохранения. Если этого недостаточно, статус — environment-blocked. Наблюдение не интерпретируется до прохождения control и финального cleanup.

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

Отрицательная ветка нужна, чтобы одинаковый внешний результат не подменил одинаковую причину. Для этой боли используется: поиск заведомо отсутствующего имени и второй alarm без period для сравнения формы. Он проходит тот же порядок запуска, settle-событие и набор полей, что основная ветка. Риск «разница wall-clock и monotonic времени, ошибочно принятая за API inconsistency» получает отдельный признак. Контроль проходит то же settle-событие и те же поля. Его задача — различить механизм, поэтому совпавший сбой закрывает прогон статусом invalid. Такой дизайн делает тезис опровержимым и не требует доступа к исходным данным пользователя.

Одно обратимое воздействие

Разрешён один шаг: создать один alarm, прочитать его двумя путями, очистить и подтвердить отсутствие. Сначала снимите baseline, затем выполните только указанную операцию, дождитесь заранее выбранного события завершения и повторите поля «operation, alarm name, scheduledTime, periodInMinutes, get/getAll presence, clear result и cleanup timestamp». Снимите baseline, выполните одну операцию, дождитесь settle и повторите те же измерения. После полного возврата baseline обязан восстановиться, иначе даже привлекательный canary получает invalid. PASS допустим, когда один и тот же alarm согласованно виден до clear и отсутствует после него без ложного firing. Результат не усиливают словами о массовости; production, VPN, маршрутизация, чужие сайты и реальные media остаются вне опыта.

Stop-line, решение и минимальный handoff

Любое расхождение сначала проверяют повтором baseline после rollback. Остановитесь, если browser был suspended, системное время изменилось, имя конфликтует с другим тестом или cleanup не подтверждён. Финальная запись хранит ledger alarm «create → get → getAll → clear → absence», результат контроля, отметку rollback и ссылку на 318493@main. Сомнительный прогон остаётся invalid или unknown, а не новой уверенной публикационной формулировкой. Масштаб вывода ограничен паспортом стенда. Для handoff достаточно fixture, build, expected/actual, контрольной ветки, rollback и primary link; перед передачей удаляются пути и идентификаторы. PASS означает только условие «один и тот же alarm согласованно виден до clear и отсутствует после него без ложного firing». Материал не обещает индексацию, позиции, поисковый спрос, stable-поддержку или автоматическое исправление.

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

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

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

Ответы

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

Ваш ответ

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

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

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