permission_warnings.html revision 4a5e2dc747d50c653511c68ccb2cfbfb740bd5a7
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          <!-- 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<<<<<<< HEAD
99          </dl>         
100=======
101          </dl>
102>>>>>>> chromium.org at r66597
103        </div>
104      </div> <!-- /SUBTEMPLATES -->
105
106  <a id="top"></a>
107    <div id="skipto">
108      <a href="#gc-pagecontent">Skip to page content</a>
109      <a href="#gc-toc">Skip to main navigation</a>
110    </div>
111    <!-- API HEADER -->
112    <table id="header" width="100%" cellspacing="0" border="0">
113      <tbody><tr>
114        <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>
115        <td valign="middle" width="100%" style="padding-left:0.6em;">
116          <form action="http://www.google.com/cse" id="cse" style="margin-top:0.5em">
117            <div id="gsc-search-box">
118              <input type="hidden" name="cx" value="002967670403910741006:61_cvzfqtno">
119              <input type="hidden" name="ie" value="UTF-8">
120              <input type="text" name="q" value="" size="55">
121              <input class="gsc-search-button" type="submit" name="sa" value="Search">
122              <br>
123              <span class="greytext">e.g. "page action" or "tabs"</span>
124            </div>
125          </form>
126
127          <script type="text/javascript" src="http://www.google.com/jsapi"></script>
128          <script type="text/javascript">google.load("elements", "1", {packages: "transliteration"});</script>
129          <script type="text/javascript" src="http://www.google.com/coop/cse/t13n?form=cse&t13n_langs=en"></script>
130          <script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse&lang=en"></script>
131        </td>
132      </tr>
133    </tbody></table>
134
135    <div id="codesiteContent" class="">
136
137      <a id="gc-topnav-anchor"></a>
138      <div id="gc-topnav">
139        <h1>Google Chrome Extensions (<a href="http://code.google.com/labs/">Labs</a>)</h1>
140        <ul id="home" class="gc-topnav-tabs">
141          <li id="home_link">
142            <a href="index.html" title="Google Chrome Extensions home page">Home</a>
143          </li>
144          <li id="docs_link">
145            <a href="docs.html" title="Official Google Chrome Extensions documentation">Docs</a>
146          </li>
147          <li id="faq_link">
148            <a href="faq.html" title="Answers to frequently asked questions about Google Chrome Extensions">FAQ</a>
149          </li>
150          <li id="samples_link">
151            <a href="samples.html" title="Sample extensions (with source code)">Samples</a>
152          </li>
153          <li id="group_link">
154            <a href="http://groups.google.com/a/chromium.org/group/chromium-extensions" title="Google Chrome Extensions developer forum">Group</a>
155          </li>
156        </ul>
157      </div> <!-- end gc-topnav -->
158
159    <div class="g-section g-tpl-170">
160      <!-- SIDENAV -->
161      <div class="g-unit g-first" id="gc-toc">
162        <ul>
163          <li><a href="getstarted.html">Getting Started</a></li>
164          <li><a href="overview.html">Overview</a></li>
165          <li><a href="whats_new.html">What's New?</a></li>
166          <li><h2><a href="devguide.html">Developer's Guide</a></h2>
167            <ul>
168              <li>Browser UI
169                <ul>
170                  <li><a href="browserAction.html">Browser Actions</a></li>
171                  <li><a href="contextMenus.html">Context Menus</a></li>
172                  <li><a href="notifications.html">Desktop Notifications</a></li>
173                  <li><a href="options.html">Options Pages</a></li>
174                  <li><a href="override.html">Override Pages</a></li>
175                  <li><a href="pageAction.html">Page Actions</a></li>
176                  <li><a href="themes.html">Themes</a></li>
177                </ul>
178              </li>
179              <li>Browser Interaction
180                <ul>
181                  <li><a href="bookmarks.html">Bookmarks</a></li>
182                  <li><a href="cookies.html">Cookies</a></li>
183                  <li><a href="events.html">Events</a></li>
184                  <li><a href="history.html">History</a></li>
185                  <li><a href="management.html">Management</a></li>
186                  <li><a href="tabs.html">Tabs</a></li>
187                  <li><a href="windows.html">Windows</a></li>
188                </ul>
189              </li>
190              <li>Implementation
191                <ul>
192                  <li><a href="a11y.html">Accessibility</a></li>
193                  <li><a href="background_pages.html">Background Pages</a></li>
194                  <li><a href="content_scripts.html">Content Scripts</a></li>
195                  <li><a href="xhr.html">Cross-Origin XHR</a></li>
196                  <li><a href="idle.html">Idle</a></li>
197                  <li><a href="i18n.html">Internationalization</a></li>
198                  <li><a href="messaging.html">Message Passing</a></li>
199                  <li><a href="npapi.html">NPAPI Plugins</a></li>
200                </ul>
201              </li>
202              <li>Finishing
203                <ul>
204                  <li><a href="hosting.html">Hosting</a></li>
205                  <li><a href="external_extensions.html">Other Deployment Options</a></li>
206                </ul>
207              </li>
208            </ul>
209          </li>
210          <li><h2><a href="tutorials.html">Tutorials</a></h2>
211            <ul>
212              <li><a href="tut_debugging.html">Debugging</a></li>
213              <li><a href="tut_analytics.html">Google Analytics</a></li>
214              <li><a href="tut_oauth.html">OAuth</a></li>
215            </ul>
216          </li>
217          <li><h2>Reference</h2>
218            <ul>
219              <li>Formats
220                <ul>
221                  <li><a href="manifest.html">Manifest Files</a></li>
222                  <li><a href="match_patterns.html">Match Patterns</a></li>
223                  <!-- <li>Packages (.crx)</li> -->
224                </ul>
225              </li>
226              <li><a href="api_index.html">chrome.* APIs</a></li>
227              <li><a href="api_other.html">Other APIs</a></li>
228            </ul>
229          </li>
230          <li><h2><a href="samples.html">Samples</a></h2></li>
231          <div class="line"> </div>
232          <li><h2>More</h2>
233            <ul>
234              <li><a href="http://code.google.com/chrome/webstore/docs/index.html">Chrome Web Store</a></li>
235              <li><a href="http://code.google.com/chrome/apps/docs/developers_guide.html">Installable Web Apps</a></li>
236              <li><a href="themes.html">Themes</a></li>
237            </ul>
238          </li>
239        </ul>
240      </div>
241      <script>
242        initToggles();
243      </script>
244
245    <div class="g-unit" id="gc-pagecontent">
246      <div id="pageTitle">
247        <h1 class="page_title">Permission Warnings</h1>
248      </div>
249        <!-- TABLE OF CONTENTS -->
250        <div id="toc">
251          <h2>Contents</h2>
252          <ol>
253            <li>
254              <a href="#examples"> Examples of permission warnings </a>
255              <ol>
256                <li style="display: none; ">
257                  <a>h3Name</a>
258                </li>
259              </ol>
260            </li><li>
261              <a href="#warnings"> Warnings and their triggers </a>
262              <ol>
263                <li style="display: none; ">
264                  <a>h3Name</a>
265                </li>
266              </ol>
267            </li><li>
268              <a href="#nowarning"> Permissions that don't cause warnings </a>
269              <ol>
270                <li style="display: none; ">
271                  <a>h3Name</a>
272                </li>
273              </ol>
274            </li><li>
275              <a href="#test"> Testing permission warnings </a>
276              <ol>
277                <li style="display: none; ">
278                  <a>h3Name</a>
279                </li>
280              </ol>
281            </li>
282              <li style="display: none; ">
283                <a href="#apiReference">API reference</a>
284                <ol>
285                  <li>
286                    <a href="#properties">Properties</a>
287                    <ol>
288                      <li>
289                        <a href="#property-anchor">propertyName</a>
290                      </li>
291                    </ol>
292                  </li>
293                  <li>
294                    <a href="#methods">Methods</a>
295                    <ol>
296                      <li>
297                        <a href="#method-anchor">methodName</a>
298                      </li>
299                    </ol>
300                  </li>
301                  <li>
302                    <a href="#events">Events</a>
303                    <ol>
304                      <li>
305                        <a href="#event-anchor">eventName</a>
306                      </li>
307                    </ol>
308                  </li>
309                  <li>
310                    <a href="#types">Types</a>
311                    <ol>
312                      <li>
313                        <a href="#id-anchor">id</a>
314                      </li>
315                    </ol>
316                  </li>
317                </ol>
318              </li>
319          </ol>
320        </div>
321        <!-- /TABLE OF CONTENTS -->
322
323        <!-- Standard content lead-in for experimental API pages -->
324        <p id="classSummary" style="display: none; ">
325          For information on how to use experimental APIs, see the <a href="experimental.html">chrome.experimental.* APIs</a> page.
326        </p>
327
328        <!-- STATIC CONTENT PLACEHOLDER -->
329        <div id="static"><div id="pageData-name" class="pageData">Permission Warnings</div>
330<div id="pageData-showTOC" class="pageData">true</div>
331
332<p>
333To use most chrome.* APIs and extension capabilities,
334your extension must declare its intent in the manifest,
335often in the "permissions" field.
336Some of these declarations
337result in a warning when
338a user installs your extension.
339</p>
340
341<p>
342When you autoupdate your extension,
343the user might see another warning
344if the extension requests new permissions.
345These new permissions might be new APIs that your extension uses,
346or they might be new websites
347that your extension needs access to.
348</p>
349
350
351<h2 id="examples"> Examples of permission warnings </h2>
352
353<p>
354Here's a typical dialog
355that a user might see when installing an extension:
356</p>
357
358<img src="images/perms-hw1.png" width="387" height="162" alt="Permission warning: 'This extension can access: Your data on api.flickr.com'">
359
360<p>
361The warning about access to data on api.flickr.com
362is caused by the following lines
363in the extension's manifest:
364</p>
365
366<pre>"permissions": [
367  <b>"http://api.flickr.com/"</b>
368],
369</pre>
370
371<p class="note">
372<b>Note:</b>
373You don't see permission warnings when
374you load an unpacked extension.
375You get permission warnings only when you install an extension
376from a <code>.crx</code> file.
377</p>
378
379<p>
380If you add a permission to the extension when you autoupdate it,
381the user might see a new permission warning.
382For example,
383assume you add a new site and the "tabs" permission 
384to the previous example:
385</p>
386
387<pre>"permissions": [
388  "http://api.flickr.com/",
389  <b>"http://*.flickr.com/",
390  "tabs"</b>
391],
392</pre>
393
394<p>
395When the extension autoupdates,
396the increased permissions
397cause the extension to be disabled
398until the user re-enables it.
399Here's the warning the user sees:
400</p>
401
402<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].'">
403
404<p>
405Clicking the Re-enable button
406brings up the following warning:
407</p>
408
409<img src="images/perms-hw2.png" width="387" height="190" alt="Permission warning: 'This extension can access: Your data on api.flickr.com and flickr.com; Your browsing history'">
410
411
412<h2 id="warnings"> Warnings and their triggers </h2>
413
414<p>
415It can be surprising when adding a permission such as "tabs"
416results in the seemingly unrelated warning
417that the extension can access your browsing history.
418The reason for the warning is that
419although the <code>chrome.tabs</code> API
420might be used only to open new tabs
421(<a href="tabs.html#method-create"><code>chrome.tabs.create()</code></a>),
422it can also be used to see the URL that's associated
423with every newly opened tab
424(using their <a href="tabs.html#type-Tab">Tab</a> objects).
425</p>
426
427<p class="note">
428<b>Note:</b>
429As of Google Chrome 7,
430you no longer need to specify the "tabs" permission
431just to call <code>chrome.tabs.create()</code>.
432</p>
433
434<p>
435The following table lists the warning messages
436that users can see,
437along with the <a href="manifest.html">manifest</a> entries
438that trigger them.
439</p>
440
441<p>
442</p><table>
443<tbody><tr>
444  <th>Warning&nbsp;message</th> <th>Manifest&nbsp;entry&nbsp;that&nbsp;causes&nbsp;it</th> <th>Notes</th>
445</tr>
446
447<tr>
448  <td style="font-weight:bold">
449    <!-- IDS_EXTENSION_PROMPT2_WARNING_FULL_ACCESS -->
450    All data on your computer and the websites you visit
451  </td>
452  <td>
453    "plugins"
454  </td>
455  <td>
456    The "plugins" permission is required by
457    <a href="npapi.html">NPAPI plugins</a>.
458  </td>
459</tr>
460
461<tr>
462  <td style="font-weight:bold">
463    <!-- IDS_EXTENSION_PROMPT2_WARNING_BOOKMARKS -->
464    Your bookmarks
465  </td>
466  <td>
467    "bookmarks" permission
468  </td>
469  <td>
470    The "bookmarks" permission is required by the
471    <a href="bookmarks.html"><code>chrome.bookmarks</code></a> module.
472  </td>
473</tr>
474
475<tr>
476  <td style="font-weight:bold">
477    <!-- IDS_EXTENSION_PROMPT2_WARNING_BROWSING_HISTORY -->
478    Your browsing history
479  </td>
480  <td>
481    <!-- HasEffectiveBrowsingHistoryPermission -->
482     "history" or "tabs" permission
483  </td>
484  <td>
485    <p>
486      The "tabs" permission is required by the
487      <a href="tabs.html"><code>chrome.tabs</code></a> and 
488      <a href="windows.html"><code>chrome.windows</code></a> modules.
489    </p>
490    <p>
491      The "history" permission is required by
492      <a href="history.html"><code>chrome.history</code></a>.
493    </p>
494    <p>
495      Adding "tabs" to an existing extension
496      that already has "history", or vice versa,
497      doesn't cause a warning when the extension is autoupdated.
498    </p>
499  </td>
500</tr>
501
502<tr>
503  <td style="font-weight:bold">
504    <!-- IDS_EXTENSION_PROMPT2_WARNING_ALL_HOSTS -->
505    Your data on all websites
506  </td>
507  <td>
508    <!-- HasEffectiveAccessToAllHosts() -->
509    Any of the following:
510    <ul>
511      <li> "proxy" permission (experimental) </li>
512      <li> A match pattern in the "permissions" field
513        that matches all hosts </li>
514      <li> A&nbsp;"content_scripts" field with a "matches" entry
515        that matches all hosts </li>
516    </ul>
517  </td>
518  <td>
519    <p>
520      The "proxy" permission is required by the
521      <a href="http://code.google.com/chrome/extensions/dev/experimental.proxy.html">experimental proxy</a> module.
522    </p>
523
524    <p>
525      Any of the following URLs match all hosts:
526    </p>
527    <ul>
528      <li> <code>http://*/*</code> </li>
529      <li> <code>https://*/*</code> </li>
530      <li> <code>*://*/*</code> </li>
531      <li> <code>&lt;all_urls&gt;</code> </li>
532    </ul>
533  </td>
534</tr>
535<tr>
536  <td style="font-weight:bold">
537    <!-- IDS_EXTENSION_PROMPT2_WARNING_?_HOST -->
538    <!-- IDS_EXTENSION_PROMPT2_WARNING_4_OR_MORE_HOSTS -->
539    Your data on <em>{list of websites}</em>
540  </td>
541  <td>
542    A match pattern in the "permissions" field
543    that specifies one or more hosts,
544    but not all hosts
545  </td>
546  <td>
547    <p>
548    Up to 3 sites are listed by name.
549    Subdomains aren't treated specially.
550    For example, <code>a.com</code> and <code>b.a.com</code>
551    are listed as different sites.
552    </p>
553
554    <p>
555    On autoupdate,
556    the user sees a permission warning
557    if the extension adds or changes sites.
558    For example, going from <code>a.com,b.com</code>
559    to <code>a.com,b.com,c.com</code>
560    triggers a warning.
561    Going from <code>b.a.com</code>
562    to <code>a.com</code>,
563    or vice versa,
564    also triggers a warning.
565    </p>
566  </td>
567</tr>
568
569<tr>
570  <td style="font-weight:bold">
571    <!-- IDS_EXTENSION_PROMPT2_WARNING_GEOLOCATION -->
572    Your physical location
573  </td>
574  <td>
575    "geolocation" permission
576  </td>
577  <td>
578    Allows the extension to use the proposed HTML5
579    <a href="http://dev.w3.org/geo/api/spec-source.html">geolocation API</a>
580    without prompting the user for permission.
581  </td>
582</tr>
583</tbody></table>
584<p></p>
585
586
587<h2 id="nowarning"> Permissions that don't cause warnings </h2>
588
589<p>
590The following permissions don't result in a warning:
591</p>
592
593<ul>
594  <li>"chrome://favicon/"</li>
595  <li>"contextMenus"</li>
596  <li>"cookies"</li>
597  <li>"experimental"</li>
598  <li>"idle"</li>
599  <li>"notifications"</li>
600  <li>"unlimitedStorage"</li>
601</ul>
602
603<h2 id="test"> Testing permission warnings </h2>
604
605<p>
606If you'd like to see exactly which warnings your users will get,
607<a href="packaging.html">package your extension</a>
608into a <code>.crx</code> file,
609and install it.
610</p>
611
612<p>
613To see the warnings users will get when your extension is autoupdated,
614you can go to a little more trouble
615and set up an autoupdate server.
616To do this, first create an update manifest
617and point to it from your extension,
618using the "update_url" key
619(see <a href="autoupdate.html">Autoupdating</a>).
620Next, <a href="packaging.html">package the extension</a>
621into a new <code>.crx</code> file,
622and install the app from this <code>.crx</code> file.
623Now, change the extension's manifest to contain the new permissions,
624and <a href="packaging.html#update">repackage the extension</a>.
625Finally, update the extension
626(and all other extensions that have outstanding updates)
627by clicking the <b>chrome://extensions</b> page's
628<b>Update extensions now</b> button.
629</p>
630</div>
631
632        <!-- API PAGE -->
633        <div class="apiPage" style="display: none; ">
634        <a name="apiReference"></a>
635        <h2>API reference: chrome.apiname </h2>
636
637          <!-- PROPERTIES -->
638          <div class="apiGroup">
639            <a name="properties"></a>
640            <h3 id="properties">Properties</h3>
641
642            <div>
643              <a></a>
644              <h4>getLastError</h4>
645              <div class="summary">
646                <!-- Note: intentionally longer 80 columns -->
647                <span>chrome.extension</span><span>lastError</span>
648              </div>
649              <div>
650              </div>
651            </div>
652
653          </div> <!-- /apiGroup -->
654
655          <!-- METHODS -->
656          <div class="apiGroup" id="methods">
657            <a name="methods"></a>
658            <h3>Methods</h3>
659
660            <!-- iterates over all functions -->
661            <div class="apiItem">
662              <a></a> <!-- method-anchor -->
663              <h4>method name</h4>
664
665              <div class="summary"><span>void</span>
666                  <!-- Note: intentionally longer 80 columns -->
667                  <span>chrome.module.methodName</span>(<span><span>, </span><span></span>
668                      <var><span></span></var></span>)</div>
669
670              <div class="description">
671                <p class="todo">Undocumented.</p>
672                <p>
673                  A description from the json schema def of the function goes here.
674                </p>
675
676                <!-- PARAMETERS -->
677                <h4>Parameters</h4>
678                <dl>
679                  <div>
680                    <div>
681                    </div>
682                  </div>
683                </dl>
684
685                <!-- RETURNS -->
686                <h4>Returns</h4>
687                <dl>
688                  <div>
689                    <div>
690                    </div>
691                  </div>
692                </dl>
693
694                <!-- CALLBACK -->
695                <div>
696                  <div>
697                  <h4>Callback function</h4>
698                  <p>
699                    The callback <em>parameter</em> should specify a function
700                    that looks like this:
701                  </p>
702                  <p>
703                    If you specify the <em>callback</em> parameter, it should
704                    specify a function that looks like this:
705                  </p>
706
707                  <!-- Note: intentionally longer 80 columns -->
708                  <pre>function(<span>Type param1, Type param2</span>) <span class="subdued">{...}</span>;</pre>
709                  <dl>
710                    <div>
711                      <div>
712                      </div>
713                    </div>
714                  </dl>
715                  </div>
716                </div>
717
718                <!-- MIN_VERSION -->
719                <p>
720                  This function was added in version <b><span></span></b>.
721                  If you require this function, the manifest key
722                  <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
723                  can ensure that your extension won't be run in an earlier browser version.
724                </p>
725              </div> <!-- /description -->
726
727            </div>  <!-- /apiItem -->
728
729          </div>  <!-- /apiGroup -->
730
731          <!-- EVENTS -->
732          <div class="apiGroup">
733            <a name="events"></a>
734            <h3 id="events">Events</h3>
735
736            <!-- iterates over all events -->
737            <div class="apiItem">
738              <a></a>
739              <h4>event name</h4>
740
741              <div class="summary">
742                <!-- Note: intentionally longer 80 columns -->
743                <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>);
744              </div>
745
746              <div class="description">
747                <p class="todo">Undocumented.</p>
748                <p>
749                  A description from the json schema def of the event goes here.
750                </p>
751
752                <!-- PARAMETERS -->
753                <h4>Parameters</h4>
754                <dl>
755                  <div>
756                    <div>
757                    </div>
758                  </div>
759                </dl>
760
761              </div> <!-- /decription -->
762
763            </div> <!-- /apiItem -->
764
765          </div> <!-- /apiGroup -->
766
767          <!-- TYPES -->
768          <div class="apiGroup">
769            <a name="types"></a>
770            <h3 id="types">Types</h3>
771
772            <!-- iterates over all types -->
773            <div class="apiItem">
774              <a></a>
775              <h4>type name</h4>
776
777              <div>
778              </div>
779
780            </div> <!-- /apiItem -->
781
782          </div> <!-- /apiGroup -->
783
784        </div> <!-- /apiPage -->
785      </div> <!-- /gc-pagecontent -->
786    </div> <!-- /g-section -->
787  </div> <!-- /codesiteContent -->
788    <div id="gc-footer" --="">
789      <div class="text">
790  <p>
791  Except as otherwise <a href="http://code.google.com/policies.html#restrictions">noted</a>,
792  the content of this page is licensed under the <a rel="license" href="http://creativecommons.org/licenses/by/3.0/">Creative Commons
793  Attribution 3.0 License</a>, and code samples are licensed under the
794  <a rel="license" href="http://code.google.com/google_bsd_license.html">BSD License</a>.
795  </p>
796  <p>
797  ©2010 Google
798  </p>
799
800<!-- begin analytics -->
801<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
802<script src="http://www.google-analytics.com/ga.js" type="text/javascript"></script>
803
804<script type="text/javascript">
805  // chrome doc tracking
806  try {
807    var engdocs = _gat._getTracker("YT-10763712-2");
808    engdocs._trackPageview();
809  } catch(err) {}
810
811  // code.google.com site-wide tracking
812  try {
813    _uacct="UA-18071-1";
814    _uanchor=1;
815    _uff=0;
816    urchinTracker();
817  }
818  catch(e) {/* urchinTracker not available. */}
819</script>
820<!-- end analytics -->
821      </div>
822    </div> <!-- /gc-footer -->
823  </div> <!-- /gc-container -->
824</body></html>
825