Why is chrome.browserAction.onClicked undefined?

ManifestV3

manifest.json: use action not browser_action, see also the migration guide.

  "action": {},
  "background": {"service_worker": "background.js"},

background.js: use chrome.action not chrome.browserAction.

Classic ManifestV2

For those who already have added something like

"background": {
    "scripts": ["background.js"]
}

and still gets Cannot read property 'onClicked' of undefined – just add

"browser_action": {}

into your manifest.json

Leave a Comment

tech