The manifest is the extension's public contract

manifest.json declares the extension's name, version, entry points and capabilities. Browsers read it before any extension code runs. If a permission is not declared, the extension generally cannot use the matching API without asking the user later.

Reading the manifest is usually faster and more reliable than guessing from the store description. The viewer highlights broad host access and powerful APIs such as debugger, nativeMessaging, proxy and cookies.

Related pages:Manifest V3 permissions list explainedextension CSP in Manifest V3

Fields the viewer explains

The viewer separates fields by purpose: identity, permissions, page access, background execution and communication. Nested fields are summarized instead of dumping raw JSON in your face.

Externally_connectable and web_accessible_resources are often overlooked. They describe which websites can message the extension or load its files. The viewer marks broad values so you can review them.

  • Manifest version and browser compatibility
  • Required and optional API permissions
  • Host permissions and content-script matches
  • Background service worker, scripts or page
  • Content Security Policy and update URL
  • Externally connectable origins and web-accessible resources

Related pages:externally_connectable explainedweb-accessible resources security

Manifest V2 and Manifest V3 side by side

Manifest V3 replaces persistent background pages with service workers, moves host permissions into a separate field and restricts remote code. Manifest V2 extensions still exist, especially outside the Chrome Web Store, but Chromium browsers have been phasing them out.

The viewer reports the manifest version and adds contextual notes instead of assuming that one version is automatically safer. Migration quality depends on how the publisher implements the new model.

Manifest versions at a glance
AreaManifest V2Manifest V3
BackgroundPage or scriptsService worker or scripts
Host accessOften inside permissionsSeparate host_permissions field
Remote codeHistorically more permissiveExecutable code must be bundled
Network ruleswebRequestBlockingdeclarativeNetRequest