Service Worker · Safari · WebKit · Chromium · Удалённый Mac · 2026

Приёмка фронтенда в 2026 году на удалённом Mac:
Service Worker, кэш Safari, серая канарейка и откат — таблицы и три шага

15.04.2026 PWA и релизная инженерия 9 мин чтения
Slug: 2026-service-worker-safari-release-checklist-remote-mac.html

Для кого: команды с service worker и хэшированными ассетами. Только Chromium в CI скрывает тайминги WebKit и партиционирование кэша. Ниже — таблица Safari и Chromium, матрица канарейки и отката, исполняемые правила для skipWaiting и clients.claim, контракт префиксов кэша и RELEASE_ID, три шага перед продом и сценарий на удалённом Mac. Внутренние ссылки (живые URL в каталоге articles/): проверка деплоя Vite и Webpack в Safari, HTTP и QUIC в двух движках, Web Inspector и отладка. Правило CTA: технические блоки ведут в смежные статьи; финальный блок — на тарифы, помощь и аренду или покупку без обязательного входа.

01 Таблица различий Safari/WebKit и Chromium

Три боли релиза: (1) маркетинг видит новый билд, а клиенты остаются на старом контроллере; (2) после инвалидации CDN Safari кажется «липким» из‑за связки HTTP-кэша и Cache Storage; (3) канареечный процент включили без строки отката в runbook.

Тема Safari / WebKit Chromium
install → waiting Проверки на холодном старте ощущаются медленнее; между прогонами используйте панель воркера и Develop → Empty Caches. DevTools показывает состояния наглядно; Update on reload только локально, не как допущение для прода.
Cache Storage Квоты и вытеснение отличаются; длинный precache может тихо отклонять промисы в install. Метрики предсказуемее; следите за размером opaque ответов с других origin.
Navigation preload Поддержка и дефолты менялись между релизами — детектируйте фичу и логируйте булево при activate. Широко доступно; злоупотребление скрывает регрессии бэкенда по времени ответа.
Сторонний контекст ITP и партиции усложняют вход через iframe; отдельные приёмочные сценарии для OAuth. Партиционирование тоже ужесточено — не рассчитывайте на общий ключ кэша между сайтами.
Мгновенная активация Пользователи реже ожидают резкую смену ассетов; сочетайте автоактивацию с баннером версии. Тот же UX-риск; добавьте телеметрию на controllerchange.

Согласуйте политику скриптов с материалом CSP и nonce в Safari.

Серая канарейка и откат

Сценарий Канарейка Откат
Плохой precache Новый воркер с увеличенным STATIC_PREFIX и укороченным списком маршрутов; старые кэши только чтение до TTL. Верните предыдущий артефакт sw.js, восстановите прежний префикс, при необходимости удалите плохой префикс в activate.
Яд runtime-кэша Имена вида api-v12-runtime и фичефлаги на сервере. Выключите версию API, удалите пространство имён в activate, попросите клиентов о мягком обновлении.
Шок активации Отключите автоматический skipWaiting; тост при registration.waiting. Горячий фикс с skipWaiting только по согласованию, затем возврат политики в следующем деплое.

02 Проверки перед релизом

Префиксы кэша: закодируйте APP_SLUG, RELEASE_ID (SHA или semver) и канал, например acme-7f3c1b9-static и acme-7f3c1b9-runtime. После отката не переиспользуйте префикс: поднимите RELEASE_ID даже при совпадении файлов, чтобы телеметрия не лгала.

skipWaiting: вызывайте в install только если допустима мгновенная смена оболочки. Для кабинетов SaaS вызывайте из обработчика сообщения после явного согласия пользователя.

clients.claim: в activate только если новый воркер должен обслуживать уже открытые вкладки, например после патча безопасности. Избегайте при длинных формах и загрузке медиа без полного перезагрузочного цикла.

Три шага перед выкладкой

  1. Зафиксируйте контракт воркера: scope, лимит байт precache, список маршрутов без кэша.
  2. Двойная установка в CI: юнит-тесты хэндлеров плюс один прогон Playwright WebKit и один Chromium с проверкой баннера RELEASE_ID.
  3. Репетиция отката: намеренно сломайте воркер на staging, выполните строку отката из таблицы и засеките время восстановления.

Артефакты трассировки оформляйте по гайду Playwright trace и HAR; кэш сборки см. Rspack, esbuild и воркеры.

Цифры в отчёт: максимум пять мегабайт на precache как ориентир контроля; не более трёх одновременных префиксов static на канал; целевое время восстановления после отката меньше десяти минут при известном purge CDN.

03 Процедура проверки на удалённом реальном Mac

  1. Забронируйте Apple Silicon. Подключитесь к удалённому Mac, сверьте патч ОС с продом, откройте Safari и Chrome или Edge в одной пользовательской сессии.
  2. Сбросьте поверхности честно. Закройте вкладки origin, очистите кэши Safari, site data в Chromium, дважды загрузите канареечный URL.
  3. Прогоните waiting. Выкатите второй билд, убедитесь в состоянии waiting, примените боевую политику активации, сравните хэши файлов в сетевой панели.
  4. Офлайн и флейки. Кратко отключите сеть или включите офлайн в инструментах и проверьте fallback на активном префиксе.
  5. Упакуйте доказательства. Скриншоты, URL скрипта воркера, идентификатор purge и ссылка на тикет — одна запись в журнале релиза.

Часы удалённого Mac дешевле аварийного отката в окне маркетингового анонса.

04 FAQ

Когда вызывать skipWaiting автоматически?

Для статических витрин и внутренних стендов. Для авторизованных сценариев лучше явное обновление после уведомления, чтобы не смешивать старый HTML с новым воркером.

Обязателен ли clients.claim после activate?

Только если нужен немедленный контроль уже открытых вкладок. Иначе дождитесь полной навигации и снизьте сюрпризы в Safari.

Почему Safari отстаёт от Chromium?

WebKit по-другому складывает сетевой кэш, Cache Storage и расписание проверок SW. Сравнивайте одинаковый билд после очистки и логируйте ключи CDN.

Решит ли unregister инцидент?

Помогает на учениях, но бросает офлайн-пользователей. Предпочитайте версионированные префиксы и точечный caches.delete.

05 Конверсия

Закажите удалённый Mac, когда следующий майлстоун требует паритета Safari и Chromium на железе клиентов. Свяжите приёмку воркера с тарифами, разделом помощи по SSH и VNC, затем перейдите к аренде или покупке без длинного закупочного цикла. Список статей: блог.

Удалённый Mac · приёмка Service Worker

Аренда Mac для Safari и Chromium перед релизом

Проверьте install, waiting и activation на реальном Apple Silicon, приложите доказательства по кэшу и закройте тикеты быстрее аренды физического железа в офис. Тарифы и помощь доступны без входа; аренда или покупка — когда CI не воспроизводит WebKit.

Жизненный цикл SW WebKit Chromium
Mac под приёмку SW