> [!WARNING]
> **Warning:** You're viewing the deprecated Manifest V2 version of this article. See [Manifest V3 - Manifest_version](https://developer.chrome.com/docs/extensions/reference/manifest/manifest-version.md.txt) for the MV3 equivalent. The Chrome Web Store no longer accepts Manifest V2 extensions. Follow the [Manifest V3 Migration guide](https://developer.chrome.com/docs/extensions/develop/migrate.md.txt) to convert your extension to Manifest V3.

Extensions, themes, and applications are simply bundles of resources, wrapped up with a
[`manifest.json`](https://developer.chrome.com/docs/extensions/reference/api/tabs.md.txt) file that describes the package's contents. The format of this file is
generally stable, but occasionally breaking changes must be made to address important issues.
Developers should specify which version of the manifest specification their package targets by
setting a `manifest_version` key in their manifests.

## Current version

Developers should currently specify **`'manifest_version': 2`**:

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

Manifest version 1 was *deprecated* in Chrome 18, and support will be phased out according to the
following schedule.

## Manifest version 1 support schedule

### August 2012

- The Web Store will block creation of new manifest version 1 extensions.
- The Web Store will allow updates to existing manifest version 1 extensions.

### March 2013

- The Web Store will block updates to manifest version 1 extensions on March 4th, 2013.

### April 2013

- Chrome 27 Beta will stop packaging manifest version 1 extensions (or loading them for development).

### June 2013

- The Web Store will remove manifest version 1 extensions from the wall, search results, and category pages.
- Notice emails will be sent to all developers with manifest version 1 extensions still in the store reminding them that these extensions will be unpublished and providing update instructions.

### September 2013

- The Web Store will unpublish all manifest version 1 extensions.
- Final notice emails will be sent to developers with manifest version 1 extensions still in the Web Store.
- Chrome will continue to load and run installed manifest version 1 extensions.

### January 2014

- Chrome will stop loading or running manifest version 1 extensions.

## 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`](https://developer.chrome.com/docs/apps/contentSecurityPolicy.md.txt) 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 allowlist it via the [`web_accessible_resources`](https://developer.chrome.com/docs/extensions/mv2/manifest/web-accessible-resources.md.txt) 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 [Event Pages](https://developer.chrome.com/docs/extensions/mv2/background-pages.md.txt) documentation.
- Browser action changes:

  - The `browser_actions` key in the manifest, and the `chrome.browserActions` API are gone. Use the singular [`browser_action` and `chrome.browserAction`](https://developer.chrome.com/docs/extensions/mv2/reference/browserAction.md.txt) instead.
  - The `icons` property of `browser_action` has been removed. Use [the `default_icon` property](https://developer.chrome.com/docs/extensions/mv2/reference/browserAction.md.txt#manifest) or [browserAction.setIcon](https://developer.chrome.com/docs/extensions/mv2/reference/browserAction.md.txt#method-setIcon) instead.
  - The `name` property of `browser_action` has been removed. Use [the `default_title` property](https://developer.chrome.com/docs/extensions/mv2/reference/browserAction.md.txt#manifest) or [browserAction.setTitle](https://developer.chrome.com/docs/extensions/mv2/reference/browserAction.md.txt#method-setTitle) instead.
  - The `popup` property of `browser_action` has been removed. Use [the `default_popup`
    property](https://developer.chrome.com/docs/extensions/mv2/reference/browserAction#manifest) or [browserAction.setPopup](https://developer.chrome.com/docs/extensions/mv2/reference/browserAction.md.txt#method-setPopup) instead.
  - The `default_popup` property of `browser_action` can no longer be specified as an object. It must be a string.
- Page action changes:

  - The `page_actions` key in the manifest, and the `chrome.pageActions` API are gone. Use the singular [`page_action` and `chrome.pageAction`](https://developer.chrome.com/docs/extensions/mv2/reference/pageAction.md.txt) instead.
  - The `icons` property of `page_action` has been removed. Use [the `default_icon` property](https://developer.chrome.com/docs/extensions/mv2/reference/pageAction.md.txt#manifest) or [pageAction.setIcon](https://developer.chrome.com/docs/extensions/mv2/reference/pageAction.md.txt#method-setIcon) instead.
  - The `name` property of `page_action` has been removed. Use [the `default_title` property](https://developer.chrome.com/docs/extensions/mv2/reference/pageAction.md.txt#manifest) or [pageAction.setTitle](https://developer.chrome.com/docs/extensions/mv2/reference/pageAction.md.txt#method-setTitle) instead.
  - The `popup` property of `page_action` has been removed. Use [the `default_popup` property](https://developer.chrome.com/docs/extensions/mv2/reference/pageAction.md.txt#manifest) or [pageAction.setPopup](https://developer.chrome.com/docs/extensions/mv2/reference/pageAction.md.txt#method-setPopup) instead.
  - The `default_popup` property of `page_action` can no longer be specified as an object. It must be a string.
- The `chrome.self` API has been removed. Use [`chrome.extension`](https://developer.chrome.com/docs/extensions) instead.

- `chrome.extension.getTabContentses` (!!!) and `chrome.extension.getExtensionTabs` are gone. Use
  [extension.getViews](https://developer.chrome.com/docs/extensions/mv2/reference/extension.md.txt#method-getViews) instead.

- `Port.tab` is gone. Use [runtime.Port](https://developer.chrome.com/docs/extensions/mv2/reference/runtime.md.txt#type-Port) instead.