ServiceWorkerAutoPreload: проверка race между сетью и fetch handler. Privacy-safe диагностика: таймлайн route × network start × handler decision × response hash, независимый control, одно обратимое изменение, дерево решения и stop-line без утверждений о массовости.
Граница пользовательской боли: ServiceWorkerAutoPreload: проверка race между сетью и fetch handler
Узкий симптом этой страницы: после оптимизации один ресурс запрашивается дважды или fallback возвращает не тот response. Поисковое намерение нормализовано как «как проверить ServiceWorkerAutoPreload respondWith fallback race Chrome». До проверки нельзя называть причину: одинаковый внешний эффект могут дать browser build, профиль, policy, rollout, network control либо неверный fixture. Поэтому результатом будет не совет наугад, а таймлайн route × network start × handler decision × response hash с полями route,preloadPolicy,networkStart,handlerStart,handlerDecision,responseHash,requestCount,cacheState. Решающее правило задано заранее: один request и ожидаемый hash — pass; два requests — duplicate-race; hash другой только при fallback — routing-gap. Вывод относится только к описанному стенду и не переносится автоматически на другую организацию, ОС, браузер или пользователя.
Что подтверждено официальными материалами для chrome-service-worker-auto-preload-race-matrix
29 августа 2026 года редакция повторно открыла официальный Chrome Enterprise release corpus: он фиксирует Chrome 151 от 7 августа и изменения/планы соседних выпусков Chrome 152+. Для этой темы подтверждён факт: policy page фиксирует управляемый режим ServiceWorkerAutoPreload. Второй источник — Chrome Enterprise policy — ServiceWorkerAutoPreloadEnabled; он задаёт техническую или policy-семантику. Ни release notes, ни policy/spec не доказывают массовость проблемы, поисковый спрос, результат конкретной организации, индексацию или позиции. Community и news результаты использованы только как leads.
Изолированный стенд и артефакт таймлайн route × network start × handler decision × response hash
Работайте только в test profile, VM или test OU. Fixture: локальный service worker с тремя routes: respondWith, explicit fallback и delayed handler. Перед действием зафиксируйте build, platform, channel, rollout state, effective policy source и время. В таймлайн route × network start × handler decision × response hash обязательны поля: route,preloadPolicy,networkStart,handlerStart,handlerDecision,responseHash,requestCount,cacheState. Недоступное значение помечают unknown, а не заменяют нулём. В fixture разрешены только synthetic URLs, labels, files, identifiers и content. Не включайте cookies, tokens, account names, tenant IDs, IP, реальные документы, тексты, историю браузера, содержимое запросов или полные журналы.
Независимый control и одно обратимое изменение
Контрольная ветвь: Navigation Preload off и обычный fetch без service worker. Сначала подтвердите, что она воспроизводит ожидаемый baseline. Затем измените только один фактор: включить policy только в тестовом профиле, повторить три routes и удалить registration/cache. Version, test data, URL set, timing window, network state и остальные параметры оставьте теми же. Верните исходное состояние и повторите control. Если control не проходит, статус fixture-invalid; если результат исчезает после rollback или зависит от нескольких изменений, статус inconclusive. Не добавляйте workaround до фиксации исходной разницы.
Дерево решения по полям route,preloadPolicy,networkStart,handlerStart,handlerDecision,responseHash,requestCount,cacheState
Одна строка артефакта соответствует одному наблюдению. Сначала сравните control с заранее записанным oracle, затем экспериментальную ветвь с тем же oracle и только после этого repeat-after-rollback. Правило: один request и ожидаемый hash — pass; два requests — duplicate-race; hash другой только при fallback — routing-gap. Policy-owned, rollout-missing, unsupported, user-decision, network-blocked и unknown — разные исходы; их нельзя объединять словом «сломалось». Статус reproduced допустим только при зелёном control, одном изменённом факторе и повторяемом отличии. Он не обещает исправление и не объявляет универсальную причину.
Stop-line, cleanup и минимизированный handoff
Граница остановки: не применять optimization к рабочему origin до совпадения всех control hashes. После опыта удалите test profiles, OU drafts, fixtures, registrations, caches и временные файлы, верните policies/settings и подтвердите cleanup отдельной строкой. Handoff содержит build, platform, fixture version, route,preloadPolicy,networkStart,handlerStart,handlerDecision,responseHash,requestCount,cacheState, expected/observed, control result, rollback и следующий безопасный тест. Из него исключены secrets, полные URLs, account/tenant/device identifiers, документы, clipboard, request bodies и персональные данные. Если восстановление или минимизация не доказаны, материал нельзя превращать в production-рекомендацию.
Материал подготовлен редакцией VOne с помощью ИИ по открытым официальным и первичным источникам; факты, даты и ссылки перепроверены человеком. Реальные пользовательские данные и рабочие конфигурации не использовались.
Источники и проверка
- Chrome Enterprise and Education release notes проверено 2026-08-29
- Chrome Enterprise policy — ServiceWorkerAutoPreloadEnabled проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.