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 |