1 <!DOCTYPE html><!-- This page is a placeholder for generated extensions api doc. Note: 2 1) The <head> information in this page is significant, should be uniform 3 across api docs and should be edited only with knowledge of the 4 templating mechanism. 5 3) All <body>.innerHTML is genereated as an rendering step. If viewed in a 6 browser, it will be re-generated from the template, json schema and 7 authored overview content. 8 4) The <body>.innerHTML is also generated by an offline step so that this 9 page may easily be indexed by search engines. 10 --><html xmlns="http://www.w3.org/1999/xhtml"><head> 11 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 12 <link href="css/ApiRefStyles.css" rel="stylesheet" type="text/css"> 13 <link href="css/print.css" rel="stylesheet" type="text/css" media="print"> 14 <script type="text/javascript" src="../../../third_party/jstemplate/jstemplate_compiled.js"> 15 </script> 16 <script type="text/javascript" src="js/api_page_generator.js"></script> 17 <script type="text/javascript" src="js/bootstrap.js"></script> 18 <script type="text/javascript" src="js/sidebar.js"></script> 19 <title>Formats: Manifest Files - Google Chrome Extensions - Google Code</title></head> 20 <body> <div id="gc-container" class="labs"> 21 <div id="devModeWarning"> 22 You are viewing extension docs in chrome via the 'file:' scheme: are you expecting to see local changes when you refresh? You'll need run chrome with --allow-file-access-from-files. 23 </div> 24 <!-- SUBTEMPLATES: DO NOT MOVE FROM THIS LOCATION --> 25 <!-- In particular, sub-templates that recurse, must be used by allowing 26 jstemplate to make a copy of the template in this section which 27 are not operated on by way of the jsskip="true" --> 28 <div style="display:none"> 29 30 <!-- VALUE --> 31 <div id="valueTemplate"> 32 <dt> 33 <var>paramName</var> 34 <em> 35 36 <!-- TYPE --> 37 <div style="display:inline"> 38 ( 39 <span class="optional">optional</span> 40 <span class="enum">enumerated</span> 41 <span id="typeTemplate"> 42 <span> 43 <a> Type</a> 44 </span> 45 <span> 46 <span> 47 array of <span><span></span></span> 48 </span> 49 <span>paramType</span> 50 <span></span> 51 </span> 52 </span> 53 ) 54 </div> 55 56 </em> 57 </dt> 58 <dd class="todo"> 59 Undocumented. 60 </dd> 61 <dd> 62 Description of this parameter from the json schema. 63 </dd> 64 <dd> 65 This parameter was added in version 66 <b><span></span></b>. 67 You must omit this parameter in earlier versions, 68 and you may omit it in any version. If you require this 69 parameter, the manifest key 70 <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a> 71 can ensure that your extension won't be run in an earlier browser version. 72 </dd> 73 74 <!-- OBJECT PROPERTIES --> 75 <dd> 76 <dl> 77 <div> 78 <div> 79 </div> 80 </div> 81 </dl> 82 </dd> 83 84 <!-- OBJECT METHODS --> 85 <dd> 86 <div></div> 87 </dd> 88 89 <!-- OBJECT EVENT FIELDS --> 90 <dd> 91 <div></div> 92 </dd> 93 94 <!-- FUNCTION PARAMETERS --> 95 <dd> 96 <div></div> 97 </dd> 98 99 </div> <!-- /VALUE --> 100 101 <div id="functionParametersTemplate"> 102 <h5>Parameters</h5> 103 <dl> 104 <div> 105 <div> 106 </div> 107 </div> 108 </dl> 109 </div> 110 </div> <!-- /SUBTEMPLATES --> 111 112 <a id="top"></a> 113 <div id="skipto"> 114 <a href="#gc-pagecontent">Skip to page content</a> 115 <a href="#gc-toc">Skip to main navigation</a> 116 </div> 117 <!-- API HEADER --> 118 <table id="header" width="100%" cellspacing="0" border="0"> 119 <tbody><tr> 120 <td valign="middle"><a href="http://code.google.com/"><img src="images/code_labs_logo.gif" height="43" width="161" alt="Google Code Labs" style="border:0; margin:0;"></a></td> 121 <td valign="middle" width="100%" style="padding-left:0.6em;"> 122 <form action="http://www.google.com/cse" id="cse" style="margin-top:0.5em"> 123 <div id="gsc-search-box"> 124 <input type="hidden" name="cx" value="002967670403910741006:61_cvzfqtno"> 125 <input type="hidden" name="ie" value="UTF-8"> 126 <input type="text" name="q" value="" size="55"> 127 <input class="gsc-search-button" type="submit" name="sa" value="Search"> 128 <br> 129 <span class="greytext">e.g. "page action" or "tabs"</span> 130 </div> 131 </form> 132 133 <script type="text/javascript" src="http://www.google.com/jsapi"></script> 134 <script type="text/javascript">google.load("elements", "1", {packages: "transliteration"});</script> 135 <script type="text/javascript" src="http://www.google.com/coop/cse/t13n?form=cse&t13n_langs=en"></script> 136 <script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse&lang=en"></script> 137 </td> 138 </tr> 139 </tbody></table> 140 141 <div id="codesiteContent" class=""> 142 143 <a id="gc-topnav-anchor"></a> 144 <div id="gc-topnav"> 145 <h1>Google Chrome Extensions (<a href="http://code.google.com/labs/">Labs</a>)</h1> 146 <ul id="home" class="gc-topnav-tabs"> 147 <li id="home_link"> 148 <a href="index.html" title="Google Chrome Extensions home page">Home</a> 149 </li> 150 <li id="docs_link"> 151 <a href="docs.html" title="Official Google Chrome Extensions documentation">Docs</a> 152 </li> 153 <li id="faq_link"> 154 <a href="faq.html" title="Answers to frequently asked questions about Google Chrome Extensions">FAQ</a> 155 </li> 156 <li id="samples_link"> 157 <a href="samples.html" title="Sample extensions (with source code)">Samples</a> 158 </li> 159 <li id="group_link"> 160 <a href="http://groups.google.com/a/chromium.org/group/chromium-extensions" title="Google Chrome Extensions developer forum">Group</a> 161 </li> 162 </ul> 163 </div> <!-- end gc-topnav --> 164 165 <div class="g-section g-tpl-170"> 166 <!-- SIDENAV --> 167 <div class="g-unit g-first" id="gc-toc"> 168 <ul> 169 <li><a href="getstarted.html">Getting Started</a></li> 170 <li><a href="overview.html">Overview</a></li> 171 <li><a href="whats_new.html">What's New?</a></li> 172 <li><h2><a href="devguide.html">Developer's Guide</a></h2> 173 <ul> 174 <li>Browser UI 175 <ul> 176 <li><a href="browserAction.html">Browser Actions</a></li> 177 <li><a href="contextMenus.html">Context Menus</a></li> 178 <li><a href="notifications.html">Desktop Notifications</a></li> 179 <li><a href="omnibox.html">Omnibox</a></li> 180 <li><a href="options.html">Options Pages</a></li> 181 <li><a href="override.html">Override Pages</a></li> 182 <li><a href="pageAction.html">Page Actions</a></li> 183 </ul> 184 </li> 185 <li>Browser Interaction 186 <ul> 187 <li><a href="bookmarks.html">Bookmarks</a></li> 188 <li><a href="cookies.html">Cookies</a></li> 189 <li><a href="events.html">Events</a></li> 190 <li><a href="history.html">History</a></li> 191 <li><a href="management.html">Management</a></li> 192 <li><a href="tabs.html">Tabs</a></li> 193 <li><a href="windows.html">Windows</a></li> 194 </ul> 195 </li> 196 <li>Implementation 197 <ul> 198 <li><a href="a11y.html">Accessibility</a></li> 199 <li><a href="background_pages.html">Background Pages</a></li> 200 <li><a href="content_scripts.html">Content Scripts</a></li> 201 <li><a href="xhr.html">Cross-Origin XHR</a></li> 202 <li><a href="idle.html">Idle</a></li> 203 <li><a href="i18n.html">Internationalization</a></li> 204 <li><a href="messaging.html">Message Passing</a></li> 205 <li><a href="npapi.html">NPAPI Plugins</a></li> 206 </ul> 207 </li> 208 <li>Finishing 209 <ul> 210 <li><a href="hosting.html">Hosting</a></li> 211 <li><a href="external_extensions.html">Other Deployment Options</a></li> 212 </ul> 213 </li> 214 </ul> 215 </li> 216 <li><h2><a href="apps.html">Packaged Apps</a></h2></li> 217 <li><h2><a href="tutorials.html">Tutorials</a></h2> 218 <ul> 219 <li><a href="tut_debugging.html">Debugging</a></li> 220 <li><a href="tut_analytics.html">Google Analytics</a></li> 221 <li><a href="tut_oauth.html">OAuth</a></li> 222 </ul> 223 </li> 224 <li><h2>Reference</h2> 225 <ul> 226 <li>Formats 227 <ul> 228 <li class="leftNavSelected">Manifest Files</li> 229 <li><a href="match_patterns.html">Match Patterns</a></li> 230 </ul> 231 </li> 232 <li><a href="permission_warnings.html">Permission Warnings</a></li> 233 <li><a href="api_index.html">chrome.* APIs</a></li> 234 <li><a href="api_other.html">Other APIs</a></li> 235 </ul> 236 </li> 237 <li><h2><a href="samples.html">Samples</a></h2></li> 238 <div class="line"> </div> 239 <li><h2>More</h2> 240 <ul> 241 <li><a href="http://code.google.com/chrome/webstore/docs/index.html">Chrome Web Store</a></li> 242 <li><a href="http://code.google.com/chrome/apps/docs/developers_guide.html">Hosted Apps</a></li> 243 <li><a href="themes.html">Themes</a></li> 244 </ul> 245 </li> 246 </ul> 247 </div> 248 <script> 249 initToggles(); 250 </script> 251 252 <div class="g-unit" id="gc-pagecontent"> 253 <div id="pageTitle"> 254 <h1 class="page_title">Formats: Manifest Files</h1> 255 </div> 256 <!-- TABLE OF CONTENTS --> 257 <div id="toc"> 258 <h2>Contents</h2> 259 <ol> 260 <li> 261 <a href="#overview"> Field summary </a> 262 <ol> 263 <li style="display: none; "> 264 <a>h3Name</a> 265 </li> 266 </ol> 267 </li><li> 268 <a href="#H2-1">Field details</a> 269 <ol> 270 <li> 271 <a href="#app">app</a> 272 </li><li> 273 <a href="#default_locale">default_locale</a> 274 </li><li> 275 <a href="#description">description</a> 276 </li><li> 277 <a href="#homepage_url">homepage_url</a> 278 </li><li> 279 <a href="#icons">icons</a> 280 </li><li> 281 <a href="#incognito">incognito</a> 282 </li><li> 283 <a href="#key">key</a> 284 </li><li> 285 <a href="#minimum_chrome_version">minimum_chrome_version</a> 286 </li><li> 287 <a href="#name">name</a> 288 </li><li> 289 <a href="#permissions">permissions</a> 290 </li><li> 291 <a href="#version">version</a> 292 </li> 293 </ol> 294 </li> 295 <li style="display: none; "> 296 <a href="#apiReference">API reference</a> 297 <ol> 298 <li> 299 <a href="#properties">Properties</a> 300 <ol> 301 <li> 302 <a href="#property-anchor">propertyName</a> 303 </li> 304 </ol> 305 </li> 306 <li> 307 <a>Methods</a> 308 <ol> 309 <li> 310 <a href="#method-anchor">methodName</a> 311 </li> 312 </ol> 313 </li> 314 <li> 315 <a>Events</a> 316 <ol> 317 <li> 318 <a href="#event-anchor">eventName</a> 319 </li> 320 </ol> 321 </li> 322 <li> 323 <a href="#types">Types</a> 324 <ol> 325 <li> 326 <a href="#id-anchor">id</a> 327 </li> 328 </ol> 329 </li> 330 </ol> 331 </li> 332 </ol> 333 </div> 334 <!-- /TABLE OF CONTENTS --> 335 336 <!-- Standard content lead-in for experimental API pages --> 337 <p id="classSummary" style="display: none; "> 338 For information on how to use experimental APIs, see the <a href="experimental.html">chrome.experimental.* APIs</a> page. 339 </p> 340 341 <!-- STATIC CONTENT PLACEHOLDER --> 342 <div id="static"><div id="pageData-name" class="pageData">Formats: Manifest Files</div> 343 <div id="pageData-showTOC" class="pageData">true</div> 344 345 <p> 346 Every extension, installable web app, and theme has a 347 <a href="http://www.json.org">JSON</a>-formatted manifest file, 348 named <code>manifest.json</code>, 349 that provides important information. 350 </p> 351 352 <h2 id="overview"> Field summary </h2> 353 354 <p> 355 The following code shows the supported manifest fields, 356 with links to the page that discusses each field. 357 The only fields that are always required 358 are <b>name</b> and <b>version</b>. 359 </p> 360 361 <pre>{ 362 <em>// Required</em> 363 "<a href="#name">name</a>": "<em>My Extension</em>", 364 "<a href="#version">version</a>": "<em>versionString</em>", 365 366 <em>// Recommended</em> 367 "<a href="#description">description</a>": "<em>A plain text description</em>", 368 "<a href="#icons">icons</a>": { ... }, 369 "<a href="#default_locale">default_locale</a>": "<em>en</em>", 370 371 <em>// Pick one (or none)</em> 372 "<a href="browserAction.html">browser_action</a>": {...}, 373 "<a href="pageAction.html">page_action</a>": {...}, 374 "<a href="themes.html">theme</a>": {...}, 375 "<a href="#app">app</a>": {...}, 376 377 <em>// Add any of these that you need</em> 378 "<a href="background_pages.html">background_page</a>": "<em>aFile</em>.html", 379 "<a href="override.html">chrome_url_overrides</a>": {...}, 380 "<a href="content_scripts.html">content_scripts</a>": [...], 381 "<a href="#homepage_url">homepage_url</a>": "http://<em>path/to/homepage</em>", 382 "<a href="#incognito">incognito</a>": "spanning" <em>or</em> "split", 383 "<a href="#key">key</a>": "<em>publicKey</em>", 384 "<a href="#minimum_chrome_version">minimum_chrome_version</a>": "<em>versionString</em>", 385 "<a href="omnibox.html">omnibox</a>": { "keyword" : "<em>aString</em>" }, 386 "<a href="options.html">options_page</a>": "<em>aFile</em>.html", 387 "<a href="#permissions">permissions</a>": [...], 388 "<a href="npapi.html">plugins</a>": [...], 389 "<a href="autoupdate.html">update_url</a>": "http://<em>path/to/updateInfo</em>.xml" 390 } 391 </pre> 392 393 394 <a name="H2-1"></a><h2>Field details</h2> 395 396 <p> 397 This section covers fields that aren't described in another page. 398 For a complete list of fields, 399 with links to where they're described in detail, 400 see the <a href="#overview">Field summary</a>. 401 </p> 402 403 404 <h3 id="app">app</h3> 405 406 <p> 407 Used by installable web apps, 408 including packaged apps, 409 to specify the URLs that the app uses. 410 Most important is the <em>launch page</em> for the appthe 411 page that the browser goes to when the user clicks the app's icon 412 in the New Tab page. 413 </p> 414 415 <p> 416 For details, see the documentation for 417 <a href="http://code.google.com/chrome/apps/docs/developers_guide.html">hosted apps</a> and 418 <a href="apps.html">packaged apps</a>. 419 </p> 420 421 <h3 id="default_locale">default_locale</h3> 422 423 <p> 424 Specifies the subdirectory of <code>_locales</code> 425 that contains the default strings for this extension. 426 This field is <b>required</b> in extensions 427 that have a <code>_locales</code> directory; 428 it <b>must be absent</b> in extensions 429 that have no <code>_locales</code> directory. 430 For details, see 431 <a href="i18n.html">Internationalization</a>. 432 </p> 433 434 <h3 id="description">description</h3> 435 436 <p> 437 A plain text string 438 (no HTML or other formatting; 439 no more than 132 characters) 440 that describes the extension. 441 The description should be suitable for both 442 the browser's extension management UI 443 and the <a href="https://chrome.google.com/webstore">Chrome Web Store</a>. 444 You can specify locale-specific strings for this field; 445 see <a href="i18n.html">Internationalization</a> for details. 446 </p> 447 448 <h3 id="homepage_url">homepage_url</h3> 449 450 <p> 451 The URL of the homepage for this extension. The extensions management page (chrome://extensions) 452 will contain a link to this URL. This field is particularly useful if you 453 <a href="hosting.html">host the extension on your own site</a>. If you distribute your 454 extension using the <a href="https://chrome.google.com/extensions">Extensions Gallery</a> or <a href="https://chrome.google.com/webstore">Chrome Web Store</a>, 455 the homepage URL defaults to the extension's own page. 456 </p> 457 458 <h3 id="icons">icons</h3> 459 460 <p> 461 One or more icons that represent the extension, app, or theme. 462 You should always provide a 128x128 icon; 463 it's used during installation and by the Chrome Web Store. 464 Extensions should also provide a 48x48 icon, 465 which is used in the extensions management page 466 (chrome://extensions). 467 You can also specify a 16x16 icon to be used as the favicon 468 for an extension's pages. 469 The 16x16 icon is also displayed in the experimental extension 470 <a href="experimental.infobars.html">infobar</a> 471 feature. 472 </p> 473 474 <p> 475 Icons should generally be in PNG format, 476 because PNG has the best support for transparency. 477 They can, however, be in any format supported by WebKit, 478 including BMP, GIF, ICO, and JPEG. 479 Here's an example of specifying the icons: 480 </p> 481 482 <pre>"icons": { "16": "icon16.png", 483 "48": "icon48.png", 484 "128": "icon128.png" }, 485 </pre> 486 487 <p class="note"> 488 <b>Important:</b> 489 Use only the documented icon sizes. 490 <br><br> 491 You might notice that Chrome sometimes resizes these icons down to smaller 492 sizes. For example, the install dialog might shrink the 128-pixel 493 icon down to 69 pixels. 494 <br><br> 495 However, the details of 496 Chrome's UI may change between versions, and these changes assume that 497 developers are using the documented sizes. If you use other sizes, 498 your icon may look bad in future versions of the browser. 499 </p> 500 501 <p> 502 If you upload your extension, app, or theme using the 503 <a href="https://chrome.google.com/webstore/developer/dashboard">Chrome Developer Dashboard</a>, 504 you'll need to upload additional images, 505 including at least one screenshot of your extension. 506 For more information, 507 see the 508 <a href="http://code.google.com/chrome/webstore/">Chrome Web Store 509 developer documentation</a>. 510 </p> 511 512 <h3 id="incognito">incognito</h3> 513 514 <p> 515 Either "spanning" or "split", to specify how this extension will 516 behave if allowed to run in incognito mode. 517 </p> 518 519 <p> 520 The default for extensions is "spanning", which means that the extension 521 will run in a single shared process. Any events or messages from an incognito 522 tab will be sent to the shared process, with an <em>incognito</em> flag 523 indicating where it came from. 524 </p> 525 526 <p> 527 The default for installable web apps is "split", 528 which means that all app pages in 529 an incognito window will run in their own incognito process. If the app or extension contains a background page, that will also run in the incognito process. 530 This incognito process runs along side the regular process, but has a separate 531 memory-only cookie store. Each process sees events and messages only from its 532 own context (for example, the incognito process will see only incognito tab updates). 533 The processes are unable to communicate with each other. 534 </p> 535 536 <p> 537 As a rule of thumb, if your extension or app needs to load a tab in an incognito browser, use 538 <em>split</em> incognito behavior. If your extension or app needs to be logged 539 into a remote server or persist settings locally, use <em>spanning</em> 540 incognito behavior. 541 </p> 542 543 <h3 id="key">key</h3> 544 545 <p> 546 This value can be used to control 547 the unique ID of an extension, app, or theme when 548 it is loaded during development. 549 </p> 550 551 <p class="note"> 552 <b>Note:</b> You don't usually need to 553 use this value. Instead, write your 554 code so that the key value doesn't matter 555 by using <a href="overview.html#relative-urls">relative paths</a> 556 and <a href="extension.html#method-getURL">chrome.extension.getURL()</a>. 557 </p> 558 559 <p> 560 To get a suitable key value, first 561 install your extension from a <code>.crx</code> file 562 (you may need to 563 <a href="https://chrome.google.com/webstore/developer/dashboard">upload your extension</a> 564 or <a href="packaging.html">package it manually</a>). 565 Then, in your 566 <a href="http://www.chromium.org/user-experience/user-data-directory">user 567 data directory</a>, look in the file 568 <code>Default/Extensions/<em><extensionId></em>/<em><versionString></em>/manifest.json</code>. 569 You will see the key value filled in there. 570 </p> 571 572 <h3 id="minimum_chrome_version">minimum_chrome_version</h3> 573 574 <p> 575 The version of Chrome that your extension, app, or theme requires, if any. 576 The format for this string is the same as for the 577 <a href="#version">version</a> field. 578 579 </p><h3 id="name">name</h3> 580 581 <p> 582 A short, plain text string 583 (no more than 45 characters) 584 that identifies the extension. 585 The name is used in the install dialog, 586 extension management UI, 587 and the <a href="https://chrome.google.com/webstore">store</a>. 588 You can specify locale-specific strings for this field; 589 see <a href="i18n.html">Internationalization</a> for details. 590 </p> 591 592 <h3 id="permissions">permissions</h3> 593 594 <p> 595 An array of permissions that the extension or app might use. 596 Each permission can be either one of a list of known strings 597 (such as "geolocation") 598 or a match pattern 599 that gives access to one or more hosts. 600 Permissions can help to limit damage 601 if your extension or app is attacked. 602 Some permissions are also displayed to users before installation, 603 as detailed in 604 <a href="permission_warnings.html">Permission Warnings</a>. 605 </p> 606 607 <p> 608 If an extension API requires you to declare a permission in the manifest, 609 then its documentation tells you how to do so. 610 For example, 611 the <a href="tabs.html">Tabs</a> page 612 shows you how to 613 declare the "tabs" permission. 614 </p> 615 616 <p> 617 Here's an example of the permissions part of a manifest file 618 for an extension: 619 </p> 620 621 <pre>"permissions": [ 622 "tabs", 623 "bookmarks", 624 "http://www.blogger.com/", 625 "http://*.google.com/", 626 "unlimitedStorage" 627 ], 628 </pre> 629 630 <p> 631 The following table lists the permissions an extension 632 or packaged app can use. 633 </p> 634 635 <p class="note"> 636 <strong>Note:</strong> 637 Hosted apps can use the 638 "background", "geolocation", "notifications", and "unlimitedStorage" permissions, 639 but not any other permissions listed in this table. 640 </p> 641 642 <table> 643 <tbody><tr> 644 <th> Permission </th> <th> Description </th> 645 </tr> 646 <tr> 647 <td> <em>match pattern</em> </td> 648 <td> Specifies a <em>host permission</em>. 649 Required if the extension wants to interact 650 with the code running on pages. 651 Many extension capabilities, such as 652 <a href="xhr.html">cross-origin XMLHttpRequests</a>, 653 <a href="content_scripts.html#pi">programmatically injected 654 content scripts</a>, and <a href="cookies.html">the cookies API</a> 655 require host permissions. For details on the syntax, see 656 <a href="match_patterns.html">Match Patterns</a>. 657 </td> 658 </tr> 659 <tr id="bg"> 660 <td> "background" </td> 661 <td> <p> 662 Makes Chrome start up early and and shut down late, 663 so that apps and extensions can have a longer life. 664 </p> 665 666 <p> 667 When any installed hosted app, packaged app, or extension 668 has "background" permission, Chrome runs (invisibly) 669 as soon as the user logs into their computerbefore 670 the user launches Chrome. 671 The "background" permission also makes Chrome continue running 672 (even after its last window is closed) 673 until the user explicitly quits Chrome. 674 </p> 675 676 <p class="note"> 677 <b>Note:</b> 678 Disabled apps and extensions 679 are treated as if they aren't installed. 680 </p> 681 682 <p> 683 You typically use the "background" permission with a 684 <a href="background_pages.html">background page</a> 685 or (for hosted apps) a 686 <a href="http://code.google.com/chrome/apps/docs/background.html">background window</a>. 687 </p> 688 </td> 689 </tr> 690 <tr> 691 <td> "bookmarks" </td> 692 <td> Required if the extension uses the 693 <a href="bookmarks.html">chrome.bookmarks</a> module. </td> 694 </tr> 695 <tr> 696 <td> "chrome://favicon/" </td> 697 <td> Required if the extension uses the 698 "chrome://favicon/<em>url</em>" mechanism 699 to display the favicon of a page. 700 For example, to display the favicon of http://www.google.com/, 701 you declare the "chrome://favicon/" permission 702 and use HTML code like this: 703 <pre><img src="chrome://favicon/http://www.google.com/"></pre> 704 </td> 705 </tr> 706 <tr> 707 <td> "contextMenus" </td> 708 <td> Required if the extension uses the 709 <a href="contextMenus.html">chrome.contextMenus</a> module. </td> 710 </tr> 711 <tr> 712 <td> "cookies" </td> 713 <td> Required if the extension uses the 714 <a href="cookies.html">chrome.cookies</a> module. </td> 715 </tr> 716 <tr> 717 <td> "experimental" </td> 718 <td> Required if the extension uses any 719 <a href="http://code.google.com/chrome/extensions/dev/experimental.html">chrome.experimental.* APIs</a>.</td> 720 </tr> 721 <tr> 722 <td id="geolocation"> "geolocation" </td> 723 <td> Allows the extension to use the proposed HTML5 724 <a href="http://dev.w3.org/geo/api/spec-source.html">geolocation API</a> 725 without prompting the user for permission. </td> 726 </tr> 727 <tr> 728 <td> "history" </td> 729 <td> Required if the extension uses the 730 <a href="history.html">chrome.history</a> module. </td> 731 </tr> 732 <tr> 733 <td> "idle" </td> 734 <td> Required if the extension uses the 735 <a href="idle.html">chrome.idle</a> module. </td> 736 </tr> 737 <tr> 738 <td> "management" </td> 739 <td> Required if the extension uses the 740 <a href="management.html">chrome.management</a> module. </td> 741 </tr> 742 <tr> 743 <td> "notifications" </td> 744 <td> Allows the extension to use the proposed HTML5 745 <a href="http://www.chromium.org/developers/design-documents/desktop-notifications/api-specification">notification API</a> 746 without calling permission methods 747 (such as <code>checkPermission()</code>). 748 For more information see 749 <a href="notifications.html">Desktop Notifications</a>.</td> 750 </tr> 751 <tr> 752 <td> "tabs" </td> 753 <td> Required if the extension uses the 754 <a href="tabs.html">chrome.tabs</a> or 755 <a href="windows.html">chrome.windows</a> module. </td> 756 </tr> 757 <tr> 758 <td> "unlimitedStorage"</td> 759 <td> Provides an unlimited quota for storing HTML5 client-side data, 760 such as databases and local storage files. 761 Without this permission, the extension is limited to 762 5 MB of local storage. 763 764 <p class="note"> 765 <b>Note:</b> 766 This permission applies only to Web SQL Database and application cache 767 (see issue <a href="http://crbug.com/58985">58985</a>). 768 Also, it doesn't currently work with wildcard subdomains such as 769 <code>http://*.example.com</code>. 770 </p> 771 </td> 772 </tr> 773 </tbody></table> 774 775 776 <h3 id="version">version</h3> 777 778 <p> 779 One to four dot-separated integers 780 identifying the version of this extension. 781 A couple of rules apply to the integers: 782 they must be between 0 and 65535, inclusive, 783 and non-zero integers can't start with 0. 784 For example, 99999 and 032 are both invalid. 785 </p> 786 787 <p> 788 Here are some examples of valid versions: 789 </p> 790 791 <ul> 792 <li> <code>"version": "1"</code> </li> 793 <li> <code>"version": "1.0"</code> </li> 794 <li> <code>"version": "2.10.2"</code> </li> 795 <li> <code>"version": "3.1.2.4567"</code> </li> 796 </ul> 797 798 <p> 799 The autoupdate system compares versions 800 to determine whether an installed extension 801 needs to be updated. 802 If the published extension has a newer version string 803 than the installed extension, 804 then the extension is automatically updated. 805 </p> 806 807 <p> 808 The comparison starts with the leftmost integers. 809 If those integers are equal, 810 the integers to the right are compared, 811 and so on. 812 For example, 1.2.0 is a newer version than 1.1.9.9999. 813 </p> 814 815 <p> 816 A missing integer is equal to zero. 817 For example, 1.1.9.9999 is newer than 1.1. 818 </p> 819 820 <p> 821 For more information, see 822 <a href="autoupdate.html">Autoupdating</a>. 823 </p> 824 825 <!-- [PENDING: Possibly: point to the store/dashboard and make a big deal of the fact that autoupdating is free if you use them.] --> 826 </div> 827 828 <!-- API PAGE --> 829 <div class="apiPage" style="display: none; "> 830 <a name="apiReference"></a> 831 <h2>API reference: chrome.apiname </h2> 832 833 <!-- PROPERTIES --> 834 <div class="apiGroup"> 835 <a name="properties"></a> 836 <h3 id="properties">Properties</h3> 837 838 <div> 839 <a></a> 840 <h4>getLastError</h4> 841 <div class="summary"> 842 <!-- Note: intentionally longer 80 columns --> 843 <span>chrome.extension</span><span>lastError</span> 844 </div> 845 <div> 846 </div> 847 </div> 848 849 </div> <!-- /apiGroup --> 850 851 <!-- METHODS --> 852 <div id="methodsTemplate" class="apiGroup"> 853 <a></a> 854 <h3>Methods</h3> 855 856 <!-- iterates over all functions --> 857 <div class="apiItem"> 858 <a></a> <!-- method-anchor --> 859 <h4>method name</h4> 860 861 <div class="summary"><span>void</span> 862 <!-- Note: intentionally longer 80 columns --> 863 <span>chrome.module.methodName</span>(<span><span>, </span><span></span> 864 <var><span></span></var></span>)</div> 865 866 <div class="description"> 867 <p class="todo">Undocumented.</p> 868 <p> 869 A description from the json schema def of the function goes here. 870 </p> 871 872 <!-- PARAMETERS --> 873 <h4>Parameters</h4> 874 <dl> 875 <div> 876 <div> 877 </div> 878 </div> 879 </dl> 880 881 <!-- RETURNS --> 882 <h4>Returns</h4> 883 <dl> 884 <div> 885 <div> 886 </div> 887 </div> 888 </dl> 889 890 <!-- CALLBACK --> 891 <div> 892 <div> 893 <h4>Callback function</h4> 894 <p> 895 The callback <em>parameter</em> should specify a function 896 that looks like this: 897 </p> 898 <p> 899 If you specify the <em>callback</em> parameter, it should 900 specify a function that looks like this: 901 </p> 902 903 <!-- Note: intentionally longer 80 columns --> 904 <pre>function(<span>Type param1, Type param2</span>) <span class="subdued">{...}</span>;</pre> 905 <dl> 906 <div> 907 <div> 908 </div> 909 </div> 910 </dl> 911 </div> 912 </div> 913 914 <!-- MIN_VERSION --> 915 <p> 916 This function was added in version <b><span></span></b>. 917 If you require this function, the manifest key 918 <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a> 919 can ensure that your extension won't be run in an earlier browser version. 920 </p> 921 </div> <!-- /description --> 922 923 </div> <!-- /apiItem --> 924 925 </div> <!-- /apiGroup --> 926 927 <!-- EVENTS --> 928 <div id="eventsTemplate" class="apiGroup"> 929 <a></a> 930 <h3>Events</h3> 931 <!-- iterates over all events --> 932 <div class="apiItem"> 933 <a></a> 934 <h4>event name</h4> 935 936 <div class="summary"> 937 <!-- Note: intentionally longer 80 columns --> 938 <span class="subdued">chrome.bookmarks</span><span>onEvent</span><span class="subdued">.addListener</span>(function(<span>Type param1, Type param2</span>) <span class="subdued">{...}</span>); 939 </div> 940 941 <div class="description"> 942 <p class="todo">Undocumented.</p> 943 <p> 944 A description from the json schema def of the event goes here. 945 </p> 946 947 <!-- PARAMETERS --> 948 <div> 949 <h4>Parameters</h4> 950 <dl> 951 <div> 952 <div> 953 </div> 954 </div> 955 </dl> 956 </div> 957 </div> <!-- /decription --> 958 959 </div> <!-- /apiItem --> 960 961 </div> <!-- /apiGroup --> 962 963 <!-- TYPES --> 964 <div class="apiGroup"> 965 <a name="types"></a> 966 <h3 id="types">Types</h3> 967 968 <!-- iterates over all types --> 969 <div class="apiItem"> 970 <a></a> 971 <h4>type name</h4> 972 973 <div> 974 </div> 975 976 </div> <!-- /apiItem --> 977 978 </div> <!-- /apiGroup --> 979 980 </div> <!-- /apiPage --> 981 </div> <!-- /gc-pagecontent --> 982 </div> <!-- /g-section --> 983 </div> <!-- /codesiteContent --> 984 <div id="gc-footer" --=""> 985 <div class="text"> 986 <p> 987 Except as otherwise <a href="http://code.google.com/policies.html#restrictions">noted</a>, 988 the content of this page is licensed under the <a rel="license" href="http://creativecommons.org/licenses/by/3.0/">Creative Commons 989 Attribution 3.0 License</a>, and code samples are licensed under the 990 <a rel="license" href="http://code.google.com/google_bsd_license.html">BSD License</a>. 991 </p> 992 <p> 993 2011 Google 994 </p> 995 996 <!-- begin analytics --> 997 <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script> 998 <script src="http://www.google-analytics.com/ga.js" type="text/javascript"></script> 999 1000 <script type="text/javascript"> 1001 // chrome doc tracking 1002 try { 1003 var engdocs = _gat._getTracker("YT-10763712-2"); 1004 engdocs._trackPageview(); 1005 } catch(err) {} 1006 1007 // code.google.com site-wide tracking 1008 try { 1009 _uacct="UA-18071-1"; 1010 _uanchor=1; 1011 _uff=0; 1012 urchinTracker(); 1013 } 1014 catch(e) {/* urchinTracker not available. */} 1015 </script> 1016 <!-- end analytics --> 1017 </div> 1018 </div> <!-- /gc-footer --> 1019 </div> <!-- /gc-container --> 1020 </body></html> 1021