Back to feed
Dev.to
Dev.to
7/6/2026
The original title is "5 Manifest V3 Gotchas That Cost Me Way More Time Than They Should Have"

The original title is "5 Manifest V3 Gotchas That Cost Me Way More Time Than They Should Have"

Original: 5 Manifest V3 Gotchas That Cost Me Way More Time Than They Should Have

Short summary

Chrome's Manifest V3 introduces breaking changes that silently cause production failures. Five critical gotchas: service workers don't persist state in memory, event listeners must register synchronously before Chrome discards them, inline scripts violate CSP policies, async message passing requires explicit channel-keep-open flags, and broad permissions trigger store review scrutiny. Understanding these upfront prevents days of debugging.

  • Service workers lose memory state; use chrome.storage for persistence across lifecycle resets
  • Event listeners must register synchronously at script load, not inside promises or callbacks
  • Manifest V3's CSP bans inline scripts and eval; refactor to external files with JS event listeners
  • Async message passing requires 'return true' to keep channels open for late sendResponse calls
  • Avoid <all_urls> permissions; use activeTab and optional_permissions for user trust and store approval

Generated with AI, which can make mistakes.

Is this a good recommendation for you?

Comments

Failed to load comments. Please try again.

Explore more