<div id="pageData-name" class="pageData">Browser Actions</div>
<!-- BEGIN AUTHORED CONTENT -->
<p>Use browser actions to put icons
in the main Google Chrome toolbar,
to the right of the address bar.
In addition to its <a href="#icon">icon</a>,
a browser action can also have
a <a href="#tooltip">tooltip</a>,
a <a href="#badge">badge</a>,
and a <a href="#popups">popup</a>.
</p>
<p>
In the following figure,
the multicolored square
to the right of the address bar
is the icon for a browser action.
A popup is below the icon.
</p>
<img src="images/browser-action.png"
width="363" height="226" />
<p>
If you want to create an icon that isn't always visible,
use a <a href="pageAction.html">page action</a>
instead of a browser action.
</p>
<p class="caution">
<strong>Note:</strong>
Packaged apps cannot use browser actions.
</p>
<!-- [PENDING: We should show tooltips and badges, as well.] -->
<h2 id="manifest">Manifest</h2>
<p>
Register your browser action in the
<a href="manifest.html">extension manifest</a>
like this:
</p>
<pre>{
"name": "My extension",
...
<b>"browser_action": {
"default_icon": "images/icon19.png", <em>// optional</em>
"default_title": "Google Mail", <em>// optional; shown in tooltip</em>
"default_popup": "popup.html" <em>// optional</em>
}</b>,
...
}</pre>
<h2 id="ui">Parts of the UI</h2>
<p>
A browser action can have an <a href="#icon">icon</a>,
a <a href="#tooltip">tooltip</a>,
a <a href="#badge">badge</a>,
and a <a href="#popups">popup</a>.
</p>
<h3 id="icon">Icon</h3>
<p>Browser action icons can be up to 19 pixels wide and high.
Larger icons are resized to fit, but for best results,
use a 19-pixel square icon.</p>
<p>You can set the icon in two ways:
using a static image or using the
HTML5 <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html">canvas element</a>.
Using static images is easier for simple applications,
but you can create more dynamic UIs —
such as smooth animation —
using the canvas element.
</p>
<p>Static images can be in any format WebKit can display,
including BMP, GIF, ICO, JPEG, or PNG.
</p>
<p>To set the icon,
use the <b>default_icon</b> field of <b>browser_action</b>
in the <a href="#manifest">manifest</a>,
or call the <a href="#method-setIcon">setIcon()</a> method.
<h3 id="tooltip">Tooltip</h3>
<p>
To set the tooltip,
use the <b>default_title</b> field of <b>browser_action</b>
in the <a href="#manifest">manifest</a>,
or call the <a href="#method-setTitle">setTitle()</a> method.
You can specify locale-specific strings for the <b>default_title</b> field;
see <a href="i18n.html">Internationalization</a> for details.
</p>
<h3 id="badge">Badge</h3>
<p>Browser actions can optionally display a <em>badge</em> —
a bit of text that is layered over the icon.
Badges make it easy to update the browser action
to display a small amount of information
about the state of the extension.</p>
<p>Because the badge has limited space,
it should have 4 characters or less.
</p>
<p>
Set the text and color of the badge using
<a href="#method-setBadgeText">setBadgeText()</a> and
<a href="#method-setBadgeBackgroundColor">setBadgeBackgroundColor()</a>,
respectively.
<!-- [PENDING: if you have a color but no text, will anything display?] -->
</p>
<h3 id="popups">Popup</h3>
<p>If a browser action has a popup,
the popup appears when the user clicks the icon.
The popup can contain any HTML contents that you like,
and it's automatically sized to fit its contents.
</p>
<p>
To add a popup to your browser action,
create an HTML file with the popup's contents.
Specify the HTML file in the <b>default_popup</b> field of <b>browser_action</b>
in the <a href="#manifest">manifest</a>, or call the
<a href="#method-setPopup">setPopup()</a> method.
</p>
<h2>Tips</h2>
<p>For the best visual impact,
follow these guidelines:</p>
<ul>
<li><b>Do</b> use browser actions for features
that make sense on most pages.
<li><b>Don't</b> use browser actions for features
that make sense for only a few pages.
Use <a href="pageAction.html">page actions</a> instead.
<li><b>Do</b> use big, colorful icons that make the most of
the 19x19-pixel space.
Browser action icons should seem a little bigger
and heavier than page action icons.
<li><b>Don't</b> attempt to mimic
Google Chrome's monochrome "wrench" icon.
That doesn't work well with themes, and anyway,
extensions should stand out a little.
<li><b>Do</b> use alpha transparency
to add soft edges to your icon.
Because many people use themes,
your icon should look nice
on a variety of background colors.
<li><b>Don't</b> constantly animate your icon.
That's just annoying.
</ul>
<h2 id="examples"> Examples </h2>
<p>
You can find simple examples of using browser actions in the
<a href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/browserAction/">examples/api/browserAction</a>
directory.
For other examples and for help in viewing the source code, see
<a href="samples.html">Samples</a>.
</p>
<!-- END AUTHORED CONTENT -->