Firefox extensions request permissions when you install them. These appear in a dialog before installation. Many users click through without reading them. Here is what the common permissions actually mean.

The common permissions

tabs: the extension can read the URLs and titles of your open tabs. Required for tab management extensions. Does not give access to page content.

activeTab: the extension can access the current tab only, and only while the extension's popup is open or a user action triggered it. More limited than tabs.

storage: the extension can read and write data in Firefox's extension storage (browser.storage.local and browser.storage.sync). Used for saving preferences and user data. This data is not accessible to web pages.

downloads: the extension can trigger file downloads. Required for extensions that save files to your computer (voice recordings, exports).

geolocation: the extension can read your location. Required for weather and dark mode scheduling by sunset/sunrise. Firefox will show a separate permission prompt for this.

<all_urls> or *://*/*: the extension can run JavaScript on all web pages (content script permission). Required for extensions that modify web pages (dark mode, grammar checkers, etc.).

notifications: the extension can show browser notifications. Used for alarms, reminders, etc.

Permissions to scrutinize

<all_urls> with remote code loading: an extension that runs on all pages AND loads scripts from external servers is a significant risk. It can be updated to run malicious code without your knowledge. Look for extensions that bundle all code locally.

webRequest + <all_urls>: allows intercepting all network requests. Legitimate uses (content blockers, privacy tools), but powerful. Only trust well-reviewed extensions with this combination.

nativeMessaging: allows the extension to communicate with applications on your computer. Very rarely needed; treat with caution.

The 11 extensions I built

For reference, here are the permissions each extension uses and why:

Extension Key permissions
NightOwl <all_urls> (content script), storage, tabs
Voice Notes microphone, downloads, storage
Tab Manager tabs, sessions, storage
News Widget storage (uses fetch for RSS)
Weather Clock storage, geolocation
Stock Market storage (uses fetch for market data)
Daily Planner storage (new tab page)
Habit Tracker storage (new tab page)
Quick Calculator storage (new tab page)
Speed Dial storage (new tab page)
AI Writing activeTab, storage

None request webRequest with remote code loading, nativeMessaging, or <all_urls> with external script loading.

How to review permissions yourself

Before installing any extension:

  1. Check the permissions shown in the install dialog
  2. Look at the AMO listing — permissions are listed on the "Technical Details" tab
  3. Check the reviews for any mention of unexpected behavior
  4. For security-sensitive extensions, consider checking the source code (AMO allows code review)

I built 11 Firefox extensions — see the full series.