<!DOCTYPE html><!-- This page is a placeholder for generated extensions api doc. Note: 1) The <head> information in this page is significant, should be uniform across api docs and should be edited only with knowledge of the templating mechanism. 3) All <body>.innerHTML is genereated as an rendering step. If viewed in a browser, it will be re-generated from the template, json schema and authored overview content. 4) The <body>.innerHTML is also generated by an offline step so that this page may easily be indexed by search engines. --><html xmlns="http://www.w3.org/1999/xhtml"><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link href="css/ApiRefStyles.css" rel="stylesheet" type="text/css"> <link href="css/print.css" rel="stylesheet" type="text/css" media="print"> <script type="text/javascript" src="../../../third_party/jstemplate/jstemplate_compiled.js"> </script> <script type="text/javascript" src="js/api_page_generator.js"></script> <script type="text/javascript" src="js/bootstrap.js"></script> <script type="text/javascript" src="js/sidebar.js"></script> <title>Other APIs - Google Chrome Extensions - Google Code</title></head> <body> <div id="devModeWarning" class="displayModeWarning"> 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. </div> <div id="branchWarning" class="displayModeWarning"> <span>WARNING: This is the <span id="branchName">BETA</span> documentation. It may not work with the stable release of Chrome.</span> <select id="branchChooser"> <option>Choose a different version... </option><option value="">Stable </option><option value="beta">Beta </option><option value="dev">Dev </option><option value="trunk">Trunk </option></select> </div> <div id="unofficialWarning" class="displayModeWarning"> <span>WARNING: This is unofficial documentation. It may not work with the current release of Chrome.</span> <button id="goToOfficialDocs">Go to the official docs</button> </div> <div id="gc-container" class="labs"> <!-- SUBTEMPLATES: DO NOT MOVE FROM THIS LOCATION --> <!-- In particular, sub-templates that recurse, must be used by allowing jstemplate to make a copy of the template in this section which are not operated on by way of the jsskip="true" --> <div style="display:none"> <!-- VALUE --> <div id="valueTemplate"> <dt> <var>paramName</var> <em> <!-- TYPE --> <div style="display:inline"> ( <span class="optional">optional</span> <span class="enum">enumerated</span> <span id="typeTemplate"> <span> <a> Type</a> </span> <span> <span> array of <span><span></span></span> </span> <span>paramType</span> <span></span> </span> </span> ) </div> </em> </dt> <dd class="todo"> Undocumented. </dd> <dd> Description of this parameter from the json schema. </dd> <dd> This parameter was added in version <b><span></span></b>. You must omit this parameter in earlier versions, and you may omit it in any version. If you require this parameter, the manifest key <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a> can ensure that your extension won't be run in an earlier browser version. </dd> <!-- OBJECT PROPERTIES --> <dd> <dl> <div> <div> </div> </div> </dl> </dd> <!-- OBJECT METHODS --> <dd> <div></div> </dd> <!-- OBJECT EVENT FIELDS --> <dd> <div></div> </dd> <!-- FUNCTION PARAMETERS --> <dd> <div></div> </dd> </div> <!-- /VALUE --> <div id="functionParametersTemplate"> <h5>Parameters</h5> <dl> <div> <div> </div> </div> </dl> </div> <!-- Individual subsections from the table of contents --> <ol> <li id="propertiesTocTemplate"> <a href="#properties">Properties</a> <ol> <li> <a href="#property-anchor">propertyName</a> </li> </ol> </li> <li id="methodsTocTemplate"> <a>Methods</a> <ol> <li> <a href="#method-anchor">methodName</a> </li> </ol> </li> <li id="eventsTocTemplate"> <a>Events</a> <ol> <li> <a href="#event-anchor">eventName</a> </li> </ol> </li> <li id="typesTocTemplate"> <a href="#types">Types</a> <ol> <li> <a href="#id-anchor">id</a> <ol> <div></div> <div></div> </ol> </li> </ol> </li> </ol> </div> <!-- /SUBTEMPLATES --> <a id="top"></a> <div id="skipto"> <a href="#gc-pagecontent">Skip to page content</a> <a href="#gc-toc">Skip to main navigation</a> </div> <!-- API HEADER --> <table id="header" width="100%" cellspacing="0" border="0"> <tbody><tr> <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> <td valign="middle" width="100%" style="padding-left:0.6em;"> <form action="http://www.google.com/cse" id="cse" style="margin-top:0.5em"> <div id="gsc-search-box"> <input type="hidden" name="cx" value="002967670403910741006:61_cvzfqtno"> <input type="hidden" name="ie" value="UTF-8"> <input type="text" name="q" value="" size="55"> <input class="gsc-search-button" type="submit" name="sa" value="Search"> <br> <span class="greytext">e.g. "page action" or "tabs"</span> </div> </form> <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript">google.load("elements", "1", {packages: "transliteration"});</script> <script type="text/javascript" src="https://www.google.com/coop/cse/t13n?form=cse&t13n_langs=en"></script> <script type="text/javascript" src="https://www.google.com/coop/cse/brand?form=cse&lang=en"></script> </td> </tr> </tbody></table> <div id="codesiteContent" class=""> <a id="gc-topnav-anchor"></a> <div id="gc-topnav"> <h1>Google Chrome Extensions (<a href="http://code.google.com/labs/">Labs</a>)</h1> <ul id="home" class="gc-topnav-tabs"> <li id="home_link"> <a href="index.html" title="Google Chrome Extensions home page">Home</a> </li> <li id="docs_link"> <a href="docs.html" title="Official Google Chrome Extensions documentation">Docs</a> </li> <li id="faq_link"> <a href="faq.html" title="Answers to frequently asked questions about Google Chrome Extensions">FAQ</a> </li> <li id="samples_link"> <a href="samples.html" title="Sample extensions (with source code)">Samples</a> </li> <li id="group_link"> <a href="http://groups.google.com/a/chromium.org/group/chromium-extensions" title="Google Chrome Extensions developer forum">Group</a> </li> <li id="so_link"> <a href="http://stackoverflow.com/questions/tagged/google-chrome-extension" title="[google-chrome-extension] tag on Stack Overflow">Questions?</a> </li> </ul> </div> <!-- end gc-topnav --> <div class="g-section g-tpl-170"> <!-- SIDENAV --> <div class="g-unit g-first" id="gc-toc"> <ul> <li><a href="getstarted.html">Getting Started</a></li> <li><a href="overview.html">Overview</a></li> <li><a href="whats_new.html">What's New?</a></li> <li><h2><a href="devguide.html">Developer's Guide</a></h2> <ul> <li>Browser UI <ul> <li><a href="browserAction.html">Browser Actions</a></li> <li><a href="contextMenus.html">Context Menus</a></li> <li><a href="notifications.html">Desktop Notifications</a></li> <li><a href="omnibox.html">Omnibox</a></li> <li><a href="options.html">Options Pages</a></li> <li><a href="override.html">Override Pages</a></li> <li><a href="pageAction.html">Page Actions</a></li> </ul> </li> <li>Browser Interaction <ul> <li><a href="bookmarks.html">Bookmarks</a></li> <li><a href="cookies.html">Cookies</a></li> <li><a href="devtools.html">Developer Tools</a></li> <li><a href="events.html">Events</a></li> <li><a href="history.html">History</a></li> <li><a href="management.html">Management</a></li> <li><a href="tabs.html">Tabs</a></li> <li><a href="windows.html">Windows</a></li> </ul> </li> <li>Implementation <ul> <li><a href="a11y.html">Accessibility</a></li> <li><a href="background_pages.html">Background Pages</a></li> <li><a href="content_scripts.html">Content Scripts</a></li> <li><a href="xhr.html">Cross-Origin XHR</a></li> <li><a href="i18n.html">Internationalization</a></li> <li><a href="messaging.html">Message Passing</a></li> <li><a href="permissions.html">Optional Permissions</a></li> <li><a href="npapi.html">NPAPI Plugins</a></li> </ul> </li> <li>Finishing <ul> <li><a href="hosting.html">Hosting</a></li> <li><a href="external_extensions.html">Other Deployment Options</a></li> </ul> </li> </ul> </li> <li><h2><a href="apps.html">Packaged Apps</a></h2></li> <li><h2><a href="tutorials.html">Tutorials</a></h2> <ul> <li><a href="tut_debugging.html">Debugging</a></li> <li><a href="tut_analytics.html">Google Analytics</a></li> <li><a href="tut_oauth.html">OAuth</a></li> </ul> </li> <li><h2>Reference</h2> <ul> <li>Formats <ul> <li><a href="manifest.html">Manifest Files</a></li> <li><a href="match_patterns.html">Match Patterns</a></li> </ul> </li> <li><a href="permission_warnings.html">Permission Warnings</a></li> <li><a href="api_index.html">chrome.* APIs</a></li> <li class="leftNavSelected">Other APIs</li> </ul> </li> <li><h2><a href="samples.html">Samples</a></h2></li> <div class="line"> </div> <li><h2>More</h2> <ul> <li><a href="http://code.google.com/chrome/webstore/docs/index.html">Chrome Web Store</a></li> <li><a href="http://code.google.com/chrome/apps/docs/developers_guide.html">Hosted Apps</a></li> <li><a href="themes.html">Themes</a></li> </ul> </li> </ul> </div> <script> initToggles(); </script> <div class="g-unit" id="gc-pagecontent"> <div id="pageTitle"> <h1 class="page_title">Other APIs</h1> </div> <!-- TABLE OF CONTENTS --> <div id="toc" style="display: none; "> <h2>Contents</h2> <ol> <li> <a>h2Name</a> <ol> <li> <a>h3Name</a> </li> </ol> </li> <li> <a href="#apiReference">API reference</a> <ol> <div></div> <div></div> <div></div> <div></div> </ol> </li> </ol> </div> <!-- /TABLE OF CONTENTS --> <!-- Standard content lead-in for experimental API pages --> <p id="classSummary" style="display: none; "> For information on how to use experimental APIs, see the <a href="experimental.html">chrome.experimental.* APIs</a> page. </p> <!-- STATIC CONTENT PLACEHOLDER --> <div id="static"><div id="pageData-name" class="pageData">Other APIs</div> <p> In addition to the <a href="api_index.html">chrome.* APIs</a>, extensions can use all the APIs that the browser provides to web pages and apps. If the browser doesn't support an API you want to use, you can bundle additional API libraries into your extension. </p> <p>Here's a sampling of the APIs that extensions can use:</p> <dl> <dt><strong> Standard JavaScript APIs </strong></dt> <dd> These are the same core JavaScript and <a href="https://developer.mozilla.org/en/Gecko_DOM_Reference">Document Object Model</a> (DOM) APIs that you can use in ordinary web apps. <!-- [PENDING: check! should link to complete list] --> <!-- Use onclick in your toolbar div to add click behavior. E.g. window.open(someUrl). --></dd> <dt><strong> XMLHttpRequest </strong></dt> <dd> Use <a href="xhr.html">XMLHttpRequest</a> to request data from one or more servers. The <a href="manifest.html#permissions">permissions</a> field of the manifest specifies which hosts the extension can send requests to. </dd> <dt> <strong>HTML5 and other emerging APIs</strong></dt> <dd> Google Chrome supports HTML5 features, along with other emerging APIs. Here are some of the APIs you can use: <ul> <li> audio (<a href="http://www.html5rocks.com/tutorials/audio/quick/">tutorial</a>) </li> <li> application cache (<a href="http://www.html5rocks.com/tutorials/appcache/beginner/">tutorial</a>) </li> <li> canvas (<a href="http://www.html5rocks.com/en/tutorials/#canvas">articles</a>) </li> <li> geolocation (<a href="http://www.html5rocks.com/tutorials/geolocation/trip_meter/">tutorial</a>) </li> <li> local storage (<a href="http://www.html5rocks.com/en/tutorials/offline/storage/">tutorial</a>) </li> <li> notifications (<a href="http://www.html5rocks.com/tutorials/notifications/quick/">tutorial</a>) </li> <li> video (<a href="http://www.html5rocks.com/en/tutorials/video/basics/">tutorial</a>) </li> <li> web database (<a href="http://www.html5rocks.com/tutorials/webdatabase/todo/">tutorial</a>) </li> </ul> <p> See <a href="http://www.html5rocks.com">html5rocks.com</a> for HTML5 information, tutorials, an interactive playground, and links to other resources. </p> </dd> <dt><strong> WebKit APIs </strong></dt> <dd> Because Google Chrome is built upon WebKit, your extensions can use WebKit APIs. Especially useful are the experimental CSS features such as filters, animations, and transformations. Here's an example of using WebKit styles to make the UI spin: <pre><style> div:hover { -webkit-transform: rotate(360deg); -webkit-transition: all 1s ease-out; } </style> </pre> <!-- [PENDING: link to complete list of webkit apis] --> </dd> <dt><strong> V8 APIs</strong>, such as<strong> JSON </strong></dt> <dd> Because JSON is in V8, you don't need to include a JSON library to use JSON functions. <!-- [PENDING: what other APIs are in v8? link to complete list] --></dd> <dt><strong>APIs in bundled libraries</strong></dt> <dd> If you want to use a library that the browser doesn't provide (for example, jQuery), you can bundle that library's JavaScript files with your extension. Bundled libraries work in extensions just as they do in other web pages. </dd> </dl> </div> <!-- API PAGE --> <div class="apiPage" style="display: none; "> <a name="apiReference"></a> <h2>API reference: chrome.apiname </h2> <!-- PROPERTIES --> <div class="apiGroup"> <a name="properties"></a> <h3 id="properties">Properties</h3> <div> <a></a> <h4>getLastError</h4> <div class="summary"> <!-- Note: intentionally longer 80 columns --> <span>chrome.extension</span><span>lastError</span> </div> <div> </div> </div> </div> <!-- /apiGroup --> <!-- METHODS --> <div id="methodsTemplate" class="apiGroup"> <a></a> <h3>Methods</h3> <!-- iterates over all functions --> <div class="apiItem"> <a></a> <!-- method-anchor --> <h4>method name</h4> <div class="summary"><span>void</span> <!-- Note: intentionally longer 80 columns --> <span>chrome.module.methodName</span>(<span><span>, </span><span></span> <var><span></span></var></span>)</div> <div class="description"> <p class="todo">Undocumented.</p> <p> A description from the json schema def of the function goes here. </p> <!-- PARAMETERS --> <h4>Parameters</h4> <dl> <div> <div> </div> </div> </dl> <!-- RETURNS --> <h4>Returns</h4> <dl> <div> <div> </div> </div> </dl> <!-- CALLBACK --> <div> <div> <h4>Callback function</h4> <p> The callback <em>parameter</em> should specify a function that looks like this: </p> <p> If you specify the <em>callback</em> parameter, it should specify a function that looks like this: </p> <!-- Note: intentionally longer 80 columns --> <pre>function(<span>Type param1, Type param2</span>) <span class="subdued">{...}</span>;</pre> <dl> <div> <div> </div> </div> </dl> </div> </div> <!-- MIN_VERSION --> <p> This function was added in version <b><span></span></b>. If you require this function, the manifest key <a href="manifest.html#minimum_chrome_version">minimum_chrome_version</a> can ensure that your extension won't be run in an earlier browser version. </p> </div> <!-- /description --> </div> <!-- /apiItem --> </div> <!-- /apiGroup --> <!-- EVENTS --> <div id="eventsTemplate" class="apiGroup"> <a></a> <h3>Events</h3> <!-- iterates over all events --> <div class="apiItem"> <a></a> <h4>event name</h4> <div class="summary"> <!-- Note: intentionally longer 80 columns --> <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><span>, Type opt_param1, Type opt_param2</span>); </div> <div class="description"> <p class="todo">Undocumented.</p> <p> A description from the json schema def of the event goes here. </p> <!-- LISTENER PARAMETERS --> <div> <h4>Listener parameters</h4> <dl> <div> <div> </div> </div> </dl> </div> <!-- EXTRA PARAMETERS --> <div> <h4>Extra parameters to addListener</h4> <dl> <div> <div> </div> </div> </dl> </div> <!-- LISTENER RETURN VALUE --> <h4>Listener returns</h4> <dl> <div> <div> </div> </div> </dl> </div> <!-- /description --> </div> <!-- /apiItem --> </div> <!-- /apiGroup --> <!-- TYPES --> <div class="apiGroup"> <a name="types"></a> <h3 id="types">Types</h3> <!-- iterates over all types --> <div class="apiItem"> <a></a> <h4>type name</h4> <div> </div> </div> <!-- /apiItem --> </div> <!-- /apiGroup --> </div> <!-- /apiPage --> </div> <!-- /gc-pagecontent --> </div> <!-- /g-section --> </div> <!-- /codesiteContent --> <div id="gc-footer" --=""> <div class="text"> <p> Except as otherwise <a href="http://code.google.com/policies.html#restrictions">noted</a>, the content of this page is licensed under the <a rel="license" href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0 License</a>, and code samples are licensed under the <a rel="license" href="http://code.google.com/google_bsd_license.html">BSD License</a>. </p> <p> ©2011 Google </p> <!-- begin analytics --> <script src="https://www.google-analytics.com/urchin.js" type="text/javascript"></script> <script src="https://www.google-analytics.com/ga.js" type="text/javascript"></script> <script type="text/javascript"> // chrome doc tracking try { var engdocs = _gat._getTracker("YT-10763712-2"); engdocs._trackPageview(); } catch(err) {} // code.google.com site-wide tracking try { _uacct="UA-18071-1"; _uanchor=1; _uff=0; urchinTracker(); } catch(e) {/* urchinTracker not available. */} </script> <!-- end analytics --> </div> </div> <!-- /gc-footer --> </div> <!-- /gc-container --> </body></html>