• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<div id="pageData-name" class="pageData">Browser Actions</div>
2
3<!-- BEGIN AUTHORED CONTENT -->
4<p>Use browser actions to put icons
5  in the main Google Chrome toolbar,
6  to the right of the address bar.
7  In addition to its <a href="#icon">icon</a>,
8  a browser action can also have
9  a <a href="#tooltip">tooltip</a>,
10  a <a href="#badge">badge</a>,
11  and a <a href="#popups">popup</a>.
12  </p>
13
14<p>
15In the following figure,
16the multicolored square
17to the right of the address bar
18is the icon for a browser action.
19A popup is below the icon.
20</p>
21
22<img src="images/browser-action.png"
23  width="363" height="226" />
24
25<p>
26If you want to create an icon that isn't always visible,
27use a <a href="pageAction.html">page action</a>
28instead of a browser action.
29</p>
30
31<p class="caution">
32<strong>Note:</strong>
33Packaged apps cannot use browser actions.
34</p>
35
36<!-- [PENDING: We should show tooltips and badges, as well.] -->
37
38<h2 id="manifest">Manifest</h2>
39
40<p>
41Register your browser action in the
42<a href="manifest.html">extension manifest</a>
43like this:
44</p>
45
46<pre>{
47  "name": "My extension",
48  ...
49  <b>"browser_action": {
50    "default_icon": "images/icon19.png", <em>// optional</em>
51    "default_title": "Google Mail",      <em>// optional; shown in tooltip</em>
52    "default_popup": "popup.html"        <em>// optional</em>
53  }</b>,
54  ...
55}</pre>
56
57<h2 id="ui">Parts of the UI</h2>
58
59<p>
60A browser action can have an <a href="#icon">icon</a>,
61a <a href="#tooltip">tooltip</a>,
62a <a href="#badge">badge</a>,
63and a <a href="#popups">popup</a>.
64</p>
65
66<h3 id="icon">Icon</h3>
67
68<p>Browser action icons can be up to 19 pixels wide and high.
69  Larger icons are resized to fit, but for best results,
70  use a 19-pixel square icon.</p>
71
72<p>You can set the icon in two ways:
73  using a static image or using the
74  HTML5 <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html">canvas element</a>.
75  Using static images is easier for simple applications,
76  but you can create more dynamic UIs &mdash;
77  such as smooth animation &mdash;
78  using the canvas element.
79  </p>
80
81<p>Static images can be in any format WebKit can display,
82  including BMP, GIF, ICO, JPEG, or PNG.
83  </p>
84
85<p>To set the icon,
86use the <b>default_icon</b> field of <b>browser_action</b>
87in the <a href="#manifest">manifest</a>,
88or call the <a href="#method-setIcon">setIcon()</a> method.
89
90
91<h3 id="tooltip">Tooltip</h3>
92
93<p>
94To set the tooltip,
95use the <b>default_title</b> field of <b>browser_action</b>
96in the <a href="#manifest">manifest</a>,
97or call the <a href="#method-setTitle">setTitle()</a> method.
98You can specify locale-specific strings for the <b>default_title</b> field;
99see <a href="i18n.html">Internationalization</a> for details.
100</p>
101
102<h3 id="badge">Badge</h3>
103
104<p>Browser actions can optionally display a <em>badge</em> &mdash;
105  a bit of text that is layered over the icon.
106  Badges make it easy to update the browser action
107  to display a small amount of information
108  about the state of the extension.</p>
109
110<p>Because the badge has limited space,
111   it should have 4 characters or less.
112  </p>
113
114<p>
115Set the text and color of the badge using
116<a href="#method-setBadgeText">setBadgeText()</a> and
117<a href="#method-setBadgeBackgroundColor">setBadgeBackgroundColor()</a>,
118respectively.
119<!-- [PENDING: if you have a color but no text, will anything display?] -->
120</p>
121
122
123<h3 id="popups">Popup</h3>
124
125<p>If a browser action has a popup,
126  the popup appears when the user clicks the icon.
127  The popup can contain any HTML contents that you like,
128  and it's automatically sized to fit its contents.
129  </p>
130
131<p>
132To add a popup to your browser action,
133create an HTML file with the popup's contents.
134Specify the HTML file in the <b>default_popup</b> field of <b>browser_action</b>
135in the <a href="#manifest">manifest</a>, or call the
136<a href="#method-setPopup">setPopup()</a> method.
137</p>
138
139<h2>Tips</h2>
140
141<p>For the best visual impact,
142  follow these guidelines:</p>
143
144<ul>
145  <li><b>Do</b> use browser actions for features
146    that make sense on most pages.
147  <li><b>Don't</b> use browser actions for features
148    that make sense for only a few pages.
149    Use <a href="pageAction.html">page actions</a> instead.
150  <li><b>Do</b> use big, colorful icons that make the most of
151    the 19x19-pixel space.
152    Browser action icons should seem a little bigger
153    and heavier than page action icons.
154  <li><b>Don't</b> attempt to mimic
155    Google Chrome's monochrome "wrench" icon.
156    That doesn't work well with themes, and anyway,
157    extensions should stand out a little.
158  <li><b>Do</b> use alpha transparency
159    to add soft edges to your icon.
160    Because many people use themes,
161    your icon should look nice
162    on a variety of background colors.
163  <li><b>Don't</b> constantly animate your icon.
164    That's just annoying.
165</ul>
166
167<h2 id="examples"> Examples </h2>
168
169<p>
170You can find simple examples of using browser actions in the
171<a href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/browserAction/">examples/api/browserAction</a>
172directory.
173For other examples and for help in viewing the source code, see
174<a href="samples.html">Samples</a>.
175</p>
176
177<!-- END AUTHORED CONTENT -->
178