Browser Extension Permissions Explained: What Each One Actually Does
Plain-language explanations of common Chrome extension permissions — activeTab, scripting, storage, tabCapture and host access — and what to check before installing.
The permissions dialog is the one moment when a browser extension tells you what it will be allowed to do — and the wording is often the least helpful part of the experience. "Read and change all your data on the websites you visit" describes a dozen wildly different tools, from a password manager to a screenshot utility.
This guide translates the common permissions into what they actually let an extension do, and what questions to ask before clicking "Add." We build browser extensions ourselves (here is everything we ship), so we also state plainly why our own tools ask for what they ask for.
Table of contents#
- How the permission model works
- The common permissions, translated
- The big one: host access
- A checklist before you install
- Why our extensions ask for what they ask for
- FAQ
How the permission model works#
Chrome extensions declare the capabilities they need in a manifest file. Broadly, three kinds of things get declared:
- API permissions — access to specific browser features: storage, downloads, the clipboard, capturing tabs, and so on.
- Host permissions — which websites' content the extension may read or modify. This is the one with the largest blast radius.
- Optional vs. required — some permissions are requested up front; others can be requested later, at the moment a feature needs them, and you can decline those.
The store listing shows the required permissions before install, and Chrome shows a warning if an update requests new ones. Reading that list takes twenty seconds and is the single highest-value habit in extension hygiene.
The common permissions, translated#
activeTab — temporary access to the tab you just interacted with
(for example, the tab where you clicked the extension's button). The
access ends when the tab is closed or navigated. This is the narrow
way to touch page content, and a good sign: it means the extension is not
asking to read every page you ever visit.
scripting — the ability to run code inside pages. Paired with
activeTab, it means "when you invoke me, I can act on this page."
Screenshot and annotation tools need it to read the page's layout;
without it they cannot know where elements are.
storage / unlimitedStorage — a key-value store for the
extension's own settings and state (your preferences, recording history
metadata). This is local to your browser. It does not by itself mean
your data goes anywhere.
downloads — the ability to save files through the browser's
download flow. Recorders and exporters need it to hand you the output
file.
tabCapture — capture the audio/video stream of a tab. This is the
permission behind tab recording. It is powerful and specific: an
extension with it can record what a tab plays, and the browser mediates
the capture prompt.
audioCapture / microphone — access to your microphone, requested
through the normal browser media prompt. A recorder mixing your voice
into a capture needs this.
contextMenus — adds items to the right-click menu. Cosmetic in
terms of privacy; it just means the extension wires into that menu.
The big one: host access#
Host permissions are where the real risk gradient lives:
- A specific site ("on example.com") — the extension can only touch that domain.
- A pattern ("on
*.example.com") — a bounded family of sites. - All sites ("on all websites") — the extension can read and modify page content anywhere. Some tools legitimately need this — a screen-recording helper that tracks the cursor across any page, for instance — but it is the permission to scrutinize hardest.
When you see "all sites," ask: does this tool's stated function happen on arbitrary pages, or could it work with narrower access? A coupon extension needs shopping sites; it does not need your bank.
A checklist before you install#
- Match permissions to the job description. A screenshot tool asking
for
activeTab+scriptingis coherent. The same tool asking for your browsing history is not. - Prefer extensions that ask narrowly and later.
activeTabplus optional, on-demand permission requests beats broad up-front access. - Check who maintains it. A named developer, a support site, recent updates. Abandoned extensions with broad permissions are a standing risk.
- Read what updates change. Chrome warns when an update adds permissions. Treat that warning as the real install dialog.
- Remove what you no longer use. Old extensions keep their permissions forever. An annual sweep is cheap insurance.
Why our extensions ask for what they ask for#
Full disclosure, since we are the ones writing this guide:
- Screenshot Annotation asks for
activeTab,scripting,storageandcontextMenus: it needs to read the layout of the page you are capturing (activeTab+scripting), remember your preferences (storage), and appear in the right-click menu. It does not ask for host access to all sites. - Web Video Recorder asks for
tabCapture,offscreen,downloads,audioCaptureand storage: each maps directly to a recording feature — capturing the tab stream, converting it locally, saving the result, mixing in your microphone. - Poindeo asks for
activeTab,scripting,tabs, storage — and host access to all sites, because cursor tracking must work on whatever page you record. That is the broad permission in our lineup, and it exists for that reason alone.
Every one of these tools processes its data locally; none uploads your captures or recordings.
FAQ#
Does a permission mean the extension is always using it?#
No. A permission is a capability, granted continuously, but exercised
only when the extension's code runs. activeTab in particular expires
per interaction. The risk is what a hostile or compromised extension
could do with the grant — which is why matching scope to purpose
matters.
Can I revoke a permission later?#
Some — notably site access — can be managed per-extension in
chrome://extensions. API permissions granted at install generally stay
until you remove the extension.
Why do screenshot tools need to "run code on pages"?#
To capture an element accurately, the tool must read the page's layout —
where an element starts and ends. That requires executing code inside the
page, which is exactly what the scripting permission describes.
Editorial disclosure
We are the developers of the extensions documented on this site. This page describes the shipped version as we built and tested it — including its limitations — and was fact-checked on . Claims are based on our own testing of released builds; where third-party tools are named, their capabilities are described as documented by their publishers.
Related articles
How to Take Annotated Screenshots in Chrome
Capture a page, snap the frame to the exact element, and annotate with arrows, boxes, zoom callouts and mosaic — without leaving the browser tab.
4 min read · by The ExtensionTools Team
How to Record a Browser Tab as Video or GIF
Record the video and audio playing in any browser tab, frame the exact region you need, and download an MP4 or GIF — all converted locally in the browser.
4 min read · by The ExtensionTools Team
Screen Recording Extension vs. Built-in Recorders: What Actually Works
Browser recording extensions vs. Windows Xbox Game Bar, macOS screenshot toolbar and OBS — an honest comparison of capture scope, audio, formats and setup.
4 min read · by The ExtensionTools Team
Extensions mentioned in this article
Every tool we build is documented with its limits stated plainly.