Safeguard
Security Guides•

Should you restrict add-on types like themes and dictionaries?

Firefox's allowed_types setting limits add-ons to listed types such as extension or theme. Here is when restricting types is worth the effort.

Safeguard Security Team
3 min read

Restrict add-on types when you want a fleet limited to what you have reviewed, but treat it as a minor control. Firefox's allowed_types setting, which is only valid under the * default, limits add-ons to dictionary, extension, locale, sitepermission and theme, and removes installed add-ons of unlisted types at startup.

What the setting does

Mozilla's documentation for ExtensionSettings says allowed_types can only be set in the * entry. It restricts add-on types to those you list, from dictionary, extension, locale, sitepermission and theme. It applies only when installation is not blocked, and at startup Firefox removes installed add-ons whose types are not listed. Per-ID entries set to allowed, force_installed or normal_installed are not restricted by it.

Chrome's ExtensionSettings schema has an allowed_types field in its default scope as well, and its example uses a hosted_app value. We did not review the full list of Chrome types, so check the current policy page.

Is it worth it?

Not all types carry the same risk. An extension runs code with access to pages. A theme changes appearance. A dictionary adds words. The risk is concentrated in extensions, so the highest value comes from controlling those with install modes, not from filtering types.

TypeTypical risk to review
extensionHigh: runs code, can request broad permissions
themeLow, but still third-party content
dictionaryLow
localeLow
sitepermissionReview when used, since we did not confirm its details

Restricting types makes sense when:

  • Your policy is default-deny and you want one more tripwire against unexpected add-on forms.
  • You have a compliance requirement to enumerate what can be installed.
  • You want startup cleanup to remove oddities left by users.

It matters less when you already block * by installation mode, since that stops new installs of every type.

An approach

  1. List the add-on types you actually use. Most fleets use only extension.
  2. Decide whether themes and dictionaries should stay for user comfort. Often yes.
  3. Set allowed_types under * to those you need.
  4. Remember that per-ID entries in the allowed or installed modes are not restricted, so a forced extension still installs even if its type were not listed. Review your explicit entries separately.
  5. Test on a pilot machine before rollout.

Caveats

  • It removes things. The startup cleanup will remove installed add-ons of unlisted types. Warn users before the change.
  • It is not a substitute for review. An allowed extension is still code you must vet.
  • Behavior depends on version. Mozilla's documentation includes version-specific notes. Match them to your fleet.

For the mode settings that do most of the work, read managing Firefox extensions with policy.

What to tell staff

Before enforcing, send a short note: which add-on types will remain, that other types installed on their profile will be removed at the next restart, and where to ask for an exception. People rarely mind losing a theme if they were warned. They do mind a surprise.

Quick check

Does allowed_types stop a force-installed extension?

No. Per Mozilla's documentation, per-ID entries set to allowed, force_installed or normal_installed are not restricted by it.

Where can I set allowed_types?

Only in the * entry, according to Mozilla's documentation.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.