Practical guide — not a guarantee of store approval or defect-free software.

Release safety

Manifest V3 testing checklist before you publish.

A useful MV3 regression pass covers more than the popup. It checks the built package, host-page behavior, extension pages, permissions, storage, and what happens after the background service worker disappears and starts again.

Last reviewed August 18, 2026 · Based on current official Chrome extension guidance.

Keep the suite narrow. Automate the two or three journeys whose failure would block a release. Use unit tests for pure logic and manual exploration for new or unstable behavior.

1. Inspect the exact build you will ship

2. Start from an isolated browser profile

3. Test each user-visible surface

SurfaceMinimum release check
Toolbar popupIt opens, renders without clipped controls, reads the active tab correctly, and preserves or clears state as intended.
Options or extension pageDirect navigation works, saved settings reload, validation rejects bad input, and keyboard focus remains usable.
Content script / host UIInjection occurs only on intended hosts, survives client-side navigation where required, avoids duplicate UI, and does not break the page.
Service workerA cold start handles the next event, listeners are already registered, and necessary state is rehydrated from storage.
chrome.storageEmpty, populated, corrupted, quota, and migration cases have explicit outcomes.

4. Force the MV3 lifecycle failure

Chrome normally terminates an extension service worker after a period of inactivity. A passing warm test can therefore hide missing initialization or reliance on module-level variables. Stop the worker from the Extensions or DevTools interface, then perform the next critical user action without manually waking it first.

Official reference: Chrome’s extension service-worker lifecycle.

5. Exercise failure and recovery paths

6. Keep evidence that explains the first divergence

For each critical journey, capture the first failing step, the visible state, relevant console output, network result, current URL/surface, and service-worker state. Evidence should use synthetic data and avoid secrets. A screenshot alone is often insufficient when the failure is caused by a worker restart or message boundary.

7. Define the release gate

For implementation details, continue with testing a Chrome extension with Playwright and the service-worker restart test.

Is maintaining this checklist the painful part?

MV3 Replay is exploring a local visual workflow for recording these journeys and exporting readable Playwright. The product does not exist yet and no payment is taken.

Review the concept and proposed pricing