OLD | NEW |
1 <h1>Frequently Asked Questions</h1> | 1 <h1>Frequently Asked Questions</h1> |
2 | 2 |
3 | 3 |
4 <!-- --> | 4 <!-- --> |
5 | 5 |
6 <p> | 6 <p> |
7 If you don't find an answer to your question here, | 7 If you don't find an answer to your question here, |
8 try the | 8 try the |
9 <a href="http://code.google.com/chrome/webstore/faq.html">Chrome Web Store FAQ</
a>, the | 9 <a href="http://code.google.com/chrome/webstore/faq">Chrome Web Store FAQ</a>, t
he |
10 <a href="http://stackoverflow.com/questions/tagged/google-chrome-extension">[goo
gle-chrome-extension] tag on Stack Overflow</a>, the | 10 <a href="http://stackoverflow.com/questions/tagged/google-chrome-extension">[goo
gle-chrome-extension] tag on Stack Overflow</a>, the |
11 <a href="http://groups.google.com/a/chromium.org/group/chromium-extensions">grou
p</a>, or the | 11 <a href="http://groups.google.com/a/chromium.org/group/chromium-extensions">grou
p</a>, or the |
12 <a href="http://www.google.com/support/chrome_webstore/">store help</a>. | 12 <a href="http://www.google.com/support/chrome_webstore/">store help</a>. |
13 </p> | 13 </p> |
14 | 14 |
15 <div id="faq-TOC"> | 15 <div id="faq-TOC"> |
16 <h4 id="general">General</h4> | 16 <h4 id="general">General</h4> |
17 <ul> | 17 <ul> |
18 <li><a href="#faq-gen-01">What are Google Chrome Extensions?</a></li> | 18 <li><a href="#faq-gen-01">What are Google Chrome Extensions?</a></li> |
19 {{^is_apps}} | 19 {{^is_apps}} |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 <p> | 82 <p> |
83 Click the Chrome menu icon | 83 Click the Chrome menu icon |
84 <img src="{{static}}/images/hotdogmenu.png" height="29" width="29" alt="" | 84 <img src="{{static}}/images/hotdogmenu.png" height="29" width="29" alt="" |
85 class="nomargin" /> | 85 class="nomargin" /> |
86 and select <b>Extensions</b> from the <b>Tools</b> menu. | 86 and select <b>Extensions</b> from the <b>Tools</b> menu. |
87 Ensure that the "Developer mode" checkbox in the top right-hand corner | 87 Ensure that the "Developer mode" checkbox in the top right-hand corner |
88 is checked. | 88 is checked. |
89 Now you can reload extensions, | 89 Now you can reload extensions, |
90 load an unpacked directory of files as if it were a packaged extension, | 90 load an unpacked directory of files as if it were a packaged extension, |
91 and more. For a complete tutorial, see | 91 and more. For a complete tutorial, see |
92 <a href="/extensions/getstarted.html">Getting Started</a>. | 92 <a href="/extensions/getstarted">Getting Started</a>. |
93 </p> | 93 </p> |
94 {{/is_apps}} | 94 {{/is_apps}} |
95 | 95 |
96 <h3 id="faq-gen-02">What technologies are used to write extensions for Chrome?</
h3> | 96 <h3 id="faq-gen-02">What technologies are used to write extensions for Chrome?</
h3> |
97 <p> | 97 <p> |
98 Extensions are written using the same standard web | 98 Extensions are written using the same standard web |
99 technologies that developers use to create websites. HTML is used as a | 99 technologies that developers use to create websites. HTML is used as a |
100 content markup language, CSS is used for styling, and JavaScript for | 100 content markup language, CSS is used for styling, and JavaScript for |
101 scripting. Because Chrome supports HTML5 and CSS3, developers can | 101 scripting. Because Chrome supports HTML5 and CSS3, developers can |
102 use the latest open web technologies such as canvas and CSS animations in | 102 use the latest open web technologies such as canvas and CSS animations in |
103 their extensions. Extensions also have access to several | 103 their extensions. Extensions also have access to several |
104 <a href="/extensions/api_other.html">JavaScript APIs</a> | 104 <a href="/extensions/api_other">JavaScript APIs</a> |
105 that help perform functions like JSON encoding and interacting with the | 105 that help perform functions like JSON encoding and interacting with the |
106 browser. | 106 browser. |
107 </p> | 107 </p> |
108 | 108 |
109 | 109 |
110 <h3 id="faq-gen-03">Are extensions fetched from the web every time the browser i
s loaded?</h3> | 110 <h3 id="faq-gen-03">Are extensions fetched from the web every time the browser i
s loaded?</h3> |
111 <p> | 111 <p> |
112 Extensions are downloaded by the Chrome browser upon install, and | 112 Extensions are downloaded by the Chrome browser upon install, and |
113 are subsequently run off of the local disk in order to speed up | 113 are subsequently run off of the local disk in order to speed up |
114 performance. However, if a new version of the extension is pushed online, | 114 performance. However, if a new version of the extension is pushed online, |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
155 combination. The rest of the information is metadata about when the releases | 155 combination. The rest of the information is metadata about when the releases |
156 were first pushed, as well as revision numbers associated with each build. | 156 were first pushed, as well as revision numbers associated with each build. |
157 </p> | 157 </p> |
158 | 158 |
159 | 159 |
160 <h2 id="capabilities2">Capabilities</h2> | 160 <h2 id="capabilities2">Capabilities</h2> |
161 | 161 |
162 <h3 id="faq-dev-02">Can extensions make cross-domain Ajax requests?</h3> | 162 <h3 id="faq-dev-02">Can extensions make cross-domain Ajax requests?</h3> |
163 <p> | 163 <p> |
164 Yes. Extensions can make cross-domain requests. See | 164 Yes. Extensions can make cross-domain requests. See |
165 <a href="/extensions/xhr.html">this page</a> | 165 <a href="/extensions/xhr">this page</a> |
166 for more information. | 166 for more information. |
167 </p> | 167 </p> |
168 | 168 |
169 <h3 id="faq-dev-03">Can extensions use 3rd party web services?</h3> | 169 <h3 id="faq-dev-03">Can extensions use 3rd party web services?</h3> |
170 <p> | 170 <p> |
171 Yes. Extensions are capable of making cross-domain Ajax | 171 Yes. Extensions are capable of making cross-domain Ajax |
172 requests, so they can call remote APIs directly. APIs that provide data | 172 requests, so they can call remote APIs directly. APIs that provide data |
173 in JSON format are particularly easy to use. | 173 in JSON format are particularly easy to use. |
174 </p> | 174 </p> |
175 | 175 |
(...skipping 20 matching lines...) Expand all Loading... |
196 <h3 id="faq-dev-04">Can extensions use OAuth?</h3> | 196 <h3 id="faq-dev-04">Can extensions use OAuth?</h3> |
197 <p> | 197 <p> |
198 Yes, there are extensions that use OAuth to access remote data | 198 Yes, there are extensions that use OAuth to access remote data |
199 APIs. Most developers find it convenient to use a | 199 APIs. Most developers find it convenient to use a |
200 <a href="http://unitedheroes.net/OAuthSimple/js/OAuthSimple.js">JavaScript OAu
th library</a> | 200 <a href="http://unitedheroes.net/OAuthSimple/js/OAuthSimple.js">JavaScript OAu
th library</a> |
201 in order to simplify the process of signing OAuth requests. | 201 in order to simplify the process of signing OAuth requests. |
202 </p> | 202 </p> |
203 | 203 |
204 <h3 id="faq-dev-06">Can extensions load DLLs?</h3> | 204 <h3 id="faq-dev-06">Can extensions load DLLs?</h3> |
205 <p> | 205 <p> |
206 Yes, using the <a href="npapi.html">NPAPI interface</a>. | 206 Yes, using the <a href="npapi">NPAPI interface</a>. |
207 Because of the possibility for abuse, though, we will review your extension | 207 Because of the possibility for abuse, though, we will review your extension |
208 before hosting it in the Chrome Web Store. | 208 before hosting it in the Chrome Web Store. |
209 </p> | 209 </p> |
210 | 210 |
211 <h3 id="faq-dev-05">Can extensions create UI outside of the rendered web page?</
h3> | 211 <h3 id="faq-dev-05">Can extensions create UI outside of the rendered web page?</
h3> |
212 <p> | 212 <p> |
213 Yes, your extension may add buttons to the Chrome browser's user interface. | 213 Yes, your extension may add buttons to the Chrome browser's user interface. |
214 See <a href="browserAction.html">browser actions</a> and | 214 See <a href="browserAction">browser actions</a> and |
215 <a href="pageAction.html">page actions</a> for more information. | 215 <a href="pageAction">page actions</a> for more information. |
216 </p> | 216 </p> |
217 <p> | 217 <p> |
218 An extension may also create popup notifications, which exist outside of the | 218 An extension may also create popup notifications, which exist outside of the |
219 browser window. See the <a href="desktop_notifications.html">desktop | 219 browser window. See the <a href="desktop_notifications">desktop |
220 notifications</a> documentation for more details. | 220 notifications</a> documentation for more details. |
221 </p> | 221 </p> |
222 | 222 |
223 <h3 id="faq-interact-chrome">Can extensions listen to clicks on Chrome tabs and | 223 <h3 id="faq-interact-chrome">Can extensions listen to clicks on Chrome tabs and |
224 navigation buttons?</h3> | 224 navigation buttons?</h3> |
225 <p> | 225 <p> |
226 No. Extensions are limited to listening to the events described in the <a | 226 No. Extensions are limited to listening to the events described in the <a |
227 href="api_index.html">API documentation</a>. | 227 href="api_index">API documentation</a>. |
228 </p> | 228 </p> |
229 | 229 |
230 <h3 id="faq-dev-11">Can two extensions communicate with each other?</h3> | 230 <h3 id="faq-dev-11">Can two extensions communicate with each other?</h3> |
231 <p> | 231 <p> |
232 Yes, extensions may pass messages to other extensions. See the | 232 Yes, extensions may pass messages to other extensions. See the |
233 <a href="messaging.html#external">message passing documentation</a> | 233 <a href="messaging#external">message passing documentation</a> |
234 for more information. | 234 for more information. |
235 </p> | 235 </p> |
236 | 236 |
237 {{^is_apps}} | 237 {{^is_apps}} |
238 <h3 id="faq-dev-13">Can extensions use Google Analytics?</h3> | 238 <h3 id="faq-dev-13">Can extensions use Google Analytics?</h3> |
239 <p> | 239 <p> |
240 Yes, since extensions are built just like websites, they can use | 240 Yes, since extensions are built just like websites, they can use |
241 <a href="http://www.google.com/analytics/">Google Analytics</a> to track | 241 <a href="http://www.google.com/analytics/">Google Analytics</a> to track |
242 usage. However, you must modify the tracking code to pull | 242 usage. However, you must modify the tracking code to pull |
243 an HTTPS version of the Google Analytics library. See | 243 an HTTPS version of the Google Analytics library. See |
244 <a href="tut_analytics.html">this tutorial</a> for more information on doing | 244 <a href="tut_analytics">this tutorial</a> for more information on doing |
245 this. | 245 this. |
246 </p> | 246 </p> |
247 {{/is_apps}} | 247 {{/is_apps}} |
248 | 248 |
249 {{^is_apps}} | 249 {{^is_apps}} |
250 <h3 id="faq-dev-15">Can extensions modify chrome:// URLs?</h3> | 250 <h3 id="faq-dev-15">Can extensions modify chrome:// URLs?</h3> |
251 <p> | 251 <p> |
252 No. The extensions APIs have been designed to minimize backwards | 252 No. The extensions APIs have been designed to minimize backwards |
253 compatibility issues that can arise when new versions of the browser are | 253 compatibility issues that can arise when new versions of the browser are |
254 pushed. Allowing content scripts on <code>chrome://</code> | 254 pushed. Allowing content scripts on <code>chrome://</code> |
255 URLs would mean that developers would begin to rely on the DOM, CSS, and | 255 URLs would mean that developers would begin to rely on the DOM, CSS, and |
256 JavaScript of these pages to stay the same. In the best case, these pages | 256 JavaScript of these pages to stay the same. In the best case, these pages |
257 could not be updated as quickly as they are being updated right now. | 257 could not be updated as quickly as they are being updated right now. |
258 In the worst case, it could mean that an update to one | 258 In the worst case, it could mean that an update to one |
259 of these pages could cause an extension to break, causing key parts of the | 259 of these pages could cause an extension to break, causing key parts of the |
260 browser to stop working for users of that extension. | 260 browser to stop working for users of that extension. |
261 </p> | 261 </p> |
262 | 262 |
263 <p> | 263 <p> |
264 The reason that <a href="override.html">replacing the content</a> | 264 The reason that <a href="override">replacing the content</a> |
265 hosted at these URLs entirely is | 265 hosted at these URLs entirely is |
266 allowed is because it forces an extension developer to implement all of the | 266 allowed is because it forces an extension developer to implement all of the |
267 functionality they want without depending on the browser's internal implementa
tion | 267 functionality they want without depending on the browser's internal implementa
tion |
268 to stay the same. | 268 to stay the same. |
269 </p> | 269 </p> |
270 {{/is_apps}} | 270 {{/is_apps}} |
271 | 271 |
272 <h3 id="faq-open-popups">Can extensions open browser/page action popups without | 272 <h3 id="faq-open-popups">Can extensions open browser/page action popups without |
273 user interaction?</h3> | 273 user interaction?</h3> |
274 <p> | 274 <p> |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
308 | 308 |
309 <h3 id="faq-dev-09">How much data can I store in localStorage?</h3> | 309 <h3 id="faq-dev-09">How much data can I store in localStorage?</h3> |
310 <p> | 310 <p> |
311 Extensions can store up to 5MB of data in localStorage. | 311 Extensions can store up to 5MB of data in localStorage. |
312 </p> | 312 </p> |
313 | 313 |
314 {{^is_apps}} | 314 {{^is_apps}} |
315 <h3 id="faq-dev-10">How do I create an options menu for my application?</h3> | 315 <h3 id="faq-dev-10">How do I create an options menu for my application?</h3> |
316 <p> | 316 <p> |
317 You can let users set options for your extension by creating an | 317 You can let users set options for your extension by creating an |
318 <a href="/extensions/options.html">options page</a>, | 318 <a href="/extensions/options">options page</a>, |
319 which is a simple HTML page that will be loaded when a user clicks the | 319 which is a simple HTML page that will be loaded when a user clicks the |
320 "options" button for your extension. This page can read and write settings | 320 "options" button for your extension. This page can read and write settings |
321 to localStorage, or even send options to a web server so that they can be | 321 to localStorage, or even send options to a web server so that they can be |
322 persisted across browsers. | 322 persisted across browsers. |
323 </p> | 323 </p> |
324 {{/is_apps}} | 324 {{/is_apps}} |
325 | 325 |
326 <h3 id="faq-dev-12">What debugging tools are available to extension developers?<
/h3> | 326 <h3 id="faq-dev-12">What debugging tools are available to extension developers?<
/h3> |
327 <p> | 327 <p> |
328 Chrome's built-in developer tools can be used to debug extensions | 328 Chrome's built-in developer tools can be used to debug extensions |
329 as well as web pages. See this | 329 as well as web pages. See this |
330 <a href="/extensions/tut_debugging.html ">tutorial on debugging extensions</a> | 330 <a href="/extensions/tut_debugging ">tutorial on debugging extensions</a> |
331 for more information. | 331 for more information. |
332 </p> | 332 </p> |
333 | 333 |
334 <h3 id="faq-dev-16">Why do wildcard matches not work for top level domains | 334 <h3 id="faq-dev-16">Why do wildcard matches not work for top level domains |
335 (TLDs)?</h3> | 335 (TLDs)?</h3> |
336 <p> | 336 <p> |
337 You cannot use wildcard match patterns like <code>http://google.*/*</code> | 337 You cannot use wildcard match patterns like <code>http://google.*/*</code> |
338 to match TLDs (like <code>http://google.es</code> and | 338 to match TLDs (like <code>http://google.es</code> and |
339 <code>http://google.fr</code>) due to the | 339 <code>http://google.fr</code>) due to the |
340 complexity of actually restricting such a match to only the desired domains. | 340 complexity of actually restricting such a match to only the desired domains. |
(...skipping 10 matching lines...) Expand all Loading... |
351 privileges. | 351 privileges. |
352 </p> | 352 </p> |
353 <p> | 353 <p> |
354 You should explicitly enumerate the TLDs that you wish to run | 354 You should explicitly enumerate the TLDs that you wish to run |
355 your extension on. | 355 your extension on. |
356 </p> | 356 </p> |
357 | 357 |
358 <h3 id="faq-management">Why does the management API not fire events when my | 358 <h3 id="faq-management">Why does the management API not fire events when my |
359 extension is installed/uninstalled?</h3> | 359 extension is installed/uninstalled?</h3> |
360 <p> | 360 <p> |
361 The <a href="management.html">management API</a> was intended to help create | 361 The <a href="management">management API</a> was intended to help create |
362 new tab page replacement extensions. It was not intended to fire | 362 new tab page replacement extensions. It was not intended to fire |
363 install/uninstall events for the current extension. | 363 install/uninstall events for the current extension. |
364 </p> | 364 </p> |
365 | 365 |
366 <h3 id="faq-firstrun">How can an extension determine whether it is running for | 366 <h3 id="faq-firstrun">How can an extension determine whether it is running for |
367 the first time?</h3> | 367 the first time?</h3> |
368 <p> | 368 <p> |
369 You can listen to the | 369 You can listen to the |
370 $(ref:runtime.onInstalled) | 370 $(ref:runtime.onInstalled) |
371 event. See <a href="#faq-lifecycle-events">this FAQ entry</a>. | 371 event. See <a href="#faq-lifecycle-events">this FAQ entry</a>. |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
482 <a href="http://groups.google.com/a/chromium.org/group/chromium-extensions/t
opics"> | 482 <a href="http://groups.google.com/a/chromium.org/group/chromium-extensions/t
opics"> |
483 discussion group</a> with a link back to your request. | 483 discussion group</a> with a link back to your request. |
484 </li> | 484 </li> |
485 <li> | 485 <li> |
486 If you originally reported your request on the discussion group and were | 486 If you originally reported your request on the discussion group and were |
487 directed to this FAQ entry, reply to your original thread with a link | 487 directed to this FAQ entry, reply to your original thread with a link |
488 to the ticket you starred or opened. This will make it easier for others | 488 to the ticket you starred or opened. This will make it easier for others |
489 with the same request to find the correct ticket. | 489 with the same request to find the correct ticket. |
490 </li> | 490 </li> |
491 </ol> | 491 </ol> |
OLD | NEW |