• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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&amp;t13n_langs=en"></script>
136          <script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse&amp;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>
346Every extension, installable web app, and theme has a
347<a href="http://www.json.org">JSON</a>-formatted manifest file,
348named <code>manifest.json</code>,
349that provides important information.
350</p>
351
352<h2 id="overview"> Field summary </h2>
353
354<p>
355The following code shows the supported manifest fields,
356with links to the page that discusses each field.
357The only fields that are always required
358are <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>
397This section covers fields that aren't described in another page.
398For a complete list of fields,
399with links to where they're described in detail,
400see the <a href="#overview">Field summary</a>.
401</p>
402
403
404<h3 id="app">app</h3>
405
406<p>
407Used by installable web apps,
408including packaged apps,
409to specify the URLs that the app uses.
410Most important is the <em>launch page</em> for the app—the
411page that the browser goes to when the user clicks the app's icon
412in the New Tab page.
413</p>
414
415<p>
416For 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>
424Specifies the subdirectory of <code>_locales</code>
425that contains the default strings for this extension.
426This field is <b>required</b> in extensions
427that have a <code>_locales</code> directory;
428it <b>must be absent</b> in extensions
429that have no <code>_locales</code> directory.
430For details, see
431<a href="i18n.html">Internationalization</a>.
432</p>
433
434<h3 id="description">description</h3>
435
436<p>
437A plain text string
438(no HTML or other formatting;
439no more than 132 characters)
440that describes the extension.
441The description should be suitable for both
442the browser's extension management UI
443and the <a href="https://chrome.google.com/webstore">Chrome Web Store</a>.
444You can specify locale-specific strings for this field;
445see <a href="i18n.html">Internationalization</a> for details.
446</p>
447
448<h3 id="homepage_url">homepage_url</h3>
449
450<p>
451The URL of the homepage for this extension. The extensions management page (chrome://extensions)
452will 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
454extension using the <a href="https://chrome.google.com/extensions">Extensions Gallery</a> or <a href="https://chrome.google.com/webstore">Chrome Web Store</a>,
455the homepage URL defaults to the extension's own page.
456</p>
457
458<h3 id="icons">icons</h3>
459
460<p>
461One or more icons that represent the extension, app, or theme.
462You should always provide a 128x128 icon;
463it's used during installation and by the Chrome Web Store.
464Extensions should also provide a 48x48 icon,
465which is used in the extensions management page
466(chrome://extensions).
467You can also specify a 16x16 icon to be used as the favicon
468for an extension's pages.
469The 16x16 icon is also displayed in the experimental extension
470<a href="experimental.infobars.html">infobar</a>
471feature.
472</p>
473
474<p>
475Icons should generally be in PNG format,
476because PNG has the best support for transparency.
477They can, however, be in any format supported by WebKit,
478including BMP, GIF, ICO, and JPEG.
479Here'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>
489Use only the documented icon sizes.
490<br><br>
491You might notice that Chrome sometimes resizes these icons down to smaller
492sizes. For example, the install dialog might shrink the 128-pixel
493icon down to 69 pixels.
494<br><br>
495However, the details of
496Chrome's UI may change between versions, and these changes assume that
497developers are using the documented sizes. If you use other sizes,
498your icon may look bad in future versions of the browser.
499</p>
500
501<p>
502If you upload your extension, app, or theme using the
503<a href="https://chrome.google.com/webstore/developer/dashboard">Chrome Developer Dashboard</a>,
504you'll need to upload additional images,
505including at least one screenshot of your extension.
506For more information,
507see the
508<a href="http://code.google.com/chrome/webstore/">Chrome Web Store
509developer documentation</a>.
510</p>
511
512<h3 id="incognito">incognito</h3>
513
514<p>
515Either "spanning" or "split", to specify how this extension will
516behave if allowed to run in incognito mode.
517</p>
518
519<p>
520The default for extensions is "spanning", which means that the extension
521will run in a single shared process.  Any events or messages from an incognito
522tab will be sent to the shared process, with an <em>incognito</em> flag
523indicating where it came from.
524</p>
525
526<p>
527The default for installable web apps is "split",
528which means that all app pages in
529an 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.
530This incognito process runs along side the regular process, but has a separate
531memory-only cookie store. Each process sees events and messages only from its
532own context (for example, the incognito process will see only incognito tab updates).
533The processes are unable to communicate with each other.
534</p>
535
536<p>
537As 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
539into a remote server or persist settings locally, use <em>spanning</em>
540incognito behavior.
541</p>
542
543<h3 id="key">key</h3>
544
545<p>
546This value can be used to control
547the unique ID of an extension, app, or theme when
548it is loaded during development.
549</p>
550
551<p class="note">
552<b>Note:</b> You don't usually need to
553use this value. Instead, write your
554code so that the key value doesn't matter
555by using <a href="overview.html#relative-urls">relative paths</a>
556and <a href="extension.html#method-getURL">chrome.extension.getURL()</a>.
557</p>
558
559<p>
560To get a suitable key value, first
561install 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>
564or <a href="packaging.html">package it manually</a>).
565Then, in your
566<a href="http://www.chromium.org/user-experience/user-data-directory">user
567data directory</a>, look in the file
568<code>Default/Extensions/<em>&lt;extensionId&gt;</em>/<em>&lt;versionString&gt;</em>/manifest.json</code>.
569You will see the key value filled in there.
570</p>
571
572<h3 id="minimum_chrome_version">minimum_chrome_version</h3>
573
574<p>
575The version of Chrome that your extension, app, or theme requires, if any.
576The 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>
582A short, plain text string
583(no more than 45 characters)
584that identifies the extension.
585The name is used in the install dialog,
586extension management UI,
587and the <a href="https://chrome.google.com/webstore">store</a>.
588You can specify locale-specific strings for this field;
589see <a href="i18n.html">Internationalization</a> for details.
590</p>
591
592<h3 id="permissions">permissions</h3>
593
594<p>
595An array of permissions that the extension or app might use.
596Each permission can be either one of a list of known strings
597(such as "geolocation")
598or a match pattern
599that gives access to one or more hosts.
600Permissions can help to limit damage
601if your extension or app is attacked.
602Some permissions are also displayed to users before installation,
603as detailed in
604<a href="permission_warnings.html">Permission Warnings</a>.
605</p>
606
607<p>
608If an extension API requires you to declare a permission in the manifest,
609then its documentation tells you how to do so.
610For example,
611the <a href="tabs.html">Tabs</a> page
612shows you how to
613declare the "tabs" permission.
614</p>
615
616<p>
617Here's an example of the permissions part of a manifest file
618for 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>
631The following table lists the permissions an extension
632or packaged app can use.
633</p>
634
635<p class="note">
636<strong>Note:</strong>
637Hosted apps can use the
638"background", "geolocation", "notifications", and "unlimitedStorage" permissions,
639but 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 computer—before
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>
779One to four dot-separated integers
780identifying the version of this extension.
781A couple of rules apply to the integers:
782they must be between 0 and 65535, inclusive,
783and non-zero integers can't start with 0.
784For example, 99999 and 032 are both invalid.
785</p>
786
787<p>
788Here 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>
799The autoupdate system compares versions
800to determine whether an installed extension
801needs to be updated.
802If the published extension has a newer version string
803than the installed extension,
804then the extension is automatically updated.
805</p>
806
807<p>
808The comparison starts with the leftmost integers.
809If those integers are equal,
810the integers to the right are compared,
811and so on.
812For example, 1.2.0 is a newer version than 1.1.9.9999.
813</p>
814
815<p>
816A missing integer is equal to zero.
817For example, 1.1.9.9999 is newer than 1.1.
818</p>
819
820<p>
821For 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