---
title: "Chrome 'declarativeContent' permission: conditional page actions explained."
description: "Learn how Chrome's declarativeContent permission lets extensions enable their toolbar icon on matching pages without reading page content in the background."
canonical_url: "https://vezz.me/permissions/declarativecontent/"
type: "pseo-permissions"
category: "permissions"
topic: "Chrome Permission Audit"
intent: "Best for developers and privacy reviewers learning how Chrome's privacy-preserving declarative APIs work."
---

# Chrome 'declarativeContent' permission: conditional page actions explained.

Learn how Chrome's declarativeContent permission lets extensions enable their toolbar icon on matching pages without reading page content in the background.

> **Best fit:** Best for developers and privacy reviewers learning how Chrome's privacy-preserving declarative APIs work.

## Technical Permission Audit

- **Manifest Key:** `declarativeContent`
- **Chrome Install Warning:** None (displays no install-time warning in Chrome)
- **Risk Level:** Lower

```json
{
  "manifest_version": 3,
  "permissions": ["declarativeContent", "activeTab"]
}
```

### Legitimate Uses
- Highlighting the extension toolbar icon when the URL or CSS selector matches a supported page type, evaluated natively by Chrome without waking the extension

### Red Flags to Watch For
- Rarely abused—`declarativeContent` is one of Chrome's most privacy-friendly APIs because matching rules run inside the browser engine without exposing URLs to the extension

**How Vezz me handles this:** Vezz me works across all normal webpages where text can be selected and only processes text when you trigger your shortcut.

## Step-by-step workflow

1. **Understand browser-evaluated rules**: Instead of the extension reading every tab URL, the extension gives Chrome a static rule (`PageStateMatcher`), and Chrome lights up the icon locally.
2. **Pair with user-triggered execution**: Even when an icon lights up, no page content is read until the user clicks or presses the shortcut.

## Why declarative APIs are safer than imperative listeners

In Chrome's security model, `declarativeContent` and `declarativeNetRequest` let the browser evaluate conditions in C++ without handing raw browsing events to JavaScript.

- Displays zero install-time warnings because no user data is exposed to the extension script
- Encourages on-demand `activeTab` workflows

## Frequently asked questions

### Can declarativeContent read the text inside a webpage?

No. It can only check whether a URL pattern or CSS selector exists on the page to toggle the extension's toolbar icon state.

## Related guides

- [activeTab permission](https://vezz.me/permissions/activetab/): How user-triggered tab access works in Chrome.
