Home | History | Annotate | Download | only in docs
      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>&lt;extensionId&gt;</em>/<em>&lt;versionString&gt;</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>&lt;img src="chrome://favicon/http://www.google.com/"&gt;</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