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 message</th> <th>Manifest entry that causes 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 "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><all_urls></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