| 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 |