Purple Potassium
Purple Potassium: Excessive permissions
The reviewer found a permission in your manifest that your code does not use, or a broader one than your feature needs. You fix it by deleting or narrowing entries. A clever justification will not get it through.
The fix: rejected โ fixed
{ "manifest_version": 3, "name": "PR Notes for GitHub",Removed: "permissions": ["tabs", "storage", "cookies", "scripting"],Removed: "host_permissions": ["<all_urls>"],Added: "permissions": ["storage"], "content_scripts": [{Removed: "matches": ["<all_urls>"],Added: "matches": ["https://github.com/*/pull/*"], "js": ["content.js"] }]}
This extension only works on GitHub pull requests, and a declared content script needs no extra host permission for its own matches. So <all_urls>, tabs, cookies and scripting (none of which the code called) all went. Only storage remains.
Why you got Purple Potassium
"tabs"requested just to read the current tab's URL from a popup."activeTab"covers that when the user clicks your icon."<all_urls>"or"*://*/*"host access when the extension only works on one or two sites.- Leftovers from a boilerplate or tutorial:
"cookies","history","webRequest"or"notifications"with no matchingchrome.*call. - Content scripts injected on every site when the feature only runs on one domain.
- Permissions added "for later" that the current version never uses.
Pre-resubmit checklist
Your ticks are saved in this browser.
Common mistake: Appealing without changing anything rarely works for this code. If you truly need a broad permission, the appeal has to name the exact feature that uses it and why a narrower option can't work.
Appeal or resubmission note
Replace the [BRACKETS], then use the appeal link in your rejection email. Keep it short and factual, and list only changes you actually made.
Hello Chrome Web Store team, My item [EXTENSION NAME] (ID: [ITEM ID]) was rejected with reference Purple Potassium. I have reviewed the policy and made the following changes in version [NEW VERSION]: - Removed unused permissions: [LIST]. - Replaced "tabs" with "activeTab" (we only read the tab the user clicks on). - Narrowed host access from all sites to [DOMAINS]. [ONE SENTENCE ON WHAT THE EXTENSION DOES AND WHY IT NEEDS WHAT REMAINS.] I have resubmitted the updated package. If anything still does not comply, I would appreciate a pointer to the specific file or listing field so I can fix it. Thank you, [YOUR NAME]
Google's own wording for this code is on the Chrome Web Store troubleshooting page under "Excessive permissions".