Firefox 154 добавляет userContext в events: как не смешать сессии. Практический people-first разбор: безопасный baseline, один обратимый тест, матрица результата и явная стоп-линия без лишних данных.
Пользовательская боль и узкий вопрос
Здесь разбирается одна отдельная пользовательская боль: параллельные браузерные контексты попадают в один поток событий и портят артефакты чужого теста. Проверяемый вопрос сформулирован узко: как фильтровать WebDriver BiDi events по userContext в Firefox 154. Сходство по времени с обновлением не является доказательством причины. Сначала запишите наблюдаемый результат, точную версию и один ожидаемый результат; соседние сбои сети, профиля, расширений или устройства не включайте автоматически. Цель материала — получить реестр «test run × userContext × browsing context × event method × cross-talk», а не объявить версию виновной по одному совпадению. Диагностика начинается только если наблюдаемая боль совпадает с описанной; соседний симптом не подгоняется под статью. Для WebDriver симптом фиксируется на одной локальной fixture и одной паре browser/driver.
Официальный факт без расширения вывода
В открытых первичных документах подтверждено следующее: Firefox 154 добавил userContext в ряд WebDriver BiDi events. Это утверждение относится к Firefox 154 и не доказывает частоту симптома, долю затронутых устройств, популярность запроса или универсальность поведения. Контролируемый rollout, политика и поддержка API проверяются на конкретной установке отдельно. Источники ниже служат для границы технического факта; форумные и поисковые упоминания не использованы как доказательство причины. Слово rollout или API обозначает границу доступности, а не обещание одинакового результата на двух компьютерах. BiDi-спецификация задаёт форму команды или события, а не стабильность конкретного тестового набора.
Набор входных данных
До изменения соберите минимальный baseline: event method, browsing context id, userContext, test run id и timestamp без cookies, URLs with queries и полей форм. Не добавляйте полный профиль, историю просмотра, токены, IP-адреса или персональные данные, если они не меняют воспроизводимость. Для неизвестного значения оставьте unknown вместо догадки. Запишите версию, время и ожидаемый результат до опыта. Такой baseline позволяет отличить конфигурацию от версии и делает последующий откат проверяемым, не расширяя доступ к рабочей среде. До опыта проверяется полнота минимального набора: пропуск обязательного поля переводит вывод в unknown. Context id и event id допустимы только как одноразовые метки внутри очищенного запуска.
Изолированный тест
Выполните ровно один обратимый контроль: создать два пустых user contexts, вызвать по одному navigation event и сгруппировать их по userContext. Сохраните порядок A → контролируемое изменение B → возврат к A. Между шагами записывайте только наблюдаемое состояние из baseline; не обновляйте одновременно браузер, драйвер, ОС и тестовый код. Если возврат к A не восстанавливает исходный результат, причинная связь не подтверждена и эксперимент следует остановить, а не добавлять новые вмешательства. Тест выполняется в искусственном примере, где потеря, удаление или зависание не затронут рабочие данные. Каждый тест завершает сессию и проверяет отсутствие оставшихся prompt, stream или override.
Чтение результата
Сведите наблюдения в реестр «test run × userContext × browsing context × event method × cross-talk». Для каждого ряда укажите один из статусов: reproduced, not reproduced, stopped или unknown. Reproduced означает только локальную воспроизводимость в записанном окружении; оно не переносится на все версии и устройства. Not reproduced не опровергает официальный факт, а показывает, что выбранный контроль не повторил боль. Unknown сохраняется, если отсутствует обязательный вход или rollback не завершён. Матрица нужна для сравнения состояний, а не для вычисления рейтинга, вероятности или масштаба проблемы. Flaky и protocol mismatch различаются по временной шкале, а не по числу повторных запусков.
Пакет для воспроизведения
Критерий остановки: не логировать cookies, адреса с query, локальные хранилища и не создавать userContext для реального профиля. Для обращения достаточно обезличить версию, короткий expected/actual, три шага, статус возврата и реестр «test run × userContext × browsing context × event method × cross-talk». Удалите имена, пути, адреса, cookies, токены, содержимое медиа и полные дампы. Если вложение нельзя очистить, не отправляйте его. Не выдавайте локальный результат за массовый эффект и не обещайте исправление: материал формирует воспроизводимый вопрос для владельца продукта или теста. В обращении запрещено заменять отсутствующее наблюдение догадкой; неизвестное значение так и маркируется. Логи сокращаются до метода, статуса и времени; пути, URL-параметры и содержимое страницы удаляются.
Материал подготовлен редакцией VOne с помощью ИИ; технические утверждения, источники и границы вывода постатейно сверены с указанными первичными документами 28 августа 2026 года.
Источники и проверка
- Firefox 154: official release notes проверено 2026-08-28
- WebDriver BiDi specification проверено 2026-08-28
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.