• 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>Permission Warnings - 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><a href="manifest.html">Manifest Files</a></li>
229                  <li><a href="match_patterns.html">Match Patterns</a></li>
230                </ul>
231              </li>
232              <li class="leftNavSelected">Permission Warnings</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">Permission Warnings</h1>
255      </div>
256        <!-- TABLE OF CONTENTS -->
257        <div id="toc">
258          <h2>Contents</h2>
259          <ol>
260            <li>
261              <a href="#examples"> Examples of permission warnings </a>
262              <ol>
263                <li style="display: none; ">
264                  <a>h3Name</a>
265                </li>
266              </ol>
267            </li><li>
268              <a href="#warnings"> Warnings and their triggers </a>
269              <ol>
270                <li style="display: none; ">
271                  <a>h3Name</a>
272                </li>
273              </ol>
274            </li><li>
275              <a href="#nowarning"> Permissions that don't cause warnings </a>
276              <ol>
277                <li style="display: none; ">
278                  <a>h3Name</a>
279                </li>
280              </ol>
281            </li><li>
282              <a href="#test"> Testing permission warnings </a>
283              <ol>
284                <li style="display: none; ">
285                  <a>h3Name</a>
286                </li>
287              </ol>
288            </li>
289              <li style="display: none; ">
290                <a href="#apiReference">API reference</a>
291                <ol>
292                  <li>
293                    <a href="#properties">Properties</a>
294                    <ol>
295                      <li>
296                        <a href="#property-anchor">propertyName</a>
297                      </li>
298                    </ol>
299                  </li>
300                  <li>
301                    <a>Methods</a>
302                    <ol>
303                      <li>
304                        <a href="#method-anchor">methodName</a>
305                      </li>
306                    </ol>
307                  </li>
308                  <li>
309                    <a>Events</a>
310                    <ol>
311                      <li>
312                        <a href="#event-anchor">eventName</a>
313                      </li>
314                    </ol>
315                  </li>
316                  <li>
317                    <a href="#types">Types</a>
318                    <ol>
319                      <li>
320                        <a href="#id-anchor">id</a>
321                      </li>
322                    </ol>
323                  </li>
324                </ol>
325              </li>
326          </ol>
327        </div>
328        <!-- /TABLE OF CONTENTS -->
329
330        <!-- Standard content lead-in for experimental API pages -->
331        <p id="classSummary" style="display: none; ">
332          For information on how to use experimental APIs, see the <a href="experimental.html">chrome.experimental.* APIs</a> page.
333        </p>
334
335        <!-- STATIC CONTENT PLACEHOLDER -->
336        <div id="static"><div id="pageData-name" class="pageData">Permission Warnings</div>
337<div id="pageData-showTOC" class="pageData">true</div>
338
339<!--
340NOTE: When this doc is updated, the online help should also be updated:
341http://www.google.com/support/chrome_webstore/bin/answer.py?hl=en&answer=186213
342
343We should periodically look at
344http://src.chromium.org/viewvc/chrome/trunk/src/chrome/app/generated_resources.grd?view=markup
345to make sure that we're covering all messages. Search for
346IDS_EXTENSION_PROMPT_WARNING
347(e.g. IDS_EXTENSION_PROMPT_WARNING_BROWSING_HISTORY).
348-->
349
350<p>
351To use most chrome.* APIs and extension capabilities,
352your extension must declare its intent in the
353<a href="manifest.html">manifest</a>,
354often in the "permissions" field.
355Some of these declarations
356result in a warning when
357a user installs your extension.
358</p>
359
360<p>
361When you autoupdate your extension,
362the user might see another warning
363if the extension requests new permissions.
364These new permissions might be new APIs that your extension uses,
365or they might be new websites
366that your extension needs access to.
367</p>
368
369
370<h2 id="examples"> Examples of permission warnings </h2>
371
372<p>
373Here's a typical dialog
374that a user might see when installing an extension:
375</p>
376
377<img src="images/perms-hw1.png" width="410" height="193" alt="Permission warning: 'It can access: Your data on api.flickr.com'">
378
379<p>
380The warning about access to data on api.flickr.com
381is caused by the following lines
382in the extension's manifest:
383</p>
384
385<pre>"permissions": [
386  <b>"http://api.flickr.com/"</b>
387],
388</pre>
389
390<p class="note">
391<b>Note:</b>
392You don't see permission warnings when
393you load an unpacked extension.
394You get permission warnings only when you install an extension
395from a <code>.crx</code> file.
396</p>
397
398<p>
399If you add a permission to the extension when you autoupdate it,
400the user might see a new permission warning.
401For example,
402assume you add a new site and the "tabs" permission
403to the previous example:
404</p>
405
406<pre>"permissions": [
407  "http://api.flickr.com/",
408  <b>"http://*.flickr.com/",
409  "tabs"</b>
410],
411</pre>
412
413<p>
414When the extension autoupdates,
415the increased permissions
416cause the extension to be disabled
417until the user re-enables it.
418Here's the warning the user sees:
419</p>
420
421<img src="images/perms-hw2-disabled.png" width="814" height="30" alt="Warning text: 'The newest version of the extension Hello World requires more permissions, so it has been disabled. [Re-enable].'">
422
423<p>
424Clicking the Re-enable button
425brings up the following warning:
426</p>
427
428<img src="images/perms-hw2.png" width="412" height="220" alt="Permission warning: 'It can access: Your data on api.flickr.com and flickr.com; Your browsing history'">
429
430
431<h2 id="warnings"> Warnings and their triggers </h2>
432
433<p>
434It can be surprising when adding a permission such as "tabs"
435results in the seemingly unrelated warning
436that the extension can access your browsing activity.
437The reason for the warning is that
438although the <code>chrome.tabs</code> API
439might be used only to open new tabs,
440it can also be used to see the URL that's associated
441with every newly opened tab
442(using their <a href="tabs.html#type-Tab">Tab</a> objects).
443</p>
444
445<p class="note">
446<b>Note:</b>
447As of Google Chrome 7,
448you no longer need to specify the "tabs" permission
449just to call <code>chrome.tabs.create()</code>
450or <code>chrome.tabs.update()</code>.
451</p>
452
453<p>
454The following table lists the warning messages
455that users can see,
456along with the manifest entries
457that trigger them.
458</p>
459
460<p>
461</p><table>
462<tbody><tr>
463  <th>Warning&nbsp;message</th> <th>Manifest&nbsp;entry&nbsp;that&nbsp;causes&nbsp;it</th> <th>Notes</th>
464</tr>
465
466<tr>
467  <td style="font-weight:bold">
468    <!-- IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS -->
469    All data on your computer and the websites you visit
470  </td>
471  <td>
472    "plugins"
473  </td>
474  <td>
475    The "plugins" permission is required by
476    <a href="npapi.html">NPAPI plugins</a>.
477  </td>
478</tr>
479
480<tr>
481  <td style="font-weight:bold">
482    <!-- IDS_EXTENSION_PROMPT_WARNING_BOOKMARKS -->
483    Your bookmarks
484  </td>
485  <td>
486    "bookmarks" permission
487  </td>
488  <td>
489    The "bookmarks" permission is required by the
490    <a href="bookmarks.html"><code>chrome.bookmarks</code></a> module.
491  </td>
492</tr>
493
494<tr>
495  <td style="font-weight:bold">
496    <!-- IDS_EXTENSION_PROMPT_WARNING_BROWSING_HISTORY -->
497    Your browsing history
498  </td>
499  <td>
500    <!-- HasEffectiveBrowsingHistoryPermission -->
501     "history" permission
502  </td>
503  <td>
504    <p>
505      The "history" permission is required by
506      <a href="history.html"><code>chrome.history</code></a>.
507    </p>
508  </td>
509</tr>
510
511<tr>
512  <td style="font-weight:bold">
513    <!-- IDS_EXTENSION_PROMPT_WARNING_TABS -->
514    Your tabs and browsing activity
515  </td>
516  <td>
517    <!-- HasEffectiveBrowsingHistoryPermission -->
518     "tabs" permission
519  </td>
520  <td>
521    <p>
522      The "tabs" permission is required by the
523      <a href="tabs.html"><code>chrome.tabs</code></a> and
524      <a href="windows.html"><code>chrome.windows</code></a> modules.
525    </p>
526  </td>
527</tr>
528
529<tr>
530  <td style="font-weight:bold">
531    <!-- IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS -->
532    Your data on all websites
533  </td>
534  <td>
535    <!-- HasEffectiveAccessToAllHosts() -->
536    Any of the following:
537    <ul>
538      <li> "proxy" permission </li>
539      <li> "debugger" permission </li>
540      <li> A match pattern in the "permissions" field
541        that matches all hosts </li>
542      <li> A&nbsp;"content_scripts" field with a "matches" entry
543        that matches all hosts </li>
544      <li> "devtools_page" (experimental) </li>
545    </ul>
546  </td>
547  <td>
548    <p>
549      The "proxy" permission is required by the
550      <a href="experimental.proxy.html">experimental proxy</a> module.
551    </p>
552
553    <p>
554      The "debugger" permission is required by the
555      <a href="experimental.debugger.html">experimental debugger</a> module.
556    </p>
557
558    <p>
559      Any of the following URLs match all hosts:
560    </p>
561    <ul>
562      <li> <code>http://*/*</code> </li>
563      <li> <code>https://*/*</code> </li>
564      <li> <code>*://*/*</code> </li>
565      <li> <code>&lt;all_urls&gt;</code> </li>
566    </ul>
567  </td>
568</tr>
569<tr>
570  <td style="font-weight:bold">
571    <!-- IDS_EXTENSION_PROMPT_WARNING_?_HOST -->
572    <!-- IDS_EXTENSION_PROMPT_WARNING_4_OR_MORE_HOSTS -->
573    Your data on <em>{list of websites}</em>
574  </td>
575  <td>
576    A match pattern in the "permissions" field
577    that specifies one or more hosts,
578    but not all hosts
579  </td>
580  <td>
581    <p>
582    Up to 3 sites are listed by name.
583    Subdomains aren't treated specially.
584    For example, <code>a.com</code> and <code>b.a.com</code>
585    are listed as different sites.
586    </p>
587
588    <p>
589    On autoupdate,
590    the user sees a permission warning
591    if the extension adds or changes sites.
592    For example, going from <code>a.com,b.com</code>
593    to <code>a.com,b.com,c.com</code>
594    triggers a warning.
595    Going from <code>b.a.com</code>
596    to <code>a.com</code>,
597    or vice versa,
598    also triggers a warning.
599    </p>
600  </td>
601</tr>
602
603<tr>
604  <td style="font-weight:bold">
605    <!-- IDS_EXTENSION_PROMPT_WARNING_MANAGEMENT -->
606    Your list of installed apps, extensions, and themes
607    <br>
608    <span style="font-weight:normal; font-style:italic">or</span>
609    <br>
610    Manage themes, extensions, and apps
611
612    <!-- PENDING: remove "Manage...apps" alternative message
613    once the fix is out on stable channel -->
614    <!-- See http://crbug.com/67859 -->
615  </td>
616  <td>
617    "management" permission
618  </td>
619  <td>
620    The "management" permission is required by the
621    <a href="management.html"><code>chrome.management</code></a> module.
622  </td>
623</tr>
624
625<tr>
626  <td style="font-weight:bold">
627    <!-- IDS_EXTENSION_PROMPT_WARNING_GEOLOCATION -->
628    Your physical location
629  </td>
630  <td>
631    "geolocation" permission
632  </td>
633  <td>
634    Allows the extension to use the proposed HTML5
635    <a href="http://dev.w3.org/geo/api/spec-source.html">geolocation API</a>
636    without prompting the user for permission.
637  </td>
638</tr>
639</tbody></table>
640<p></p>
641
642
643<h2 id="nowarning"> Permissions that don't cause warnings </h2>
644
645<p>
646The following permissions don't result in a warning:
647</p>
648
649<ul>
650  <li>"chrome://favicon/"</li>
651  <li>"contextMenus"</li>
652  <li>"cookies"</li>
653  <li>"experimental"</li>
654  <li>"idle"</li>
655  <li>"notifications"</li>
656  <li>"unlimitedStorage"</li>
657</ul>
658
659<h2 id="test"> Testing permission warnings </h2>
660
661<p>
662If you'd like to see exactly which warnings your users will get,
663<a href="packaging.html">package your extension</a>
664into a <code>.crx</code> file,
665and install it.
666</p>
667
668<p>
669To see the warnings users will get when your extension is autoupdated,
670you can go to a little more trouble
671and set up an autoupdate server.
672To do this, first create an update manifest
673and point to it from your extension,
674using the "update_url" key
675(see <a href="autoupdate.html">Autoupdating</a>).
676Next, <a href="packaging.html">package the extension</a>
677into a new <code>.crx</code> file,
678and install the app from this <code>.crx</code> file.
679Now, change the extension's manifest to contain the new permissions,
680and <a href="packaging.html#update">repackage the extension</a>.
681Finally, update the extension
682(and all other extensions that have outstanding updates)
683by clicking the <b>chrome://extensions</b> page's
684<b>Update extensions now</b> button.
685</p>
686</div>
687
688        <!-- API PAGE -->
689        <div class="apiPage" style="display: none; ">
690        <a name="apiReference"></a>
691        <h2>API reference: chrome.apiname </h2>
692
693          <!-- PROPERTIES -->
694          <div class="apiGroup">
695            <a name="properties"></a>
696            <h3 id="properties">Properties</h3>
697
698            <div>
699              <a></a>
700              <h4>getLastError</h4>
701              <div class="summary">
702                <!-- Note: intentionally longer 80 columns -->
703                <span>chrome.extension</span><span>lastError</span>
704              </div>
705              <div>
706              </div>
707            </div>
708
709          </div> <!-- /apiGroup -->
710
711          <!-- METHODS -->
712          <div id="methodsTemplate" class="apiGroup">
713            <a></a>
714            <h3>Methods</h3>
715
716            <!-- iterates over all functions -->
717            <div class="apiItem">
718              <a></a> <!-- method-anchor -->
719              <h4>method name</h4>
720
721              <div class="summary"><span>void</span>
722                  <!-- Note: intentionally longer 80 columns -->
723                  <span>chrome.module.methodName</span>(<span><span>, </span><span></span>
724                      <var><span></span></var></span>)</div>
725
726              <div class="description">
727                <p class="todo">Undocumented.</p>
728                <p>
729                  A description from the json schema def of the function goes here.
730                </p>
731
732                <!-- PARAMETERS -->
733                <h4>Parameters</h4>
734                <dl>
735                  <div>
736                    <div>
737                    </div>
738                  </div>
739                </dl>
740
741                <!-- RETURNS -->
742                <h4>Returns</h4>
743                <dl>
744                  <div>
745                    <div>
746                    </div>
747                  </div>
748                </dl>
749
750                <!-- CALLBACK -->
751                <div>
752                  <div>
753                  <h4>Callback function</h4>
754                  <p>
755                    The callback <em>parameter</em> should specify a function
756                    that looks like this:
757                  </p>
758                  <p>
759                    If you specify the <em>callback</em> parameter, it should
760                    specify a function that looks like this:
761                  </p>
762
763                  <!-- Note: intentionally longer 80 columns -->
764                  <pre>function(<span>Type param1, Type param2</span>) <span class="subdued">{...}</span>;</pre>
765                  <dl>
766                    <div>
767                      <div>
768                      </div>
769                    </div>
770                  </dl>
771                  </div>
772                </div>
773
774                <!-- MIN_VERSION -->
775                <p>
776                  This function was added in version <b><span></span></b>.
777                  If you require this function, the manifest key
778                  <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
779                  can ensure that your extension won't be run in an earlier browser version.
780                </p>
781              </div> <!-- /description -->
782
783            </div>  <!-- /apiItem -->
784
785          </div>  <!-- /apiGroup -->
786
787          <!-- EVENTS -->
788          <div id="eventsTemplate" class="apiGroup">
789            <a></a>
790            <h3>Events</h3>
791            <!-- iterates over all events -->
792            <div class="apiItem">
793              <a></a>
794              <h4>event name</h4>
795
796              <div class="summary">
797                <!-- Note: intentionally longer 80 columns -->
798                <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>);
799              </div>
800
801              <div class="description">
802                <p class="todo">Undocumented.</p>
803                <p>
804                  A description from the json schema def of the event goes here.
805                </p>
806
807                <!-- PARAMETERS -->
808                <div>
809                  <h4>Parameters</h4>
810                  <dl>
811                    <div>
812                      <div>
813                      </div>
814                    </div>
815                  </dl>
816                </div>
817              </div> <!-- /decription -->
818
819            </div> <!-- /apiItem -->
820
821          </div> <!-- /apiGroup -->
822
823          <!-- TYPES -->
824          <div class="apiGroup">
825            <a name="types"></a>
826            <h3 id="types">Types</h3>
827
828            <!-- iterates over all types -->
829            <div class="apiItem">
830              <a></a>
831              <h4>type name</h4>
832
833              <div>
834              </div>
835
836            </div> <!-- /apiItem -->
837
838          </div> <!-- /apiGroup -->
839
840        </div> <!-- /apiPage -->
841      </div> <!-- /gc-pagecontent -->
842    </div> <!-- /g-section -->
843  </div> <!-- /codesiteContent -->
844    <div id="gc-footer" --="">
845      <div class="text">
846  <p>
847  Except as otherwise <a href="http://code.google.com/policies.html#restrictions">noted</a>,
848  the content of this page is licensed under the <a rel="license" href="http://creativecommons.org/licenses/by/3.0/">Creative Commons
849  Attribution 3.0 License</a>, and code samples are licensed under the
850  <a rel="license" href="http://code.google.com/google_bsd_license.html">BSD License</a>.
851  </p>
852  <p>
853  ©2011 Google
854  </p>
855
856<!-- begin analytics -->
857<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
858<script src="http://www.google-analytics.com/ga.js" type="text/javascript"></script>
859
860<script type="text/javascript">
861  // chrome doc tracking
862  try {
863    var engdocs = _gat._getTracker("YT-10763712-2");
864    engdocs._trackPageview();
865  } catch(err) {}
866
867  // code.google.com site-wide tracking
868  try {
869    _uacct="UA-18071-1";
870    _uanchor=1;
871    _uff=0;
872    urchinTracker();
873  }
874  catch(e) {/* urchinTracker not available. */}
875</script>
876<!-- end analytics -->
877      </div>
878    </div> <!-- /gc-footer -->
879  </div> <!-- /gc-container -->
880</body></html>
881