| <h1>Manifest Version</h1> |
| |
| <style type="text/css"> |
| #schedule h3 { |
| margin-bottom:0; |
| } |
| |
| #schedule p { |
| margin-top:0; |
| margin-bottom:1em; |
| } |
| </style> |
| |
| <p> |
| Extensions, themes, and applications are simply bundles of resources, wrapped |
| up with a <a href="manifest.html"><code>manifest.json</code></a> 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 <code>manifest_version</code> key in their |
| manifests. |
| </p> |
| |
| <h2 id="current-version">Current Version</h2> |
| |
| <p> |
| Developers should currently specify |
| <strong><code>'manifest_version': 2</code></strong>: |
| </p> |
| |
| <pre>{ |
| ..., |
| "manifest_version": 2, |
| ... |
| }</pre> |
| |
| <p> |
| Manifest version 1 was <em>deprecated</em> in Chrome 18, and support will |
| be phased out according to the following schedule. |
| </p> |
| |
| <h2 id="manifest-v1-support-schedule">Manifest version 1 support schedule</h2> |
| |
| <div id="schedule"> |
| <h3 id="manifest-v1-august2012">August 2012</h3> |
| <ul> |
| <li>The Web Store will block creation of new manifest version 1 extensions. |
| <li>The Web Store will allow updates to existing manifest version 1 extensions. |
| </ul> |
| |
| <h3 id="manifest-v1-march2013">March 2013</h3> |
| <ul> |
| <li>The Web Store will block updates to manifest version 1 extensions on March |
| 4th, 2013. |
| </ul> |
| |
| <h3 id="manifest-v1-april2013">April 2013</h3> |
| <ul> |
| <li>Chrome 27 Beta will stop packaging manifest version 1 extensions (or loading |
| them for development). |
| </ul> |
| |
| <h3 id="manifest-v1-june2013">June 2013</h3> |
| <ul> |
| <li>The Web Store will remove manifest version 1 extensions from the wall, |
| search results, and category pages. |
| <li>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. |
| </ul> |
| |
| <h3 id="manifest-v1-september2013">September 2013</h3> |
| <ul> |
| <li>The Web Store will unpublish all manifest version 1 extensions. |
| <li>Final notice emails will be sent to developers with manifest |
| version 1 extensions still in the Web Store. |
| <li>Chrome will continue to load and run installed manifest |
| version 1 extensions. |
| </ul> |
| |
| <h3 id="manifest-v1-january2014">January 2014</h3> |
| <ul> |
| <li>Chrome will stop loading or running manifest |
| version 1 extensions. |
| </ul> |
| </div> |
| |
| <h2 id="manifest-v1-changes">Changes between version 1 and 2</h2> |
| |
| <ul> |
| <li> |
| <p> |
| A content security policy is set to <code>`script-src 'self' |
| chrome-extension-resource:; object-src 'self'</code> by default. This has |
| a variety of impacts on developers, described at length in the |
| <a href="../extensions/contentSecurityPolicy.html"> |
| <code>content_security_policy</code></a> documentation. |
| </p> |
| </li> |
| <li> |
| <p> |
| A package's resources are no longer available by default to external |
| websites (as the <code>src</code> of an image, or a <code>script</code> |
| 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 |
| <a href="manifest/web_accessible_resources.html"> |
| <code>web_accessible_resources</code> |
| </a> manifest attribute. This is particularly relevant for extensions that |
| build up an interface on a website via injected content scripts. |
| </p> |
| </li> |
| <li> |
| <p> |
| The <code>background_page</code> property has been replaced with a |
| <code>background</code> property that contains <em>either</em> a |
| <code>scripts</code> or <code>page</code> property. Details are available |
| in the <a href="event_pages.html">Event Pages</a> documentation. |
| </p> |
| </li> |
| <li> |
| <p>Browser action changes:</p> |
| <ul> |
| <li> |
| <p> |
| The <code>browser_actions</code> key in the manifest, and the |
| <code>chrome.browserActions</code> API are gone. Use the singular |
| <a href="browserAction.html"> |
| <code>browser_action</code> and <code>chrome.browserAction</code> |
| </a> instead. |
| </p> |
| </li> |
| <li> |
| <p> |
| The <code>icons</code> property of <code>browser_action</code> has |
| been removed. Use <a href="browserAction.html#manifest"> |
| the <code>default_icon</code> property |
| </a> or $ref:browserAction.setIcon instead. |
| </p> |
| </li> |
| <li> |
| <p> |
| The <code>name</code> property of <code>browser_action</code> has been |
| removed. Use <a href="browserAction.html#manifest"> |
| the <code>default_title</code> property |
| </a> or $ref:browserAction.setTitle instead. |
| </p> |
| </li> |
| <li> |
| <p> |
| The <code>popup</code> property of <code>browser_action</code> has |
| been removed. Use <a href="browserAction.html#manifest"> |
| the <code>default_popup</code> property |
| </a> or $ref:browserAction.setPopup instead. |
| </p> |
| </li> |
| <li> |
| <p> |
| The <code>default_popup</code> property of <code>browser_action</code> |
| can no longer be specified as an object. It must be a string. |
| </p> |
| </li> |
| </ul> |
| </li> |
| <li> |
| <p>Page action changes:</p> |
| <ul> |
| <li> |
| <p> |
| The <code>page_actions</code> key in the manifest, and the |
| <code>chrome.pageActions</code> API are gone. Use the singular |
| <a href="pageAction.html"> |
| <code>page_action</code> and <code>chrome.pageAction</code> |
| </a> instead. |
| </p> |
| </li> |
| <li> |
| <p> |
| The <code>icons</code> property of <code>page_action</code> has been |
| removed. Use <a href="pageAction.html#manifest"> |
| the <code>default_icon</code> property |
| </a> or $ref:pageAction.setIcon instead. |
| </p> |
| </li> |
| <li> |
| <p> |
| The <code>name</code> property of <code>page_action</code> has been |
| removed. Use <a href="pageAction.html#manifest"> |
| the <code>default_title</code> property |
| </a> or $ref:pageAction.setTitle instead. |
| </p> |
| </li> |
| <li> |
| <p> |
| The <code>popup</code> property of <code>page_action</code> has been |
| removed. Use <a href="pageAction.html#manifest"> |
| the <code>default_popup</code> property |
| </a> or $ref:pageAction.setPopup instead. |
| </p> |
| </li> |
| <li> |
| <p> |
| The <code>default_popup</code> property of <code>page_action</code> |
| can no longer be specified as an object. It must be a string. |
| </p> |
| </li> |
| </ul> |
| </li> |
| <li> |
| <p> |
| The <code>chrome.self</code> API has been removed. Use |
| <a href="extension.html"><code>chrome.extension</code></a> instead. |
| </p> |
| </li> |
| <li> |
| <p> |
| <code>chrome.extension.getTabContentses</code> (!!!) and |
| <code>chrome.extension.getExtensionTabs</code> are gone. Use |
| $ref:extension.getViews instead. |
| </p> |
| </li> |
| <li> |
| <p> |
| <code>Port.tab</code> is gone. Use |
| $ref:runtime.Port |
| instead. |
| </p> |
| </li> |
| </ul> |