| OLD | NEW |
| 1 <div id="pageData-title" class="pageData">Formats: Manifest Files</div> | 1 <div id="pageData-title" class="pageData">Formats: Manifest Files</div> |
| 2 <div id="pageData-showTOC" class="pageData">true</div> | 2 <div id="pageData-showTOC" class="pageData">true</div> |
| 3 | 3 |
| 4 <p> | 4 <p> |
| 5 Every extension has a | 5 Every extension has a |
| 6 <a href="http://www.json.org">JSON</a>-formatted manifest file, | 6 <a href="http://www.json.org">JSON</a>-formatted manifest file, |
| 7 named <code>manifest.json</code>, | 7 named <code>manifest.json</code>, |
| 8 that provides important information about the extension. | 8 that provides important information about the extension. |
| 9 </p> | 9 </p> |
| 10 | 10 |
| 11 <h2 id="overview"> Field summary </h2> | 11 <h2 id="overview"> Field summary </h2> |
| 12 | 12 |
| 13 <p> | 13 <p> |
| 14 The following code shows the supported manifest fields, | 14 The following code shows the supported manifest fields, |
| 15 with links to the page that discusses each field. | 15 with links to the page that discusses each field. |
| 16 The only fields that are required for every extension | 16 The only fields that are required for every extension |
| 17 are <b>name</b> and <b>version</b>. | 17 are <b>name</b> and <b>version</b>. |
| 18 </p> | 18 </p> |
| 19 | 19 |
| 20 <pre> | 20 <pre> |
| 21 { | 21 { |
| 22 <b>"<a href="#name">name</a>"</b>: "<em>My Extension</em>", | 22 <em>// Required</em> |
| 23 <b>"<a href="autoupdate.html">version</a>"</b>: "<em>versionString</em>", | 23 "<a href="#name">name</a>": "<em>My Extension</em>", |
| 24 "<a href="#version">version</a>": "<em>versionString</em>", |
| 24 | 25 |
| 26 <em>// Recommended</em> |
| 25 "<a href="#description">description</a>": "<em>A plain text description</em>", | 27 "<a href="#description">description</a>": "<em>A plain text description</em>", |
| 26 "<a href="#icons">icons</a>": { ... }, | 28 "<a href="#icons">icons</a>": { ... }, |
| 27 "<a href="autoupdate.html">update_url</a>": "http://<em>path/to/updateInfo</em
>.xml", | |
| 28 | 29 |
| 30 <em>// Pick one (or none)</em> |
| 31 "<a href="browserAction.html">brower_action</a>": {...}, |
| 32 "<a href="pageAction.html">page_action</a>": {...}, |
| 33 "<a href="themes.html">theme</a>": {...}, |
| 34 |
| 35 <em>// Add any of these that you need</em> |
| 29 "<a href="background_pages.html">background_page</a>": "<em>aFile</em>.html", | 36 "<a href="background_pages.html">background_page</a>": "<em>aFile</em>.html", |
| 30 "<a href="browserAction.html">brower_action</a>": {...}, | |
| 31 "<a href="ntp.html">chrome_url_overrides</a>": {...}, | 37 "<a href="ntp.html">chrome_url_overrides</a>": {...}, |
| 32 "<a href="content_scripts.html">content_scripts</a>": [...], | 38 "<a href="content_scripts.html">content_scripts</a>": [...], |
| 33 "<a href="pageAction.html">page_action</a>": {...}, | 39 "<a href="options.html">options_page</a>": "<em>aFile</em>.html", |
| 34 "<a href="#permissions">permissions</a>": [...], | 40 "<a href="#permissions">permissions</a>": [...], |
| 35 "<a href="npapi.html">plugins</a>": [...], | 41 "<a href="npapi.html">plugins</a>": [...] |
| 36 "<a href="themes.html">theme</a>": {...}, | 42 "<a href="autoupdate.html">update_url</a>": "http://<em>path/to/updateInfo</em
>.xml", |
| 37 "<a href="toolstrip.html">toolstrips</a>": [...], | |
| 38 "<a href="options.html">options_page</a>": "<em>aFile</em>.html", | |
| 39 } | 43 } |
| 40 </pre> | 44 </pre> |
| 41 | 45 |
| 42 | 46 |
| 43 <h2>Field details</h2> | 47 <h2>Field details</h2> |
| 44 | 48 |
| 45 <p> | 49 <p> |
| 46 This section covers fields that aren't described in another page. | 50 This section covers fields that aren't described in another page. |
| 47 For a complete list of fields, | 51 For a complete list of fields, |
| 48 with links to where they're described in detail, | 52 with links to where they're described in detail, |
| 49 see the <a href="#overview">Field summary</a>. | 53 see the <a href="#overview">Field summary</a>. |
| 50 </p> | 54 </p> |
| 51 | 55 |
| 52 <h3 id="description">description</h3> | 56 <h3 id="description">description</h3> |
| 53 | 57 |
| 54 <p> | 58 <p> |
| 55 A plain text string | 59 A plain text string |
| 56 (no HTML or other formatting) | 60 (no HTML or other formatting) |
| 57 that describes the extension. | 61 that describes the extension. |
| 58 The description should be suitable for both | 62 The description should be suitable for both |
| 59 the browser's extension management UI | 63 the browser's extension management UI |
| 60 and the extension gallery. | 64 and the extension gallery. |
| 61 </p> | 65 </p> |
| 62 | 66 |
| 63 <h3 id="icon">icon</h3> | |
| 64 | |
| 65 <p> | |
| 66 An icon that represents the extension. | |
| 67 As a rule, you should use the <b>icons</b> field instead, | |
| 68 so that you can specify icons in multiple sizes. | |
| 69 Here's an example of using this field: | |
| 70 </p> | |
| 71 | |
| 72 <pre> | |
| 73 "icon": "icon.png", | |
| 74 </pre> | |
| 75 | 67 |
| 76 <h3 id="icons">icons</h3> | 68 <h3 id="icons">icons</h3> |
| 77 | 69 |
| 78 <p> | 70 <p> |
| 79 One or more icons that represent the extension. | 71 One or more icons that represent the extension. |
| 80 We recommend that you provide icons in four sizes — | 72 We recommend that you provide icons in four sizes — |
| 81 16x16, 32x32, 48x48, and 128x128 pixels. | 73 16x16, 32x32, 48x48, and 128x128 pixels. |
| 82 The icons can be in any format supported by WebKit, | 74 The icons can be in any format supported by WebKit, |
| 83 such as BMP, GIF, ICO, JPEG, or PNG. | 75 such as BMP, GIF, ICO, JPEG, or PNG. |
| 84 Here's an example of specifying all four icon sizes: | 76 Here's an example of specifying all four icon sizes: |
| (...skipping 13 matching lines...) Expand all Loading... |
| 98 A short, plain text string | 90 A short, plain text string |
| 99 that identifies the extension. | 91 that identifies the extension. |
| 100 The name is used in the install dialog, | 92 The name is used in the install dialog, |
| 101 extension management UI, | 93 extension management UI, |
| 102 and the extension gallery. | 94 and the extension gallery. |
| 103 </p> | 95 </p> |
| 104 | 96 |
| 105 <h3 id="permissions">permissions</h3> | 97 <h3 id="permissions">permissions</h3> |
| 106 | 98 |
| 107 <p> | 99 <p> |
| 108 The capabilities the extension might use. | 100 An array of permissions that the extension might use. |
| 109 A permission can be either one of a list of known strings | 101 Each permission can be either one of a list of known strings |
| 110 (currently, either "tabs" or "bookmarks") | 102 (such as "tabs" or "bookmarks") |
| 111 or a match pattern, | 103 or a match pattern |
| 112 which gives access to one or more hosts. | 104 that gives access to one or more hosts. |
| 113 The idea is not to restrict what you can do, | 105 These permissions are displayed to users before installation. |
| 114 but to give advanced users an indication of what your extension | |
| 115 will be able to do. | |
| 116 Permissions might also help to limit damage | 106 Permissions might also help to limit damage |
| 117 if your extension is attacked. | 107 if your extension is attacked. |
| 118 </p> | 108 </p> |
| 119 | 109 |
| 120 <p> | 110 <p> |
| 111 If an API requires you to declare a permission in the manifest, |
| 112 then its documentation tells you how to do so. |
| 113 For example, |
| 114 the <a href="tabs.html">Tabs</a> page |
| 115 shows you how to |
| 116 declare the "tabs" permission. |
| 117 </p> |
| 118 |
| 119 <p> |
| 121 Here's an example of the permissions part of a manifest file: | 120 Here's an example of the permissions part of a manifest file: |
| 122 </p> | 121 </p> |
| 123 | 122 |
| 124 <pre> | 123 <pre> |
| 125 "permissions": [ | 124 "permissions": [ |
| 126 "tabs", | 125 "tabs", |
| 127 "bookmarks", | 126 "bookmarks", |
| 128 "http://www.blogger.com/", | 127 "http://www.blogger.com/", |
| 129 "http://*.google.com/" | 128 "http://*.google.com/" |
| 130 ], | 129 ], |
| 131 </pre> | 130 </pre> |
| 132 | 131 |
| 133 <p> | 132 <p> |
| 134 For more information, see | 133 For more information, see |
| 135 <a href="xhr.html">Cross-Origin XMLHttpRequest</a>, | 134 <a href="xhr.html">Cross-Origin XMLHttpRequest</a>, |
| 136 <a href="windows.html">Windows</a>, | 135 <a href="windows.html">Windows</a>, |
| 137 <a href="tabs.html">Tabs</a>, and | 136 <a href="tabs.html">Tabs</a>, and |
| 138 <a href="bookmarks.html">Bookmarks</a>. | 137 <a href="bookmarks.html">Bookmarks</a>. |
| 139 </p> | 138 </p> |
| 140 | 139 |
| 140 <h3 id="version">version</h3> |
| 141 |
| 142 <p> |
| 143 One to four dot-separated integers |
| 144 identifying the version of this extension. |
| 145 Examples: |
| 146 </p> |
| 147 |
| 148 <ul> |
| 149 <li> <code>"version": "1"</code> </li> |
| 150 <li> <code>"version": "1.0"</code> </li> |
| 151 <li> <code>"version": "2.10.2"</code> </li> |
| 152 <li> <code>"version": "3.1.2.4567"</code> </li> |
| 153 </ul> |
| 154 |
| 155 <p> |
| 156 The autoupdate system compares versions |
| 157 to determine whether an installed extension |
| 158 needs to be updated. |
| 159 If the published extension has a newer version string |
| 160 than the installed extension, |
| 161 then the extension is automatically updated. |
| 162 </p> |
| 163 |
| 164 <p> |
| 165 The comparison starts with the leftmost integers. |
| 166 If those integers are equal, |
| 167 the integers to the right are compared, |
| 168 and so on. |
| 169 For example, 1.2.0 is a newer version than 1.1.9.99999. |
| 170 </p> |
| 171 |
| 172 <p> |
| 173 A missing integer is equal to zero. |
| 174 For example, 1.1.9.99999 is newer than 1.1. |
| 175 </p> |
| 176 |
| 177 <p> |
| 178 For more information, see |
| 179 <a href="autoupdate.html">Autoupdating</a>. |
| 180 </p> |
| 181 |
| 182 <p class="comment"> |
| 183 [PENDING: Once the gallery is published, point to it |
| 184 and make a big deal of the fact that autoupdating is free |
| 185 if you use the gallery.] |
| 186 </p> |
| OLD | NEW |