• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  <div id="gc-container" class="labs">
2      <div id="devModeWarning">
3        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.
4      </div>
5      <!-- SUBTEMPLATES: DO NOT MOVE FROM THIS LOCATION -->
6      <!-- In particular, sub-templates that recurse, must be used by allowing
7           jstemplate to make a copy of the template in this section which
8           are not operated on by way of the jsskip="true" -->
9      <div jsskip="true" style="display:none">
10
11        <!-- VALUE -->
12        <div id="valueTemplate">
13          <dt>
14            <var jsdisplay="$this.name" jscontent="$this.name">paramName</var>
15              <em>
16
17                <!-- TYPE -->
18                <div style="display:inline">
19                  (
20                    <span class="optional" jsdisplay="optional">optional</span>
21                    <span class="enum" jsdisplay="enum">enumerated</span>
22                    <span id="typeTemplate">
23                      <span jsdisplay="getTypeRef($this)">
24                        <a jsvalues=".href: getTypeRefPage($this) + '#type-' + getTypeRef($this)"
25                           jscontent="getTypeRef($this)"> Type</a>
26                      </span>
27                      <span jsdisplay="!getTypeRef($this)">
28                        <span jsdisplay="isArray($this)">
29                          array of <span jsselect="items"><span transclude="typeTemplate"></span></span>
30                        </span>
31                        <span jsdisplay="!isArray($this)" jscontent="getTypeName($this)">paramType</span>
32                        <span jsdisplay="!isArray($this) && enum" jscontent="getEnumValues(enum, type);"></span>
33                      </span>
34                    </span>
35                  )
36                </div>
37
38              </em>
39          </dt>
40          <dd class="todo" jsdisplay="!$this.description">
41            Undocumented.
42          </dd>
43          <dd jsdisplay="$this.description"
44              jsvalues=".innerHTML:substituteTypeRefs($this.description)">
45            Description of this parameter from the json schema.
46          </dd>
47          <dd jsdisplay="$this.min_version">
48            This parameter was added in version
49            <b><span jscontent="$this.min_version"></span></b>.
50            You must omit this parameter in earlier versions,
51            and you may omit it in any version.  If you require this
52            parameter, the manifest key
53            <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
54            can ensure that your extension won't be run in an earlier browser version.
55          </dd>
56
57          <!-- OBJECT PROPERTIES -->
58          <dd jsdisplay="shouldExpandObject($this)">
59            <dl>
60              <div jsselect="getPropertyListFromObject($this)">
61                <div transclude="valueTemplate">
62                </div>
63              </div>
64            </dl>
65          </dd>
66
67          <!-- OBJECT METHODS -->
68          <dd jsdisplay="$this.type === 'object' &&
69                         $this.functions && $this.functions.length > 0"
70              jsvalues="$scope:id">
71            <div transclude="methodsTemplate"></div>
72          </dd>
73
74          <!-- OBJECT EVENT FIELDS -->
75          <dd jsdisplay="$this.type === 'object' &&
76                         $this.events && $this.events.length > 0"
77              jsvalues="$scope:id">
78            <div transclude="eventsTemplate"></div>
79          </dd>
80
81          <!-- FUNCTION PARAMETERS -->
82          <dd jsdisplay="isFunction($this) && $this.parameters &&
83                         $this.name != 'callback'">
84            <div transclude="functionParametersTemplate"></div>
85          </dd>
86
87        </div> <!-- /VALUE -->
88
89        <div id="functionParametersTemplate">
90          <h5>Parameters</h5>
91          <dl>
92            <div jsselect="$this.parameters">
93              <div transclude="valueTemplate">
94              </div>
95            </div>
96          </dl>
97        </div>
98      </div> <!-- /SUBTEMPLATES -->
99
100  <a id="top"></a>
101    <div id="skipto">
102      <a href="#gc-pagecontent">Skip to page content</a>
103      <a href="#gc-toc">Skip to main navigation</a>
104    </div>
105    <!-- API HEADER -->
106    <table id="header" width="100%" cellspacing="0" border="0">
107      <tr>
108        <td valign="middle"
109          ><a href="http://code.google.com/"><img src="images/code_labs_logo.gif" height="43" width="161" alt="Google Code Labs"
110            style="border:0; margin:0;"
111        ></a></td>
112        <td valign="middle" width="100%" style="padding-left:0.6em;">
113          <form action="http://www.google.com/cse" id="cse" style="margin-top:0.5em">
114            <div id="gsc-search-box">
115              <input type="hidden" name="cx" value="002967670403910741006:61_cvzfqtno" />
116              <input type="hidden" name="ie" value="UTF-8" />
117              <input type="text" name="q" value="" size="55" />
118              <input class="gsc-search-button" type="submit" name="sa" value="Search" />
119              <br>
120              <span class="greytext">e.g. "page action" or "tabs"</span>
121            </div>
122          </form>
123
124          <script type="text/javascript" src="http://www.google.com/jsapi"></script>
125          <script type="text/javascript">google.load("elements", "1", {packages: "transliteration"});</script>
126          <script type="text/javascript" src="http://www.google.com/coop/cse/t13n?form=cse&t13n_langs=en"></script>
127          <script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse&lang=en"></script>
128        </td>
129      </tr>
130    </table>
131
132    <div id="codesiteContent" jsvalues=".className: showSideNav() ? '' : 'hideSideNav'">
133
134      <a id="gc-topnav-anchor"></a>
135      <div id="gc-topnav">
136        <h1>Google Chrome Extensions (<a href="http://code.google.com/labs/">Labs</a>)</h1>
137        <ul id="home" class="gc-topnav-tabs">
138          <li id="home_link">
139            <a href="index.html" title="Google Chrome Extensions home page">Home</a>
140          </li>
141          <li id="docs_link">
142            <a href="docs.html" title="Official Google Chrome Extensions documentation">Docs</a>
143          </li>
144          <li id="faq_link">
145            <a href="faq.html" title="Answers to frequently asked questions about Google Chrome Extensions">FAQ</a>
146          </li>
147          <li id="samples_link">
148            <a href="samples.html" title="Sample extensions (with source code)">Samples</a>
149          </li>
150          <li id="group_link">
151            <a href="http://groups.google.com/a/chromium.org/group/chromium-extensions" title="Google Chrome Extensions developer forum">Group</a>
152          </li>
153        </ul>
154      </div> <!-- end gc-topnav -->
155
156    <div class="g-section g-tpl-170">
157      <!-- SIDENAV -->
158      <div class="g-unit g-first" id="gc-toc" jsdisplay="showSideNav()">
159        <ul>
160          <li><a href="getstarted.html">Getting Started</a></li>
161          <li><a href="overview.html">Overview</a></li>
162          <li><a href="whats_new.html">What's New?</a></li>
163          <li><h2><a href="devguide.html">Developer's Guide</a></h2>
164            <ul>
165              <li>Browser UI
166                <ul>
167                  <li><a href="browserAction.html">Browser Actions</a></li>
168                  <li><a href="contextMenus.html">Context Menus</a></li>
169                  <li><a href="notifications.html">Desktop Notifications</a></li>
170                  <li><a href="omnibox.html">Omnibox</a></li>
171                  <li><a href="options.html">Options Pages</a></li>
172                  <li><a href="override.html">Override Pages</a></li>
173                  <li><a href="pageAction.html">Page Actions</a></li>
174                </ul>
175              </li>
176              <li>Browser Interaction
177                <ul>
178                  <li><a href="bookmarks.html">Bookmarks</a></li>
179                  <li><a href="cookies.html">Cookies</a></li>
180                  <li><a href="events.html">Events</a></li>
181                  <li><a href="history.html">History</a></li>
182                  <li><a href="management.html">Management</a></li>
183                  <li><a href="tabs.html">Tabs</a></li>
184                  <li><a href="windows.html">Windows</a></li>
185                </ul>
186              </li>
187              <li>Implementation
188                <ul>
189                  <li><a href="a11y.html">Accessibility</a></li>
190                  <li><a href="background_pages.html">Background Pages</a></li>
191                  <li><a href="content_scripts.html">Content Scripts</a></li>
192                  <li><a href="xhr.html">Cross-Origin XHR</a></li>
193                  <li><a href="idle.html">Idle</a></li>
194                  <li><a href="i18n.html">Internationalization</a></li>
195                  <li><a href="messaging.html">Message Passing</a></li>
196                  <li><a href="npapi.html">NPAPI Plugins</a></li>
197                </ul>
198              </li>
199              <li>Finishing
200                <ul>
201                  <li><a href="hosting.html">Hosting</a></li>
202                  <li><a href="external_extensions.html">Other Deployment Options</a></li>
203                </ul>
204              </li>
205            </ul>
206          </li>
207          <li><h2><a href="apps.html">Packaged Apps</a></h2></li>
208          <li><h2><a href="tutorials.html">Tutorials</a></h2>
209            <ul>
210              <li><a href="tut_debugging.html">Debugging</a></li>
211              <li><a href="tut_analytics.html">Google Analytics</a></li>
212              <li><a href="tut_oauth.html">OAuth</a></li>
213            </ul>
214          </li>
215          <li><h2>Reference</h2>
216            <ul>
217              <li>Formats
218                <ul>
219                  <li><a href="manifest.html">Manifest Files</a></li>
220                  <li><a href="match_patterns.html">Match Patterns</a></li>
221                </ul>
222              </li>
223              <li><a href="permission_warnings.html">Permission Warnings</a></li>
224              <li><a href="api_index.html">chrome.* APIs</a></li>
225              <li><a href="api_other.html">Other APIs</a></li>
226            </ul>
227          </li>
228          <li><h2><a href="samples.html">Samples</a></h2></li>
229          <div class="line"> </div>
230          <li><h2>More</h2>
231            <ul>
232              <li><a href="http://code.google.com/chrome/webstore/docs/index.html">Chrome Web Store</a></li>
233              <li><a href="http://code.google.com/chrome/apps/docs/developers_guide.html">Hosted Apps</a></li>
234              <li><a href="themes.html">Themes</a></li>
235            </ul>
236          </li>
237        </ul>
238      </div>
239      <script>
240        initToggles();
241      </script>
242
243    <div class="g-unit" id="gc-pagecontent">
244      <div id="pageTitle">
245        <h1 class="page_title" jscontent="getPageName()">chrome.apiname</h1>
246      </div>
247        <!-- TABLE OF CONTENTS -->
248        <div id="toc" jsdisplay="showPageTOC()">
249          <h2>Contents</h2>
250          <ol>
251            <li jsselect="getStaticTOC()">
252              <a jscontent="name"
253                 jsvalues=".href:'#' + href">h2Name</a>
254              <ol>
255                <li jsselect="$this.children">
256                  <a jscontent="name"
257                     jsvalues=".href:'#' + href">h3Name</a>
258                </li>
259              </ol>
260            </li>
261              <li jsselect="apiDefinition">
262                <a href="#apiReference" jscontent="'API reference: ' + getModuleName()">API reference</a>
263                <ol>
264                  <li jsdisplay="$this.properties">
265                    <a href="#properties">Properties</a>
266                    <ol>
267                      <li jsselect="getPropertyListFromObject($this)">
268                        <a jscontent="name"
269                           jsvalues=".href:'#property-' + name"
270                           href="#property-anchor">propertyName</a>
271                      </li>
272                    </ol>
273                  </li>
274                  <li jsdisplay="functions && functions.length > 0">
275                    <a jsvalues=".href:'#' + getAnchorName('global', 'methods')">Methods</a>
276                    <ol>
277                      <li jsselect="functions.sort(sortByName)"
278                          jsdisplay="!($this.nodoc)">
279                        <a jscontent="name"
280                           jsvalues=".href:'#' + getAnchorName('method', name)"
281                           href="#method-anchor">methodName</a>
282                      </li>
283                    </ol>
284                  </li>
285                  <li jsdisplay="events && events.length > 0">
286                    <a jsvalues=".href:'#' + getAnchorName('global', 'events')">Events</a>
287                    <ol>
288                      <li jsselect="events.sort(sortByName)"
289                          jsdisplay="!($this.nodoc)">
290                        <a jscontent="name"
291                           jsvalues=".href:'#' + getAnchorName('event', name)"
292                           href="#event-anchor">eventName</a>
293                      </li>
294                    </ol>
295                  </li>
296                  <li jsdisplay="types && types.length > 0">
297                    <a href="#types">Types</a>
298                    <ol>
299                      <li jsselect="types.sort(sortByName)">
300                        <a jscontent="id"
301                           jsvalues=".href:'#type-' + id"
302                           href="#id-anchor">id</a>
303                      </li>
304                    </ol>
305                  </li>
306                </ol>
307              </li>
308          </ol>
309        </div>
310        <!-- /TABLE OF CONTENTS -->
311
312        <!-- Standard content lead-in for experimental API pages -->
313        <p jsdisplay="isExperimentalAPIPage();" id="classSummary">
314          For information on how to use experimental APIs, see the <a href="experimental.html">chrome.experimental.* APIs</a> page.
315        </p>
316
317        <!-- STATIC CONTENT PLACEHOLDER -->
318        <div id="static"></div>
319
320        <!-- API PAGE -->
321        <div class="apiPage" jsselect="apiDefinition" jsvalues="$scope:''">
322        <a name="apiReference"></a>
323        <h2 jscontent="'API reference: ' + getModuleName()">API reference: chrome.apiname </h2>
324
325          <!-- PROPERTIES -->
326          <div jsdisplay="$this.properties" class="apiGroup">
327            <a name="properties"></a>
328            <h3 id="properties">Properties</h3>
329
330            <div jsselect="getPropertyListFromObject($this)">
331              <a jsvalues=".name:'property-' + name"></a>
332              <h4 jscontent="name">getLastError</h4>
333              <div class="summary">
334                <!-- Note: intentionally longer 80 columns -->
335                <span jscontent="getModuleName() + '.'">chrome.extension</span><span jscontent="$this.name">lastError</span>
336              </div>
337              <div transclude="valueTemplate">
338              </div>
339            </div>
340
341          </div> <!-- /apiGroup -->
342
343          <!-- METHODS -->
344          <div id="methodsTemplate" class="apiGroup"
345               jsdisplay="$this.functions && $this.functions.length > 0">
346            <a jsvalues=".name:getAnchorName('global', 'methods', $scope)"></a>
347            <h3 jscontent="$scope ? 'Methods of ' + $scope : 'Methods'">Methods</h3>
348
349            <!-- iterates over all functions -->
350            <div class="apiItem" jsselect="functions.sort(sortByName)"
351                 jsdisplay="!($this.nodoc)">
352              <a jsvalues=".name:getAnchorName('method', name, $scope)"></a> <!-- method-anchor -->
353              <h4 jscontent="name">method name</h4>
354
355              <div class="summary"><span jsdisplay="returns" jscontent="getTypeName(returns)">void</span>
356                  <!-- Note: intentionally longer 80 columns -->
357                  <span jscontent="getFullyQualifiedFunctionName($scope, $this)">chrome.module.methodName</span>(<span jsselect="parameters" jsvalues="class:optional ? 'optional' : ''"><span jsdisplay="$index">, </span><span jscontent="getTypeName($this)"></span>
358                      <var><span jscontent="$this.name"></span></var></span>)</div>
359
360              <div class="description">
361                <p class="todo" jsdisplay="!description">Undocumented.</p>
362                <p jsdisplay="description" jsvalues=".innerHTML:description">
363                  A description from the json schema def of the function goes here.
364                </p>
365
366                <!-- PARAMETERS -->
367                <h4 jsdisplay="$this.parameters && $this.parameters.length > 0">Parameters</h4>
368                <dl>
369                  <div jsselect="parameters">
370                    <div transclude="valueTemplate">
371                    </div>
372                  </div>
373                </dl>
374
375                <!-- RETURNS -->
376                <h4 jsdisplay="returns">Returns</h4>
377                <dl>
378                  <div jsselect="returns">
379                    <div transclude="valueTemplate">
380                    </div>
381                  </div>
382                </dl>
383
384                <!-- CALLBACK -->
385                <div jsdisplay="hasCallback(parameters)">
386                  <div jsselect="getCallbackParameters(parameters)">
387                  <h4>Callback function</h4>
388                  <p jsdisplay="!$this.optional">
389                    The callback <em>parameter</em> should specify a function
390                    that looks like this:
391                  </p>
392                  <p jsdisplay="$this.optional">
393                    If you specify the <em>callback</em> parameter, it should
394                    specify a function that looks like this:
395                  </p>
396
397                  <!-- Note: intentionally longer 80 columns -->
398                  <pre>function(<span jscontent="getSignatureString(parameters)">Type param1, Type param2</span>) <span class="subdued">{...}</span>;</pre>
399                  <dl>
400                    <div jsselect="parameters">
401                      <div transclude="valueTemplate">
402                      </div>
403                    </div>
404                  </dl>
405                  </div>
406                </div>
407
408                <!-- MIN_VERSION -->
409                <p jsdisplay="min_version" >
410                  This function was added in version <b><span jscontent="$this.min_version"></span></b>.
411                  If you require this function, the manifest key
412                  <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a>
413                  can ensure that your extension won't be run in an earlier browser version.
414                </p>
415              </div> <!-- /description -->
416
417            </div>  <!-- /apiItem -->
418
419          </div>  <!-- /apiGroup -->
420
421          <!-- EVENTS -->
422          <div id="eventsTemplate" class="apiGroup"
423               jsdisplay="$this.events && $this.events.length > 0">
424            <a jsvalues=".name:getAnchorName('global', 'events', $scope)"></a>
425            <h3 jscontent="$scope ? 'Events of ' + $scope : 'Events'">Events</h3>
426            <!-- iterates over all events -->
427            <div class="apiItem" jsselect="$this.events.sort(sortByName)"
428                 jsdisplay="!($this.nodoc)">
429              <a jsvalues=".name:getAnchorName('event', name, $scope)"></a>
430              <h4 jscontent="name">event name</h4>
431
432              <div class="summary">
433                <!-- Note: intentionally longer 80 columns -->
434                <span jscontent="(getObjectName($scope) || getModuleName()) + '.'" class="subdued">chrome.bookmarks</span><span jscontent="name">onEvent</span><span class="subdued">.addListener</span>(function(<span jscontent="getSignatureString($this.parameters)">Type param1, Type param2</span>) <span class="subdued">{...}</span>);
435              </div>
436
437              <div class="description">
438                <p class="todo" jsdisplay="!description">Undocumented.</p>
439                <p jsdisplay="description" jsvalues=".innerHTML:description">
440                  A description from the json schema def of the event goes here.
441                </p>
442
443                <!-- PARAMETERS -->
444                <div jsdisplay="parameters && parameters.length > 0">
445                  <h4>Parameters</h4>
446                  <dl>
447                    <div jsselect="parameters">
448                      <div transclude="valueTemplate">
449                      </div>
450                    </div>
451                  </dl>
452                </div>
453              </div> <!-- /decription -->
454
455            </div> <!-- /apiItem -->
456
457          </div> <!-- /apiGroup -->
458
459          <!-- TYPES -->
460          <div jsdisplay="types && types.length > 0" class="apiGroup">
461            <a name="types"></a>
462            <h3 id="types">Types</h3>
463
464            <!-- iterates over all types -->
465            <div jsselect="types.sort(sortByName)" class="apiItem">
466              <a jsvalues=".name:'type-' + id"></a>
467              <h4 jscontent="id">type name</h4>
468
469              <div transclude="valueTemplate">
470              </div>
471
472            </div> <!-- /apiItem -->
473
474          </div> <!-- /apiGroup -->
475
476        </div> <!-- /apiPage -->
477      </div> <!-- /gc-pagecontent -->
478    </div> <!-- /g-section -->
479  </div> <!-- /codesiteContent -->
480    <div id="gc-footer" -->
481      <div class="text">
482  <p>
483  Except as otherwise <a
484  href="http://code.google.com/policies.html#restrictions">noted</a>,
485  the content of this page is licensed under the <a rel="license"
486  href="http://creativecommons.org/licenses/by/3.0/">Creative Commons
487  Attribution 3.0 License</a>, and code samples are licensed under the
488  <a rel="license" href="http://code.google.com/google_bsd_license.html">BSD License</a>.
489  </p>
490  <p>
491  &copy;2011 Google
492  </p>
493
494<!-- begin analytics -->
495<script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
496<script src="http://www.google-analytics.com/ga.js" type="text/javascript"></script>
497
498<script type="text/javascript">
499  // chrome doc tracking
500  try {
501    var engdocs = _gat._getTracker("YT-10763712-2");
502    engdocs._trackPageview();
503  } catch(err) {}
504
505  // code.google.com site-wide tracking
506  try {
507    _uacct="UA-18071-1";
508    _uanchor=1;
509    _uff=0;
510    urchinTracker();
511  }
512  catch(e) {/* urchinTracker not available. */}
513</script>
514<!-- end analytics -->
515      </div>
516    </div> <!-- /gc-footer -->
517  </div> <!-- /gc-container -->
518