Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 <h1>Formats: Manifest Files</h1> | 1 <h1>Formats: Manifest Files</h1> |
| 2 | 2 |
| 3 | 3 |
| 4 <p> | 4 <p> |
| 5 Every extension, installable web app, and theme has a | 5 Every extension, installable web app, and theme 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. | 8 that provides important information. |
| 9 </p> | 9 </p> |
| 10 | 10 |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 35 "<a href="themes.html">theme</a>": {...}, | 35 "<a href="themes.html">theme</a>": {...}, |
| 36 "<a href="#app">app</a>": {...}, | 36 "<a href="#app">app</a>": {...}, |
| 37 | 37 |
| 38 <em>// Add any of these that you need</em> | 38 <em>// Add any of these that you need</em> |
| 39 "<a href="event_pages.html">background</a>": {"persistent": false, ...}, | 39 "<a href="event_pages.html">background</a>": {"persistent": false, ...}, |
| 40 "<a href="background_pages.html">background</a>": {"persistent": true, ...}, | 40 "<a href="background_pages.html">background</a>": {"persistent": true, ...}, |
| 41 "<a href="override.html">chrome_url_overrides</a>": {...}, | 41 "<a href="override.html">chrome_url_overrides</a>": {...}, |
| 42 "<a href="content_scripts.html">content_scripts</a>": [...], | 42 "<a href="content_scripts.html">content_scripts</a>": [...], |
| 43 "<a href="../extensions/contentSecurityPolicy.html">content_security_policy</a >": "<em>policyString</em>", | 43 "<a href="../extensions/contentSecurityPolicy.html">content_security_policy</a >": "<em>policyString</em>", |
| 44 "<a href="fileBrowserHandler.html">file_browser_handlers</a>": [...], | 44 "<a href="fileBrowserHandler.html">file_browser_handlers</a>": [...], |
| 45 "<a href="#file_handlers">file_handlers</a>": {...}, | 45 "<a href="#file_handlers">file_handlers</a>": {...}, |
|
not at google - send to devlin
2013/08/30 17:07:58
you have some epic rebasing to do. This file hasn'
sergeygs
2013/09/02 07:36:22
Yes, I've been a couple of weeks behind as it turn
| |
| 46 "<a href="#homepage_url">homepage_url</a>": "http://<em>path/to/homepage</em>" , | 46 "<a href="#homepage_url">homepage_url</a>": "http://<em>path/to/homepage</em>" , |
| 47 "<a href="#incognito">incognito</a>": "spanning" <em>or</em> "split", | 47 "<a href="#incognito">incognito</a>": "spanning" <em>or</em> "split", |
| 48 "<a href="#key">key</a>": "<em>publicKey</em>", | 48 "<a href="#key">key</a>": "<em>publicKey</em>", |
| 49 "<a href="#minimum_chrome_version">minimum_chrome_version</a>": "<em>versionSt ring</em>", | 49 "<a href="#minimum_chrome_version">minimum_chrome_version</a>": "<em>versionSt ring</em>", |
| 50 | 50 |
| 51 "<a href="#nacl_modules">nacl_modules</a>": [...], | 51 "<a href="#nacl_modules">nacl_modules</a>": [...], |
| 52 "<a href="#kiosk_enabled">kiosk_enabled</a>": true, | 52 "<a href="#kiosk_enabled">kiosk_enabled</a>": true, |
| 53 "<a href="#offline_enabled">offline_enabled</a>": true, | 53 "<a href="#offline_enabled">offline_enabled</a>": true, |
| 54 "<a href="omnibox.html">omnibox</a>": { "keyword": "<em>aString</em>" }, | 54 "<a href="omnibox.html">omnibox</a>": { "keyword": "<em>aString</em>" }, |
| 55 "<a href="options.html">options_page</a>": "<em>aFile</em>.html", | 55 "<a href="options.html">options_page</a>": "<em>aFile</em>.html", |
| 56 "<a href="declare_permissions.html">permissions</a>": [...], | 56 "<a href="declare_permissions.html">permissions</a>": [...], |
| 57 "<a href="npapi.html">plugins</a>": [...], | 57 "<a href="npapi.html">plugins</a>": [...], |
| 58 "<a href="#requirements">requirements</a>": {...}, | 58 "<a href="#requirements">requirements</a>": {...}, |
| 59 "<a href="autoupdate.html">update_url</a>": "http://<em>path/to/updateInfo</em >.xml", | 59 "<a href="autoupdate.html">update_url</a>": "http://<em>path/to/updateInfo</em >.xml", |
| 60 "<a href="#url_handlers">url_handlers</a>": {...}, | |
| 60 "<a href="#web_accessible_resources">web_accessible_resources</a>": [...], | 61 "<a href="#web_accessible_resources">web_accessible_resources</a>": [...], |
| 61 "<a href="#sandbox">sandbox</a>": [...] | 62 "<a href="#sandbox">sandbox</a>": [...] |
| 62 } | 63 } |
| 63 </pre> | 64 </pre> |
| 64 | 65 |
| 65 | 66 |
| 66 <h2 id="field_details">Field details</h2> | 67 <h2 id="field_details">Field details</h2> |
| 67 | 68 |
| 68 <p> | 69 <p> |
| 69 This section covers fields that aren't described in another page. | 70 This section covers fields that aren't described in another page. |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 106 the browser's extension management UI | 107 the browser's extension management UI |
| 107 and the <a href="https://chrome.google.com/webstore">Chrome Web Store</a>. | 108 and the <a href="https://chrome.google.com/webstore">Chrome Web Store</a>. |
| 108 You can specify locale-specific strings for this field; | 109 You can specify locale-specific strings for this field; |
| 109 see <a href="i18n.html">Internationalization</a> for details. | 110 see <a href="i18n.html">Internationalization</a> for details. |
| 110 </p> | 111 </p> |
| 111 | 112 |
| 112 <h3 id="file_handlers">file_handlers</h3> | 113 <h3 id="file_handlers">file_handlers</h3> |
| 113 | 114 |
| 114 <p> | 115 <p> |
| 115 Used by <a href="../apps/app_lifecycle.html#eventpage">packaged apps</a> | 116 Used by <a href="../apps/app_lifecycle.html#eventpage">packaged apps</a> |
| 116 to specify what types of files the app can handle. An app can have multiple <cod e>file_handlers</code>, with each one having an identifier, a list of MIME types that can be handled, and | 117 to specify what types of files the app can handle. An app can have multiple |
| 117 a title. Here's an example of specifying file handlers: | 118 <code>file_handlers</code>, with each one having an identifier, a list of MIME |
| 119 types that can be handled, and a title. Here's an example of specifying file han dlers: | |
| 118 </p> | 120 </p> |
| 119 | 121 |
| 120 <pre> | 122 <pre> |
| 121 "file_handlers": { | 123 "file_handlers": { |
| 122 "text": { | 124 "text": { |
| 123 "types": [ | 125 "types": [ |
| 124 "text/*" | 126 "text/*" |
| 125 ], | 127 ], |
| 126 "title": "Text editor" | 128 "title": "Text editor" |
| 127 }, | 129 }, |
| 128 "image": { | 130 "image": { |
| 129 "types": [ | 131 "types": [ |
| 130 "image/png", | 132 "image/png", |
| 131 "image/jpeg" | 133 "image/jpeg" |
| 132 ], | 134 ], |
| 133 "title": "Image editor" | 135 "title": "Image editor" |
| 134 } | 136 } |
| 135 } | 137 } |
| 136 </pre> | 138 </pre> |
| 137 | 139 |
| 138 <p> | 140 <p> |
| 139 To handle files, apps also need to declare the $ref:fileSystem | 141 To handle files, apps also need to declare the $ref:fileSystem |
| 140 permission. Apps can then be passed files in the $ref:app.runtime.onLaunched | 142 permission. Apps can then be passed files in the $ref:app.runtime.onLaunched |
| 141 event - either from the system | 143 event - either from the system |
| 142 file manager (currently supported on ChromeOS only) or by providing | 144 file manager (currently supported on ChromeOS only) or by providing |
| 143 a path on the <a href="../apps/first_app.html#open">command line</a>. | 145 a path on the <a href="../apps/first_app.html#open">command line</a>. |
| 144 </p> | 146 </p> |
| 145 | 147 |
| 148 | |
| 149 <h3 id="url_handlers">url_handlers</h3> | |
| 150 | |
| 151 <p> | |
| 152 Used by <a href="../apps/app_lifecycle.html#eventpage">packaged apps</a> | |
| 153 to specify what URL patterns the app can handle. An app can have multiple | |
| 154 <code>url_handlers</code>, with each one having an identifier, a URL pattern | |
| 155 that can be handled, and a title. Here's an example of specifying URL handlers: | |
| 156 </p> | |
| 157 | |
| 158 <pre> | |
| 159 "url_handlers": { | |
| 160 "presentation": { | |
| 161 "matches": [ | |
| 162 "https://www.foo.com/presentation/view/*", | |
| 163 "https://www.bar.com/presentation/view/*" | |
| 164 ], | |
| 165 "title": "Open presentation" | |
| 166 }, | |
| 167 "spreadsheet_edit": { | |
| 168 "matches": [ | |
| 169 "https://www.foo.com/spreadsheet/edit/*" | |
| 170 "https://www.bar.com/spreadsheet/edit/*" | |
| 171 ], | |
| 172 "title": "Edit spreadsheet" | |
| 173 } | |
| 174 }</pre> | |
| 175 | |
| 176 <p> | |
| 177 Apps can only register to handle URL patterns within domains they can prove | |
| 178 ownership of, as determined by the <a href="https://chrome.google.com/webstore"> Chrome Web Store</a>. | |
| 179 Apps that do not fulfill this requirement will be rejected by the store. | |
| 180 This automatically means that at least a complete domain should always be | |
| 181 specified for all patterns in the <code>matches</code> list. Apps can then be | |
| 182 passed matching URLs in the $ref:app.runtime.onLaunched event. | |
| 183 </p> | |
| 184 | |
| 185 | |
| 146 <h3 id="homepage_url">homepage_url</h3> | 186 <h3 id="homepage_url">homepage_url</h3> |
| 147 | 187 |
| 148 <p> | 188 <p> |
| 149 The URL of the homepage for this extension. The extensions management page (chro me://extensions) | 189 The URL of the homepage for this extension. The extensions management page (chro me://extensions) |
| 150 will contain a link to this URL. This field is particularly useful if you | 190 will contain a link to this URL. This field is particularly useful if you |
| 151 <a href="hosting.html">host the extension on your own site</a>. If you distribut e your | 191 <a href="hosting.html">host the extension on your own site</a>. If you distribut e your |
| 152 extension using the <a href="https://chrome.google.com/webstore">Chrome Web Stor e</a>, | 192 extension using the <a href="https://chrome.google.com/webstore">Chrome Web Stor e</a>, |
| 153 the homepage URL defaults to the extension's own page. | 193 the homepage URL defaults to the extension's own page. |
| 154 </p> | 194 </p> |
| 155 | 195 |
| (...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 396 "features": ["webgl"] | 436 "features": ["webgl"] |
| 397 } | 437 } |
| 398 } | 438 } |
| 399 </pre> | 439 </pre> |
| 400 | 440 |
| 401 <p> | 441 <p> |
| 402 The "plugins" requirement indicates | 442 The "plugins" requirement indicates |
| 403 if an app or extension requires NPAPI to run. | 443 if an app or extension requires NPAPI to run. |
| 404 This requirement is enabled by default | 444 This requirement is enabled by default |
| 405 when the manifest includes the | 445 when the manifest includes the |
| 406 <a href="http://developer.chrome.com/extensions/npapi.html">"plugins" field</a>. | 446 <a href="http://developer.chrome.com/extensions/npapi.html">"plugins" field</a>. |
| 407 For apps and extensions that still work when plugins aren't available, | 447 For apps and extensions that still work when plugins aren't available, |
| 408 you can disable this requirement | 448 you can disable this requirement |
| 409 by setting NPAPI to false. | 449 by setting NPAPI to false. |
| 410 You can also enable this requirement manually, | 450 You can also enable this requirement manually, |
| 411 by setting NPAPI to true, | 451 by setting NPAPI to true, |
| 412 as shown in this example: | 452 as shown in this example: |
| 413 </p> | 453 </p> |
| 414 | 454 |
| 415 <pre> | 455 <pre> |
| 416 "requirements": { | 456 "requirements": { |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 624 goes into more detail about implementing a sandboxing workflow that enables use | 664 goes into more detail about implementing a sandboxing workflow that enables use |
| 625 of libraries that would otherwise have issues executing under extension's | 665 of libraries that would otherwise have issues executing under extension's |
| 626 <a href="../extensions/contentSecurityPolicy.html">default Content Security | 666 <a href="../extensions/contentSecurityPolicy.html">default Content Security |
| 627 Policy</a>. | 667 Policy</a>. |
| 628 </p> | 668 </p> |
| 629 | 669 |
| 630 <p> | 670 <p> |
| 631 Sandboxed page may only be specified when using | 671 Sandboxed page may only be specified when using |
| 632 <a href="#manifest_version"><code>manifest_version</code></a> 2 or above. | 672 <a href="#manifest_version"><code>manifest_version</code></a> 2 or above. |
| 633 </p> | 673 </p> |
| OLD | NEW |