[AUTO-003] Narrow "tabs" permission to "activeTab" #3
Labels
No labels
forge-sync
priority:critical
priority:high
priority:low
priority:medium
status:blocked
status:done
status:skipped
status:todo
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frank/discord-share-extension#3
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Task ID: AUTO-003
Priority: P2
Status: TODO
Priority: P2
Status: TODO
Goal: Drop the broader
"tabs"permission from manifest.json in favor of"activeTab", which already covers the extension's one actual use.Why it matters: manifest.json declares
"tabs"alongside"activeTab", but the onlychrome.tabs.*call in the codebase (popup/popup.js:101,chrome.tabs.query({ active: true, currentWindow: true })) only ever touches the active tab, opened via a qualifying user gesture (toolbar click or context-menu action) that already grantsactiveTab."tabs"exposesurl/title/pendingUrlfor every open tab and is called out more prominently on Chrome's install/update consent screen — unnecessary permission surface for a personal extension. Flagged in docs/notes/2026-07-10-code-health-pass.md iteration 2.Scope: Remove
"tabs"from manifest.json permissions; verify the no-pending-payload popup path (toolbar-click open, no context-menu payload) still works underactiveTabalone.Expected files or areas: manifest.json, popup/popup.js.
Acceptance criteria: Extension loads with only
"activeTab"(no"tabs"); opening the popup via toolbar click still correctly reads the active tab's title/url.Validation: Reload unpacked extension, open popup via toolbar icon with no prior context-menu action, confirm title/url populate as before.
Risks or assumptions: Assumes
activeTabis in fact granted for a toolbar-click-opened popup — confirm by testing rather than assuming, per the note that flagged this.Notes: None.
Synced from
.ai/AUTONOMOUS_PLAN.mdbyforge sync.Closed by
forge sync— task status changed to DONE.