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