You are viewing extension docs in chrome via the 'file:' scheme: are you expecting to see local changes when you refresh? You'll need run chrome with --allow-file-access-from-files.
WARNING: This is the BETA documentation. It may not work with the stable release of Chrome.
WARNING: This is unofficial documentation. It may not work with the current release of Chrome.

Google Chrome Extensions (Labs)

Manifest Version

Manifest Version

Extensions, themes, and applications are simply bundles of resources, wrapped up with a manifest.json file that describes the package's contents. The format of this file is generally stable, but occasionally breaking changes must be made to address specific issues. Developers should specify which version of the manifest specification their package targets by setting a manifest_version key in their manifests.

Current Version

When targeting Chrome 18 and above, developers should specify 'manifest_version': 2:

{
  ...,
  "manifest_version": 2,
  ...
}

Manifest version 1 is deprecated in Chrome 18 and above, but version 2 is not yet required. Extensions, applications, and themes that aren't ready to make the jump to the new manifest version in Chrome 18 can either explicitly specify version 1, or leave the key off entirely.

At some point in the future, support for manifest version 1 will be removed. Ample warning will be provided, beginning with warnings when loading unpacked version 1 extensions, and escalating from there over time.

Setting manifest_version 2 in Chrome 17 or lower is not recommended. If your extension needs to work in older versions of Chrome, stick with version 1 for the moment. We'll give you ample warning before version 1 stops working.

Changes between version 1 and 2

  • A content security policy is set to `script-src 'self'; object-src 'self' by default. This has a variety of impacts on developers, described at length in the content_security_policy documentation.

  • A package's resources are no longer available by default to external websites (as the src of an image, or a script tag). If you want a website to be able to load a resource contained in your package, you'll need to explicitly whitelist it via the web_accessible_resources manifest attribute. This is particularly relevant for extensions that build up an interface on a website via injected content scripts.

  • The background_page property has been replaced with a background property that contains either a scripts or page property. Details are available in the Background Pages documentation.

  • A variety of previously deprecated features have been removed entirely: