Checklist for testing a Chrome extension before submission

cwspy.com · July 30, 2026 · 7 min read

How to Test a Chrome Extension Before You Submit It

Testing a Chrome extension before you submit it catches the problems that are cheapest to fix before review and most expensive to fix after: a broken permission, a service worker that silently stops responding, a popup that only works in one theme. This is a practical checklist for testing a chrome extension end to end, written for the gap between "it works on my machine" and "it works for the reviewer, and for every user after that."

Chrome extension testing does not need a heavy framework to be effective — most of what follows is a manual pass you can run consistently before every submission.

Load and smoke-test before anything else

  1. Load the unpacked extension from chrome://extensions (developer mode on) and confirm it installs cleanly, with no console errors on load.
  2. Click through every surface the extension exposes — popup, options page, any injected UI — once each, on a real page, not a blank tab.
  3. Check the service worker (or background page) logs specifically; errors there are easy to miss because they do not surface in the popup's own console.

The checklist that catches what a quick smoke test misses

AreaWhat to testWhy it matters
PermissionsDoes the extension still work if you deny an optional permission, and does it fail gracefully rather than crash?Reviewers and users both notice over-broad or unused permission requests
Fresh install vs. updateTest both a clean install and updating from a previous version, especially if you changed stored data formatsUpdate-path bugs only show up on real users, not fresh test installs
Light and dark themeCheck every UI surface in bothA popup readable only in one theme loses half your users without a single bug report explaining why
Multiple tabs and windowsConfirm behavior when the extension runs in more than one tab or window simultaneouslyState bugs that only appear under concurrency are among the hardest to debug from a support ticket
Offline / slow networkTest with network throttled or disabled if the extension talks to any APIA silent hang with no error message reads as "broken" to a user, not "waiting"
Uninstall and reinstallConfirm no orphaned state causes odd behavior on reinstallCommon source of confusing bug reports from returning users
If you only test the happy path — extension loads, one click works, done — you are testing what already worked in development. The checklist above is for the parts that only break in front of a real user.

Testing a Manifest V3 migration specifically

If this test pass follows a Manifest V3 migration, add a few migration-specific checks: does state survive the service worker being unloaded and restarted, does anything that used to rely on blocking webRequest still function under declarativeNetRequest, and did any host_permissions get dropped that a feature still depends on. Our Manifest V3 guide and, for blocker-type extensions specifically, Manifest V3 and ad blockers cover what typically breaks.

Before you hit submit

  • Re-read your manifest permissions list and remove anything the current build no longer needs.
  • Test on a second, clean machine or profile if you can — your dev profile has state a fresh install never will.
  • Confirm the store listing screenshots still match the current UI, not an older version.
  • Have one other person click through it — a second pair of eyes catches what familiarity hides from you.

None of this replaces automated testing if your extension is complex enough to warrant it, but for most Chrome extensions this manual pass, run consistently before every submission, catches the bugs that actually generate one-star reviews.