OLD | NEW |
1 <!DOCTYPE html> | 1 <!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 mecha
nism. 2) The <body> tag *must* retain id="body" 3) All <body>.innerHTML is gener
eated 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>.innerHTM
L is also generated by an offline step so that this page may easily be indexed b
y search engines. TODO(rafaelw): Abstract this into a "pageshell" that becomes t
he single version of page template shell and the "instance" pages (bookmarks.htm
l, etc...) can be generated with a build step. --><!-- <html> must retain id="te
mplate --><html xmlns="http://www.w3.org/1999/xhtml" jstcache="0"><!-- <head> da
ta is significant and loads the needed libraries and styles --><head jstcache="0
"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" jstcache="
0"> <title jscontent="pageTitle" jstcache="1">getstarted</title> <link href="css
/ApiRefStyles.css" rel="stylesheet" type="text/css" jstcache="0"> <script type="
text/javascript" src="../../../third_party/jstemplate/jstemplate_compiled.js" js
tcache="0"> </script> <script type="text/javascript" src="js/api_page_generator.
js" jstcache="0"></script> <script type="text/javascript" src="js/bootstrap.js"
jstcache="0"></script> </head><!-- <body> content is completely generated. Do no
t edit, as it will be and rewritten. --><body class="" jstcache="0"> <div id="co
ntainer" jstcache="0"> <a name="top" jstcache="0"> </a> <!-- API HEADER --> <div
id="pageHeader" jstcache="0"> <!-- BREADCRUMB --> <!-- TODO: Fix these hrefs --
> <div id="breadcrumbs" jstcache="0"> <a href="index.html" jstcache="0">Google C
hrome Extensions</a> > <a href="reference_index.html" jstcache="0">Reference<
/a> > <a href="api_index.html" jstcache="0">chrome.* APIs</a> > <span jsco
ntent="namespace" jstcache="2">null</span> </div> <div id="searchbox" jstcache="
0"> <form action="http://www.google.com/cse" id="cse-search-box" jstcache="0"> <
div jstcache="0"> <input type="hidden" name="cx" value="002967670403910741006:61
_cvzfqtno" jstcache="0"> <input type="hidden" name="ie" value="UTF-8" jstcache="
0"> <input type="text" name="q" size="31" jstcache="0"> <input type="submit" nam
e="sa" value="Search" jstcache="0"> </div> </form> <script type="text/javascript
" src="http://www.google.com/jsapi" jstcache="0"></script> <script type="text/ja
vascript" jstcache="0">google.load("elements", "1", {packages: "transliteration"
});</script> <script type="text/javascript" src="http://www.google.com/coop/cse/
t13n?form=cse-search-box&t13n_langs=en" jstcache="0"></script> <script type=
"text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&
amp;lang=en" jstcache="0"></script> </div> <div id="pageTitle" jstcache="0"> <h1
jscontent="h1Header" jstcache="3">getstarted</h1> </div> </div> <!-- /pageHeade
r --> <div id="pageContent" jstcache="0"> <!-- SIDENAV --> <div id="leftNav" jst
cache="0"> <ul jstcache="0"> <li jstcache="0"> <a href="overview.html" jstcache=
"0">Overview</a></li> <li jstcache="0"> <a href="getstarted.html" jstcache="0">G
et Started</a></li> <li jstcache="0"> <a href="devguide.html" jstcache="0">Devel
oper's Guide</a></li> <li jstcache="0"> Reference <ul jstcache="0"> <li jstcache
="0"> <a href="api_index.html" jstcache="0">Extension APIs</a> <ul jstcache="0">
<li jsselect="apiModules" jstcache="18" jsinstance="0"> <a jscontent="name" jsv
alues=".href:module + '.html'" jstcache="25" href="bookmarks.html">Bookmarks</a>
</li><li jsselect="apiModules" jstcache="18" jsinstance="1"> <a jscontent="name
" jsvalues=".href:module + '.html'" jstcache="25" href="pageActions.html">PageAc
tions</a> </li><li jsselect="apiModules" jstcache="18" jsinstance="2"> <a jscont
ent="name" jsvalues=".href:module + '.html'" jstcache="25" href="windows.html">W
indows</a> </li><li jsselect="apiModules" jstcache="18" jsinstance="3"> <a jscon
tent="name" jsvalues=".href:module + '.html'" jstcache="25" href="tabs.html">Tab
s</a> </li><li jsselect="apiModules" jstcache="18" jsinstance="*4"> <a jscontent
="name" jsvalues=".href:module + '.html'" jstcache="25" href="self.html">Self</a
> </li> </ul> </li> </ul> </li> </ul> </div> <div id="mainColumn" jstcache="0">
<!-- TABLE OF CONTENTS --> <div id="toc" jsselect="apiDefinition" jstcache="4" s
tyle="display: none; "> <p jstcache="0">Contents</p> <ol jstcache="0"> <li jstca
che="0"> <a href="#overview" jstcache="0">Description</a> <ol jstcache="0"> <li
jstcache="0"><a href="#overview-properties" jstcache="0">Properties</a></li> <li
jstcache="0"><a href="#overview-examples" jstcache="0">Examples</a></li> </ol>
</li> <li jstcache="0"> <a href="#methods" jstcache="0">Methods</a> <ol jstcache
="0"> <li jsselect="functions" jstcache="5"> <a jscontent="name" jsvalues=".href
:'#method-' + name" href="#method-anchor" jstcache="19">methodName</a> </li> </o
l> </li> <li jstcache="0"> <a href="#events" jstcache="0">Events</a> <ol jstcach
e="0"> <li jsselect="events" jstcache="6"> <a jscontent="name" jsvalues=".href:'
#event-' + name" href="#event-anchor" jstcache="20">eventName</a> </li> </ol> </
li> <!-- TODO: What do we do about structs/types? --> <li jstcache="0"> <a href=
"#structs" jstcache="0">TODO: Structs</a> <ol jstcache="0"> <li jstcache="0"><a
href="#struct-BookmarkTreeNode" jstcache="0"></a></li> </ol> </li> </ol> [PENDIN
G: links to all h2s and h3s should go here -- would it be possible to link to ov
erview h3s, as well? if so, how should we create their anchor/id values?] </div>
<!-- /TABLE OF CONTENTS --> <!-- STATIC CONTENT PLACEHOLDER --> <div id="static
" jstcache="0"><p jstcache="0"> This tutorial walks you through creating a simpl
e extension. To complete this tutorial, you must have Windows; Linux and Mac don
't yet support extensions. </p> <h2 id="browser" jstcache="0">Get your browser r
eady</h2> <p jstcache="0"> To develop extensions for Google Chrome, you need to
set up your browser: </p> <ol jstcache="0"> <li jstcache="0"><a href="http://dev
.chromium.org/getting-involved/dev-channel" jstcache="0">Subscribe to the Dev ch
annel</a> of Google Chrome for Windows. </li> <li jstcache="0"><a href="http://d
ev.chromium.org/developers/creating-and-using-profiles" jstcache="0">Create a se
parate profile</a> for testing <em jstcache="0">(optional but highly recommended
)</em>. Having a testing profile means that you can use Google Chrome (with your
default profile) for everyday browsing, even if your extension has horrible bug
s.</li> </ol> <h2 id="load" jstcache="0">Create and load an extension</h2> <p js
tcache="0"> In this section, you'll write a <em jstcache="0">toolstrip</em> — an
extension that puts a bit of UI into the <em jstcache="0">toolbar</em> at the b
ottom of the Google Chrome window. </p> <ol jstcache="0"> <li jstcache="0"> Crea
te a folder somewhere on your computer to contain your extension's code. We'll a
ssume the folder is located at <strong jstcache="0"><code jstcache="0">c:\myext<
/code></strong>, but it can be anywhere. </li> <li jstcache="0"> Inside your ext
ension's folder, create a text file called <strong jstcache="0"><code jstcache="
0">manifest.json</code></strong>, and put this in it: <pre jstcache="0">{ "name"
: "My First Extension", "version": "1.0", "description": "The first extension th
at I made.", "toolstrips": [ "my_toolstrip.html" ] }</pre> </li> <li jstcache="0
"> In the same folder, create a text file called <strong jstcache="0"><code jstc
ache="0">my_toolstrip.html</code></strong>, and put this in it: <pre jstcache="0
"><div class="toolstrip-button"> <span>Hello, World!</span> &l
t;/div></pre> </li> <li jstcache="0"> Load the extension: <ol type="a" jstcac
he="0"> <li jstcache="0"> Change the shortcut that you use to start the browser
(or create a new one) so that it has the <code jstcache="0">--enable-extensions<
/code> and <code jstcache="0">--load-extension</code> flags. For example, if you
r extension is at <code jstcache="0">c:\myext</code>, your shortcut might look s
omething like this: <pre jstcache="0">chrome.exe <span class="newCode" jstcache=
"0">--enable-extensions --load-extension="c:\myext"</span></pre> </li> <li jstca
che="0">Exit Google Chrome. If you have a separate profile for testing, you only
need to exit the browser instances that use the testing profile. </li> <li jstc
ache="0">Double-click the shortcut to start the browser.</li> </ol> <p jstcache=
"0"> <b jstcache="0">Note:</b> For details on changing shortcut properties, see
<a href="http://dev.chromium.org/developers/creating-and-using-profiles" jstcach
e="0">Creating and Using Profiles</a>.</p> </li> </ol> <p jstcache="0"> You shou
ld see the UI for your extension at the bottom left of the browser, looking some
thing like this: </p> <table jstcache="0"> <tbody jstcache="0"> <tr jstcache="0"
> <td align="center" width="33%" jstcache="0"><img src="images/hw-1.gif" alt=""
jstcache="0"></td> <td align="center" width="33%" jstcache="0"><img src="images/
hw-2.gif" alt="" jstcache="0"></td> <td align="center" width="33%" jstcache="0">
<img src="images/hw-3.gif" alt="" jstcache="0"></td> </tr> <tr jstcache="0"> <th
align="center" width="33%" jstcache="0"> default appearance</th> <th align="cen
ter" width="33%" jstcache="0"> initial onhover appearance</th> <th align="center
" width="33%" jstcache="0"> final onhover appearance</th> </tr> </tbody> </table
> <p jstcache="0"> Your extension's button is automatically styled to look like
it belongs in the browser. If you put the cursor over the button, the button get
s a nice, rounded edge, just like the buttons in the bookmark bar. After a while
, a tooltip comes up, identifying the extension. </p> <p jstcache="0"> [PENDING:
troubleshooting info should go here. what are symptoms of common typos, includi
ng misnamed files? what are the symptoms if you don't have the dev channel?] </p
> <h2 id="code" jstcache="0">Add code to the extension</h2> <p jstcache="0"> In
this step, you'll make your extension <em jstcache="0">do</em> something besides
just look good. </p> <ol jstcache="0"> <li jstcache="0"> <p jstcache="0"> Insid
e your extension's folder, create a text file called <strong jstcache="0"><code
jstcache="0">hello_world.html</code></strong>, and add the following code to it:
</p> <blockquote jstcache="0"> <a href="samples/hello_world.txt" jstcache="0">CS
S and JavaScript code for hello_world</a></blockquote> </li> <li jstcache="0"> <
p jstcache="0"> Edit <code jstcache="0">my_toolstrip.html</code>, so that it has
the following code: </p> <pre jstcache="0"><div class="toolstrip-button"<spa
n class="newCode" jstcache="0"> onclick="window.open('hello_world.html')"</span>
> <span>Hello, World!</span> </div></pre> </li> <li jstcach
e="0"> Restart the browser to load the new version of the extension.</li> <li js
tcache="0">Click the button. A window should come up that displays <code jstcach
e="0">hello_world.html</code>. </li> </ol> <p jstcache="0"> It should look somet
hing like this:</p> <img src="images/hello_world-page.gif" alt="a window with a
grid of images related to HELLO WORLD" jstcache="0"> <p jstcache="0"> If you don
't see that page, try the instructions again, following them exactly. Don't try
loading an HTML file that isn't in the extension's folder — it won't work! </p>
<h2 id="debug" jstcache="0">Debug the extension</h2> <p jstcache="0"> You can us
e the browser's built-in developer tools to view your extension's code, display
debugging output, and debug your extension. </p> <ol jstcache="0"> <li jstcache=
"0"> <p jstcache="0"> Edit <code jstcache="0">my_toolstrip.html</code>, so that
it has the following code: </p> <pre jstcache="0"><span class="newCode" jstcache
="0"><script> function helloWorld() { var hwFile = 'hello_world.html'; con
sole.log("in helloWorld()"); window.open(hwFile); } </script></span> <d
iv class="toolstrip-button" onclick="<span class="newCode" jstcache="0">helloWor
ld();</span>"> <span>Hello, World!</span> </div></pre> <p j
stcache="0"> The relocated code still has the same effect, but now it has some d
ebugging output, thanks to the call to <code jstcache="0">console.log()</code>.<
/p> </li> <li jstcache="0"> Restart the browser, so that it loads your new versi
on of the extension. <!-- This might be confusing. Maybe we should instead cover
location.reload() later, after we've shown the console. <div class="note"> <b>T
ip:</b> If you don't want to restart your browser, you can get an updated versio
n of the extension by opening a new window. The new window will contain the upda
ted extension; old windows will contain the old version. </div> --> </li> <li js
tcache="0"> Right-click the <strong jstcache="0">Hello, World!</strong> button (
at the bottom left) to bring up the Developer Tools window for this instance of
your toolstrip. The window should look something like this: <p jstcache="0"> <im
g src="images/devtools-1.gif" alt="" jstcache="0"> </p> <!-- Possibly we should
recommend starting the Dev Tools using chrome://extensions, rather than right-cl
ick. However, that adds some stuff (such as id) that might be confusing. --> </l
i> <li jstcache="0"> Click the <strong jstcache="0">Scripts</strong> button. If
necessary, choose <strong jstcache="0">my_toolstrip.html</strong> from the list
of scripts. The result should be something like this: <p jstcache="0"> <img src=
"images/devtools-2.gif" alt="" jstcache="0"> </p> </li> <li jstcache="0"> Set a
debugging breakpoint at the <code jstcache="0">window.open()</code> statement by
clicking <strong jstcache="0">5</strong> in the left column: <p jstcache="0"> <
img src="images/devtools-3.gif" alt="" jstcache="0"> </p> </li> <li jstcache="0"
> Click the Console button (second from left, at the bottom of the Developer Too
ls window) so that you can see both the code and the console. <p jstcache="0"> <
img src="images/devtools-4.gif" alt="" jstcache="0"></p> </li> <li jstcache="0">
Back in the main browser window, click the <strong jstcache="0">Hello, World!</
strong> button, so that the extension begins executing. You should see the outpu
t of <code jstcache="0">console.log()</code> along with the line number, and exe
cution should stop just before the call to <code jstcache="0">window.open()</cod
e>. <p jstcache="0"> <img src="images/devtools-5.gif" alt="" jstcache="0"> </p>
<p jstcache="0"> The Call Stack area at the right of the tools window shows that
the <code jstcache="0">helloWorld()</code> method was called by an anonymous fu
nction that was called by <code jstcache="0">onclick</code>. Anywhere in the Cal
l Stack or console that you see a file and line number (for example, "my_toolstr
ip.html:4"), you can click that text to see the relevant line of code. </p> </li
> <li jstcache="0"> In the upper right part of the tools window, scroll down (if
necessary) until you can see the local scope variables. This section shows the
current values of all variables in the current scope. For example, you can see t
hat <code jstcache="0">hwFile</code> is a local variable that has the value "hel
lo_world.html". <p jstcache="0"> <img src="images/devtools-6.gif" alt="" jstcach
e="0"> </p> </li> <li jstcache="0"> Click the buttons at the upper right of the
window to resume execution or to step through the code. Once the call to <code j
stcache="0">window.open()</code> returns, the main browser window should open a
new tab that displays the contents of <code jstcache="0">hello_world.html</code>
.</li> </ol> <p jstcache="0"> You now know how to load and debug an extension!</
p> <h2 id="summary" jstcache="0">Summary</h2> <p jstcache="0"> [PENDING: Summari
ze what we did, what it means, what else we would've done if this were a real ex
tension (e.g. package it), and where to find more information. Suggest where to
go next.]</p> </div> <!-- API PAGE --> <div class="apiPage" jsselect="apiDefinit
ion" jstcache="4" style="display: none; "> <!-- METHODS --> <div class="apiGroup
" id="methods" jstcache="0"> <a name="#methods" jstcache="0"></a> <h2 jstcache="
0">Methods</h2> <!-- iterates over all functions --> <div class="apiItem" jssele
ct="functions" jstcache="5"> <a jsvalues=".name:'method-' + name" jstcache="7"><
/a> <!-- method-anchor --> <h3 jscontent="name" jstcache="8">method name</h3> <d
iv class="summary" jstcache="0"><span jsdisplay="returns" jscontent="returns.typ
eName" jstcache="10">void</span> <!-- Note: intentionally longer 80 columns -->
<span jscontent="fullName" jstcache="11">chrome.module.methodName</span>(<span j
sselect="parameters" jsvalues="class:optional ? 'optional' : ''" jstcache="12"><
span jsdisplay="$index" jstcache="21">, </span><span jscontent="typeName" jstcac
he="22"></span> <var jstcache="0"><span jscontent="name" jstcache="8"></span></v
ar></span>)</div> <div class="description" jstcache="0"> <p class="todo" jsdispl
ay="!description" jstcache="13">Undocumented.</p> <p jsdisplay="description" jsv
alues=".innerHTML:description" jstcache="14"> A description from the json schema
def of the function goes here. </p> <!-- PARAMETERS --> <h4 jstcache="0">Parame
ters</h4> <dl jstcache="0"> <div jsselect="parameters" jstcache="23"> <dt jstcac
he="0"> <!-- Note: intentionally longer 80 columns --> <var jscontent="name" jst
cache="8">paramName</var><em jstcache="0"> (<span class="optional" jsdisplay="op
tional" jstcache="31">optional </span><span jscontent="typeName" jstcache="22">p
aramType</span>)</em> </dt> <dd class="todo" jsdisplay="!$this.description" jstc
ache="26"> Undocumented. </dd> <dd jsdisplay="$this.description" jsvalues=".inne
rHTML:$this.description" jstcache="27"> Description of this parameter from the j
son schema. </dd> <!-- OBJECT PROPERTIES --> <dd jsdisplay="_propertyList" jstca
che="28"> <dl jstcache="0"> <div jsselect="_propertyList" jstcache="32"> <dt jst
cache="0"> <!-- Note: intentionally longer 80 columns --> <var jscontent="name"
jstcache="8">paramName</var><em jstcache="0"> (<span class="optional" jsdisplay=
"optional" jstcache="31">optional </span><span jscontent="typeName" jstcache="22
">paramType</span>)</em> </dt> <dd class="todo" jsdisplay="!$this.description" j
stcache="26"> Undocumented. </dd> <dd jsdisplay="$this.description" jsvalues=".i
nnerHTML:$this.description" jstcache="27"> Description of this parameter from th
e json schema. </dd> </div> </dl> </dd> </div> </dl> <!-- RETURNS --> <h4 jsdisp
lay="returns" jstcache="15">Returns</h4> <dl jstcache="0"> <div jsselect="return
s" jstcache="24"> <dt jstcache="0"> <!-- Note: intentionally longer 80 columns -
-> <var jscontent="name" jstcache="8">paramName</var> <em jstcache="0">(<span js
content="typeName" jstcache="22">paramType</span>)</em> </dt> <dd class="todo" j
sdisplay="!$this.description" jstcache="26"> Undocumented. </dd> <dd jsdisplay="
$this.description" jsvalues=".innerHTML:$this.description" jstcache="27"> Descri
ption of this parameter from the json schema. </dd> <!-- OBJECT PROPERTIES --> <
dd jsdisplay="_propertyList" jstcache="28"> <dl jstcache="0"> <div jsselect="_pr
opertyList" jstcache="32"> <dt jstcache="0"> <!-- Note: intentionally longer 80
columns --> <var jscontent="name" jstcache="8">paramName</var><em jstcache="0">
(<span class="optional" jsdisplay="optional" jstcache="31">optional </span><span
jscontent="typeName" jstcache="22">paramType</span>)</em> </dt> <dd class="todo
" jsdisplay="!$this.description" jstcache="26"> Undocumented. </dd> <dd jsdispla
y="$this.description" jsvalues=".innerHTML:$this.description" jstcache="27"> Des
cription of this parameter from the json schema. </dd> </div> </dl> </dd> </div>
</dl> <!-- CALLBACK --> <div jsdisplay="callbackParameters" jstcache="1
6"> <h4 jstcache="0">Callback function</h4> <p jstcache="0"> If you specify the
<em jstcache="0">callback</em> parameter, it should specify a function that look
s like this: </p> <!-- Note: intentionally longer 80 columns --> <pre jstcache="
0">function(<span jscontent="callbackSignature" jstcache="29">Type param1, Type
param2</span>) <span class="subdued" jstcache="0">{...}</span>);</pre> <dl jstca
che="0"> <div jsselect="callbackParameters" jstcache="30"> <dt jstcache="0"> <!-
- Note: intentionally longer 80 columns --> <var jscontent="name" jstcache="8">p
aramName</var><em jstcache="0"> (<span jscontent="typeName" jstcache="22">paramT
ype</span>)</em> </dt> <dd class="todo" jsdisplay="!$this.description" jstcache=
"26"> Undocumented. </dd> <dd jsdisplay="$this.description" jsvalues=".innerHTML
:$this.description" jstcache="27"> Description of this parameter from the json s
chema. </dd> <!-- OBJECT PROPERTIES --> <dd jsdisplay="_propertyList" jstcache="
28"> <dl jstcache="0"> <div jsselect="_propertyList" jstcache="32"> <dt jstcache
="0"> <!-- Note: intentionally longer 80 columns --> <var jscontent="name" jstca
che="8">paramName</var><em jstcache="0"> (<span class="optional" jsdisplay="opti
onal" jstcache="31">optional </span><span jscontent="typeName" jstcache="22">par
amType</span>)</em> </dt> <dd class="todo" jsdisplay="!$this.description" jstcac
he="26"> Undocumented. </dd> <dd jsdisplay="$this.description" jsvalues=".innerH
TML:$this.description" jstcache="27"> Description of this parameter from the jso
n schema. </dd> </div> </dl> </dd> </div> </dl> </div> </div> <!-- /description
--> </div> <!-- /apiItem --> </div> <!-- /apiGroup --> <!-- EVENTS --> <div clas
s="apiGroup" id="events" jstcache="0"> <a name="#events" jstcache="0"></a> <h2 i
d="events" jstcache="0">Events</h2> <!-- iterates over all events --> <div jssel
ect="events" class="apiItem" jstcache="6"> <a jsvalues=".name:'event-' + name" j
stcache="9"></a> <h3 jscontent="name" jstcache="8">event name</h3> <div class="s
ummary" jstcache="0"> <!-- Note: intentionally longer 80 columns --> <span class
="subdued" jstcache="0">chrome.bookmarks.</span><span jscontent="name" jstcache=
"8">onEvent</span><span class="subdued" jstcache="0">.addListener</span>(functio
n(<span jscontent="callSignature" jstcache="17">Type param1, Type param2</span>)
<span class="subdued" jstcache="0">{...}</span>); </div> <div class="descriptio
n" jstcache="0"> <p class="todo" jsdisplay="!description" jstcache="13">Undocume
nted.</p> <p jsdisplay="description" jsvalues=".innerHTML:description" jstcache=
"14"> A description from the json schema def of the event goes here. </p> <!-- P
ARAMETERS --> <h4 jstcache="0">Parameters</h4> <dl jstcache="0"> <div jsselect="
parameters" jstcache="23"> <dt jstcache="0"> <!-- Note: intentionally longer 80
columns --> <var jscontent="name" jstcache="8">paramName</var><em jstcache="0">
(<span jscontent="typeName" jstcache="22">paramType</span>)</em> </dt> <dd class
="todo" jsdisplay="!$this.description" jstcache="26">Undocumented.</dd> <dd jsdi
splay="$this.description" jsvalues=".innerHTML:$this.description" jstcache="27">
Description of this parameter from the json schema. </dd> <!-- OBJECT PROPERTIE
S --> <dd jsdisplay="_propertyList" jstcache="28"> <dl jstcache="0"> <div jssele
ct="_propertyList" jstcache="32"> <dt jstcache="0"> <!-- Note: intentionally lon
ger 80 columns --> <var jscontent="name" jstcache="8">paramName</var><em jstcach
e="0"> (<span class="optional" jsdisplay="optional" jstcache="31">optional </spa
n><span jscontent="typeName" jstcache="22">paramType</span>)</em> </dt> <dd clas
s="todo" jsdisplay="!$this.description" jstcache="26"> Undocumented. </dd> <dd j
sdisplay="$this.description" jsvalues=".innerHTML:$this.description" jstcache="2
7"> Description of this parameter from the json schema. </dd> </div> </dl> </dd>
</div> </dl> </div> <!-- /decription --> </div> <!-- /apiItem --> </div> <!-- /
apiGroup --> </div> <!-- /apiPage --> </div> <!-- /mainColumn --> </div> <!-- /p
ageContent --> <div id="pageFooter" --="" jstcache="0"> Copyright 2009 <br jstca
che="0"> TBD: copyright/license should be automatically included here </div> <!-
- /pageFooter --> </div> <!-- /container --> </body></html> |
2 <!-- This page is a placeholder for generated extensions api doc. Note: | |
3 1) The <head> information in this page is significant, should be uniform | |
4 across api docs and should be edited only with knowledge of the | |
5 templating mechanism. | |
6 2) The <body> tag *must* retain id="body" | |
7 3) All <body>.innerHTML is genereated as an rendering step. If viewed in a | |
8 browser, it will be re-generated from the template, json schema and | |
9 authored overview content. | |
10 4) The <body>.innerHTML is also generated by an offline step so that this | |
11 page may easily be indexed by search engines. | |
12 | |
13 TODO(rafaelw): Abstract this into a "pageshell" that becomes the single | |
14 version of page template shell and the "instance" pages (bookmarks.html, | |
15 etc...) can be generated with a build step. | |
16 --> | |
17 <!-- <html> must retain id="template --> | |
18 <html xmlns="http://www.w3.org/1999/xhtml"> | |
19 <!-- <head> data is significant and loads the needed libraries and styles --> | |
20 <head> | |
21 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | |
22 <title jscontent="pageTitle">pageTitle</title> | |
23 <link href="css/ApiRefStyles.css" rel="stylesheet" type="text/css"> | |
24 <script type="text/javascript" | |
25 src="../../../third_party/jstemplate/jstemplate_compiled.js"> | |
26 </script> | |
27 <script type="text/javascript" src="js/api_page_generator.js"></script> | |
28 <script> | |
29 // Re-render the page if the user-agent is chrome and it is being served as | |
30 // a file:/// scheme. This allows both the initial render to static as well | |
31 // as dynamic re-rendering for developers/doc-writers working on local changes. | |
32 window.onload = function() { | |
33 var chrome = navigator.userAgent.indexOf("Chrome") > -1; | |
34 var fileScheme = location.protocol == "file:"; | |
35 var regenerate = chrome && fileScheme; | |
36 //if (regenerate) { | |
37 window.renderPage(); | |
38 //} | |
39 } | |
40 </script> | |
41 </head> | |
42 <!-- <body> content is completely generated. Do not edit, as it will be | |
43 and rewritten. --> | |
44 <body class="hidden"> | |
45 </body> | |
46 </html> | |
OLD | NEW |