| OLD | NEW |
| 1 <!DOCTYPE html><!-- This page is a placeholder for generated extensions api doc.
Note: | 1 <!DOCTYPE html><!-- This page is a placeholder for generated extensions api doc.
Note: |
| 2 1) The <head> information in this page is significant, should be uniform | 2 1) The <head> information in this page is significant, should be uniform |
| 3 across api docs and should be edited only with knowledge of the | 3 across api docs and should be edited only with knowledge of the |
| 4 templating mechanism. | 4 templating mechanism. |
| 5 3) All <body>.innerHTML is genereated as an rendering step. If viewed in a | 5 3) All <body>.innerHTML is genereated as an rendering step. If viewed in a |
| 6 browser, it will be re-generated from the template, json schema and | 6 browser, it will be re-generated from the template, json schema and |
| 7 authored overview content. | 7 authored overview content. |
| 8 4) The <body>.innerHTML is also generated by an offline step so that this | 8 4) The <body>.innerHTML is also generated by an offline step so that this |
| 9 page may easily be indexed by search engines. | 9 page may easily be indexed by search engines. |
| 10 --><html xmlns="http://www.w3.org/1999/xhtml"><head> | 10 --><html xmlns="http://www.w3.org/1999/xhtml"><head> |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 163 <ul> | 163 <ul> |
| 164 <li>Browser UI | 164 <li>Browser UI |
| 165 <ul> | 165 <ul> |
| 166 <li><a href="browserAction.html">Browser Actions</a></li> | 166 <li><a href="browserAction.html">Browser Actions</a></li> |
| 167 <li><a href="contextMenus.html">Context Menus</a></li> | 167 <li><a href="contextMenus.html">Context Menus</a></li> |
| 168 <li><a href="notifications.html">Desktop Notifications</a></li
> | 168 <li><a href="notifications.html">Desktop Notifications</a></li
> |
| 169 <li><a href="omnibox.html">Omnibox</a></li> | 169 <li><a href="omnibox.html">Omnibox</a></li> |
| 170 <li><a href="options.html">Options Pages</a></li> | 170 <li><a href="options.html">Options Pages</a></li> |
| 171 <li><a href="override.html">Override Pages</a></li> | 171 <li><a href="override.html">Override Pages</a></li> |
| 172 <li><a href="pageAction.html">Page Actions</a></li> | 172 <li><a href="pageAction.html">Page Actions</a></li> |
| 173 <li><a href="themes.html">Themes</a></li> | |
| 174 </ul> | 173 </ul> |
| 175 </li> | 174 </li> |
| 176 <li>Browser Interaction | 175 <li>Browser Interaction |
| 177 <ul> | 176 <ul> |
| 178 <li><a href="bookmarks.html">Bookmarks</a></li> | 177 <li><a href="bookmarks.html">Bookmarks</a></li> |
| 179 <li><a href="cookies.html">Cookies</a></li> | 178 <li><a href="cookies.html">Cookies</a></li> |
| 180 <li><a href="events.html">Events</a></li> | 179 <li><a href="events.html">Events</a></li> |
| 181 <li><a href="history.html">History</a></li> | 180 <li><a href="history.html">History</a></li> |
| 182 <li><a href="management.html">Management</a></li> | 181 <li><a href="management.html">Management</a></li> |
| 183 <li><a href="tabs.html">Tabs</a></li> | 182 <li><a href="tabs.html">Tabs</a></li> |
| (...skipping 13 matching lines...) Expand all Loading... |
| 197 </ul> | 196 </ul> |
| 198 </li> | 197 </li> |
| 199 <li>Finishing | 198 <li>Finishing |
| 200 <ul> | 199 <ul> |
| 201 <li><a href="hosting.html">Hosting</a></li> | 200 <li><a href="hosting.html">Hosting</a></li> |
| 202 <li><a href="external_extensions.html">Other Deployment Option
s</a></li> | 201 <li><a href="external_extensions.html">Other Deployment Option
s</a></li> |
| 203 </ul> | 202 </ul> |
| 204 </li> | 203 </li> |
| 205 </ul> | 204 </ul> |
| 206 </li> | 205 </li> |
| 206 <li><h2><a href="apps.html">Packaged Apps</a></h2></li> |
| 207 <li><h2><a href="tutorials.html">Tutorials</a></h2> | 207 <li><h2><a href="tutorials.html">Tutorials</a></h2> |
| 208 <ul> | 208 <ul> |
| 209 <li><a href="tut_debugging.html">Debugging</a></li> | 209 <li><a href="tut_debugging.html">Debugging</a></li> |
| 210 <li><a href="tut_analytics.html">Google Analytics</a></li> | 210 <li><a href="tut_analytics.html">Google Analytics</a></li> |
| 211 <li><a href="tut_oauth.html">OAuth</a></li> | 211 <li><a href="tut_oauth.html">OAuth</a></li> |
| 212 </ul> | 212 </ul> |
| 213 </li> | 213 </li> |
| 214 <li><h2>Reference</h2> | 214 <li><h2>Reference</h2> |
| 215 <ul> | 215 <ul> |
| 216 <li>Formats | 216 <li>Formats |
| 217 <ul> | 217 <ul> |
| 218 <li><a href="manifest.html">Manifest Files</a></li> | 218 <li><a href="manifest.html">Manifest Files</a></li> |
| 219 <li><a href="match_patterns.html">Match Patterns</a></li> | 219 <li><a href="match_patterns.html">Match Patterns</a></li> |
| 220 <!-- <li>Packages (.crx)</li> --> | |
| 221 </ul> | 220 </ul> |
| 222 </li> | 221 </li> |
| 222 <li><a href="permission_warnings.html">Permission Warnings</a></li
> |
| 223 <li><a href="api_index.html">chrome.* APIs</a></li> | 223 <li><a href="api_index.html">chrome.* APIs</a></li> |
| 224 <li><a href="api_other.html">Other APIs</a></li> | 224 <li><a href="api_other.html">Other APIs</a></li> |
| 225 </ul> | 225 </ul> |
| 226 </li> | 226 </li> |
| 227 <li><h2><a href="samples.html">Samples</a></h2></li> | 227 <li><h2><a href="samples.html">Samples</a></h2></li> |
| 228 <div class="line"> </div> | 228 <div class="line"> </div> |
| 229 <li><h2>More</h2> | 229 <li><h2>More</h2> |
| 230 <ul> | 230 <ul> |
| 231 <li><a href="http://code.google.com/chrome/webstore/docs/index.htm
l">Chrome Web Store</a></li> | 231 <li><a href="http://code.google.com/chrome/webstore/docs/index.htm
l">Chrome Web Store</a></li> |
| 232 <li><a href="http://code.google.com/chrome/apps/docs/developers_gu
ide.html">Installable Web Apps</a></li> | 232 <li><a href="http://code.google.com/chrome/apps/docs/developers_gu
ide.html">Hosted Apps</a></li> |
| 233 <li><a href="themes.html">Themes</a></li> | 233 <li><a href="themes.html">Themes</a></li> |
| 234 </ul> | 234 </ul> |
| 235 </li> | 235 </li> |
| 236 </ul> | 236 </ul> |
| 237 </div> | 237 </div> |
| 238 <script> | 238 <script> |
| 239 initToggles(); | 239 initToggles(); |
| 240 </script> | 240 </script> |
| 241 | 241 |
| 242 <div class="g-unit" id="gc-pagecontent"> | 242 <div class="g-unit" id="gc-pagecontent"> |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 303 | 303 |
| 304 <!-- STATIC CONTENT PLACEHOLDER --> | 304 <!-- STATIC CONTENT PLACEHOLDER --> |
| 305 <div id="static"><div id="pageData-name" class="pageData">Frequently Ask
ed Questions</div> | 305 <div id="static"><div id="pageData-name" class="pageData">Frequently Ask
ed Questions</div> |
| 306 | 306 |
| 307 | 307 |
| 308 <!-- <div id="pageData-showTOC" class="pageData">true</div> --> | 308 <!-- <div id="pageData-showTOC" class="pageData">true</div> --> |
| 309 | 309 |
| 310 <p> | 310 <p> |
| 311 If you don't find an answer to your question here, | 311 If you don't find an answer to your question here, |
| 312 try the | 312 try the |
| 313 <a href="http://groups.google.com/a/chromium.org/group/chromium-extensions">grou
p</a> or the | 313 <a href="http://code.google.com/chrome/webstore/faq.html">Chrome Web Store FAQ</
a>, the |
| 314 <a href="http://groups.google.com/a/chromium.org/group/chromium-extensions">grou
p</a>, or the |
| 314 <a href="http://www.google.com/support/chrome/bin/answer.py?answer=113909">galle
ry help</a>. | 315 <a href="http://www.google.com/support/chrome/bin/answer.py?answer=113909">galle
ry help</a>. |
| 316 <!-- PENDING: add a link to store help --> |
| 315 </p> | 317 </p> |
| 316 | 318 |
| 317 <div id="faq-TOC"> | 319 <div id="faq-TOC"> |
| 318 <h4>General</h4> | 320 <h4>General</h4> |
| 319 <ul> | 321 <ul> |
| 320 <li><a href="#faq-gen-01">What are Google Chrome Extensions?</a></li> | 322 <li><a href="#faq-gen-01">What are Google Chrome Extensions?</a></li> |
| 321 <li><a href="#faq-gen-02">What technologies are used to write extensions for
Google Chrome?</a></li> | 323 <li><a href="#faq-gen-02">What technologies are used to write extensions for
Chrome?</a></li> |
| 322 <li><a href="#faq-gen-03">Are extensions fetched from the web every time the
browser is loaded?</a></li> | 324 <li><a href="#faq-gen-03">Are extensions fetched from the web every time the
browser is loaded?</a></li> |
| 323 </ul> | 325 </ul> |
| 324 <h4>Development</h4> | 326 <h4>Development</h4> |
| 325 <ul> | 327 <ul> |
| 326 <li><a href="#faq-dev-01">How can I set up Google Chrome for extension devel
opment?</a></li> | 328 <li><a href="#faq-dev-01">How can I set up Chrome for extension development?
</a></li> |
| 327 <li><a href="#faq-dev-02">Can I make cross-domain Ajax requests in an extens
ion?</a></li> | 329 <li><a href="#faq-dev-02">Can I make cross-domain Ajax requests in an extens
ion?</a></li> |
| 328 <li><a href="#faq-dev-03">Can I use 3rd party web services in my extension?<
/a></li> | 330 <li><a href="#faq-dev-03">Can I use 3rd party web services in my extension?<
/a></li> |
| 329 <li><a href="#faq-dev-04">Can I use OAuth in my extensions?</a></li> | 331 <li><a href="#faq-dev-04">Can I use OAuth in my extensions?</a></li> |
| 330 <li><a href="#faq-dev-05">What UI controls can I create for my extension?</a
></li> | 332 <li><a href="#faq-dev-05">What UI controls can I create for my extension?</a
></li> |
| 331 <li><a href="#faq-dev-06">Can I load DLLs in my extension?</a></li> | 333 <li><a href="#faq-dev-06">Can I load DLLs in my extension?</a></li> |
| 332 <li><a href="#faq-dev-07">Can Google Chrome Extensions encode/decode JSON da
ta?</a></li> | 334 <li><a href="#faq-dev-07">Can extensions encode/decode JSON data?</a></li> |
| 333 <li><a href="#faq-dev-08">Can I store data locally in my extension?</a></li> | 335 <li><a href="#faq-dev-08">Can I store data locally in my extension?</a></li> |
| 334 <li><a href="#faq-dev-09">How much data can I store in localStorage?</a></li
> | 336 <li><a href="#faq-dev-09">How much data can I store in localStorage?</a></li
> |
| 335 <li><a href="#faq-dev-10">Can I create an options menu for my application?</
a></li> | 337 <li><a href="#faq-dev-10">Can I create an options menu for my application?</
a></li> |
| 336 <li><a href="#faq-dev-11">Can two extensions communicate with each other?</a
></li> | 338 <li><a href="#faq-dev-11">Can two extensions communicate with each other?</a
></li> |
| 337 <li><a href="#faq-dev-12">What debugging tools are available to extension de
velopers?</a></li> | 339 <li><a href="#faq-dev-12">What debugging tools are available to extension de
velopers?</a></li> |
| 338 <li><a href="#faq-dev-13">Can extensions use Google Analytics?</a></li> | 340 <li><a href="#faq-dev-13">Can extensions use Google Analytics?</a></li> |
| 339 <li><a href="#faq-dev-14">How do I determine which version of Google Chrome
is deployed to which channel?</a></li> | 341 <li><a href="#faq-dev-14">How do I determine which version of Chrome is depl
oyed to which channel?</a></li> |
| 340 <li><a href="#faq-dev-15">Can I add a content script to chrome:// URLs?</a><
/li> | 342 <li><a href="#faq-dev-15">Can I add a content script to chrome:// URLs?</a><
/li> |
| 341 <li><a href="#faq-dev-16">Why do wildcard matches not work for top level dom
ains (TLDs)?</a></li> | 343 <li><a href="#faq-dev-16">Why do wildcard matches not work for top level dom
ains (TLDs)?</a></li> |
| 342 </ul> | 344 </ul> |
| 343 <h4>Features and bugs</h4> | 345 <h4>Features and bugs</h4> |
| 344 <ul> | 346 <ul> |
| 345 <li><a href="#faq-fea-01">I think I've found a bug! How do I make sure it ge
ts fixed?</a></li> | 347 <li><a href="#faq-fea-01">I think I've found a bug! How do I make sure it ge
ts fixed?</a></li> |
| 346 <li><a href="#faq-fea-02">I have a feature request! How can I report it?</a>
</li> | 348 <li><a href="#faq-fea-02">I have a feature request! How can I report it?</a>
</li> |
| 347 </ul> | 349 </ul> |
| 348 </div> | 350 </div> |
| 349 | 351 |
| 350 <h2>General</h2> | 352 <h2>General</h2> |
| 351 | 353 |
| 352 <h3 id="faq-gen-01">What are Google Chrome Extensions?</h3> | 354 <h3 id="faq-gen-01">What are Google Chrome Extensions?</h3> |
| 353 <p> | 355 <p> |
| 354 Google Chrome Extensions are applications that run inside the Google | 356 Google Chrome Extensions are applications that run inside the |
| 355 Chrome browser and provide additional functionality, integration with third | 357 Chrome browser and provide additional functionality, integration with third |
| 356 party websites or services, and customized browsing experiences. | 358 party websites or services, and customized browsing experiences. |
| 357 </p> | 359 </p> |
| 358 | 360 |
| 359 <h3 id="faq-gen-02">What technologies are used to write extensions for Google Ch
rome?</h3> | 361 <h3 id="faq-gen-02">What technologies are used to write extensions for Chrome?</
h3> |
| 360 <p> | 362 <p> |
| 361 Google Chrome Extensions are written using the same standard web | 363 Extensions are written using the same standard web |
| 362 technologies that developers use to create websites. HTML is used as a | 364 technologies that developers use to create websites. HTML is used as a |
| 363 content markup language, CSS is used for styling, and JavaScript for | 365 content markup language, CSS is used for styling, and JavaScript for |
| 364 scripting. Because Google Chrome supports HTML5 and CSS3, developers can | 366 scripting. Because Chrome supports HTML5 and CSS3, developers can |
| 365 use the latest open web technologies such as canvas and CSS animations in | 367 use the latest open web technologies such as canvas and CSS animations in |
| 366 their extensions. Extensions also have access to several | 368 their extensions. Extensions also have access to several |
| 367 <a href="http://code.google.com/chrome/extensions/api_other.html">JavaScript A
PIs</a> | 369 <a href="http://code.google.com/chrome/extensions/api_other.html">JavaScript A
PIs</a> |
| 368 that help perform functions like JSON encoding and interacting with the | 370 that help perform functions like JSON encoding and interacting with the |
| 369 browser. | 371 browser. |
| 370 </p> | 372 </p> |
| 371 | 373 |
| 372 | 374 |
| 373 <h3 id="faq-gen-03">Are extensions fetched from the web every time the browser i
s loaded?</h3> | 375 <h3 id="faq-gen-03">Are extensions fetched from the web every time the browser i
s loaded?</h3> |
| 374 <p> | 376 <p> |
| 375 Extensions are downloaded by the Google Chrome browser upon install, and | 377 Extensions are downloaded by the Chrome browser upon install, and |
| 376 are subsequently run off of the local disk in order to speed up | 378 are subsequently run off of the local disk in order to speed up |
| 377 performance. However, if a new version of the extension is pushed online, | 379 performance. However, if a new version of the extension is pushed online, |
| 378 it will be automatically downloaded in the background to any users who | 380 it will be automatically downloaded in the background to any users who |
| 379 have the extension installed. Extensions may also make requests for remote | 381 have the extension installed. Extensions may also make requests for remote |
| 380 content at any time, in order to interact with a web service or pull new | 382 content at any time, in order to interact with a web service or pull new |
| 381 content from the web. | 383 content from the web. |
| 382 </p> | 384 </p> |
| 383 | 385 |
| 384 | 386 |
| 385 <h2>Development</h2> | 387 <h2>Development</h2> |
| 386 | 388 |
| 387 | 389 |
| 388 <h3 id="faq-dev-01">How can I set up Google Chrome for extension development?</h
3> | 390 <h3 id="faq-dev-01">How can I set up Chrome for extension development?</h3> |
| 389 <p> | 391 <p> |
| 390 As long as you are using a version of Google Chrome that supports | 392 As long as you are using a version of Chrome that supports |
| 391 extensions, you already have everything you need to start writing an | 393 extensions, you already have everything you need to start writing an |
| 392 extension of your own. | 394 extension of your own. |
| 393 You can start by turning on Developer mode. | 395 You can start by turning on Developer mode. |
| 394 </p> | 396 </p> |
| 395 | 397 |
| 396 <p> | 398 <p> |
| 397 Click the wrench icon | 399 Click the wrench icon |
| 398 <img src="images/toolsmenu.gif" height="29" width="29" alt="" class="nomargin"
> | 400 <img src="images/toolsmenu.gif" height="29" width="29" alt="" class="nomargin"
> |
| 399 and select <b>Extensions</b> from the <b>Tools</b> menu | 401 and select <b>Extensions</b> from the <b>Tools</b> menu. |
| 400 (or from the <b>Window</b> menu on Mac). | |
| 401 If there's a "+" next to "Developer mode", | 402 If there's a "+" next to "Developer mode", |
| 402 click the "+" so it turns into a "-". | 403 click the "+" so it turns into a "-". |
| 403 Now you can reload extensions, | 404 Now you can reload extensions, |
| 404 load an unpacked directory of files as if it were a packaged extension, | 405 load an unpacked directory of files as if it were a packaged extension, |
| 405 and more. For a complete tutorial, see | 406 and more. For a complete tutorial, see |
| 406 <a href="http://code.google.com/chrome/extensions/getstarted.html">Getting Sta
rted</a>. | 407 <a href="http://code.google.com/chrome/extensions/getstarted.html">Getting Sta
rted</a>. |
| 407 </p> | 408 </p> |
| 408 | 409 |
| 409 <h3 id="faq-dev-02">Can I make cross-domain Ajax requests in an extension?</h3> | 410 <h3 id="faq-dev-02">Can I make cross-domain Ajax requests in an extension?</h3> |
| 410 <p> | 411 <p> |
| 411 Yes. Extensions can make cross-domain requests. See | 412 Yes. Extensions can make cross-domain requests. See |
| 412 <a href="http://code.google.com/chrome/extensions/xhr.html">this page</a> | 413 <a href="http://code.google.com/chrome/extensions/xhr.html">this page</a> |
| 413 for more information. | 414 for more information. |
| 414 </p> | 415 </p> |
| 415 | 416 |
| 416 <h3 id="faq-dev-03">Can I use 3rd party web services in my extension?</h3> | 417 <h3 id="faq-dev-03">Can I use 3rd party web services in my extension?</h3> |
| 417 <p> | 418 <p> |
| 418 Yes. Google Chrome Extensions are capable of making cross-domain Ajax | 419 Yes. Extensions are capable of making cross-domain Ajax |
| 419 requests, so they can call remote APIs directly. APIs which provide data | 420 requests, so they can call remote APIs directly. APIs that provide data |
| 420 in JSON format are particularly easy to use. | 421 in JSON format are particularly easy to use. |
| 421 </p> | 422 </p> |
| 422 | 423 |
| 423 <h3 id="faq-dev-04">Can I use OAuth in my extensions?</h3> | 424 <h3 id="faq-dev-04">Can I use OAuth in my extensions?</h3> |
| 424 <p> | 425 <p> |
| 425 Absolutely, there are extensions which use OAuth to access remote data | 426 Absolutely, there are extensions that use OAuth to access remote data |
| 426 APIs. Most developers find it convenient to use a | 427 APIs. Most developers find it convenient to use a |
| 427 <a href="http://unitedheroes.net/OAuthSimple/js/OAuthSimple.js">JavaScript OAu
th library</a> | 428 <a href="http://unitedheroes.net/OAuthSimple/js/OAuthSimple.js">JavaScript OAu
th library</a> |
| 428 in order to simplify the process of signing OAuth requests. | 429 in order to simplify the process of signing OAuth requests. |
| 429 </p> | 430 </p> |
| 430 | 431 |
| 431 <h3 id="faq-dev-05">What UI controls can I create for my extension?</h3> | 432 <h3 id="faq-dev-05">What UI controls can I create for my extension?</h3> |
| 432 <p> | 433 <p> |
| 433 Extensions use HTML and CSS to define their user interfaces, so you can use | 434 Extensions use HTML and CSS to define their user interfaces, so you can use |
| 434 standard form controls to build your UI, or style the interface with CSS, | 435 standard form controls to build your UI, or style the interface with CSS, |
| 435 as you would a web page. Additionally, your extension may add buttons | 436 as you would a web page. Additionally, your extension may add buttons |
| 436 to the Google Chrome browser itself. See | 437 to the Chrome browser itself. See |
| 437 <a href="http://code.google.com/chrome/extensions/browserAction.html">browser
actions</a> | 438 <a href="http://code.google.com/chrome/extensions/browserAction.html">browser
actions</a> |
| 438 and | 439 and |
| 439 <a href="http://code.google.com/chrome/extensions/pageAction.html">page action
s</a> | 440 <a href="http://code.google.com/chrome/extensions/pageAction.html">page action
s</a> |
| 440 for more information. | 441 for more information. |
| 441 </p> | 442 </p> |
| 442 | 443 |
| 443 <h3 id="faq-dev-06">Can I load DLLs in my extension?</h3> | 444 <h3 id="faq-dev-06">Can I load DLLs in my extension?</h3> |
| 444 <p> | 445 <p> |
| 445 Yes, using the | 446 Yes, using the |
| 446 <a href="http://code.google.com/chrome/extensions/trunk/npapi.html">NPAPI inte
rface</a>. | 447 <a href="http://code.google.com/chrome/extensions/trunk/npapi.html">NPAPI inte
rface</a>. |
| 447 Because of the possibility for abuse, though, we will review your extension | 448 Because of the possibility for abuse, though, we will review your extension |
| 448 before hosting it in the Google Chrome Extensions Gallery. | 449 before hosting it in the Google Chrome Extensions Gallery |
| 450 or Chrome Web Store. |
| 449 </p> | 451 </p> |
| 450 | 452 |
| 451 <h3 id="faq-dev-07">Can Google Chrome Extensions encode/decode JSON data?</h3> | 453 <h3 id="faq-dev-07">Can extensions encode/decode JSON data?</h3> |
| 452 <p> | 454 <p> |
| 453 Yes, because V8 (Google Chrome's JavaScript engine) supports | 455 Yes, because V8 (Chrome's JavaScript engine) supports |
| 454 JSON.stringify and JSON.parse natively, you may use these functions in your | 456 JSON.stringify and JSON.parse natively, you may use these functions in your |
| 455 extensions | 457 extensions |
| 456 <a href="http://json.org/js.html">as described here</a> without including | 458 <a href="http://json.org/js.html">as described here</a> without including |
| 457 any additional JSON libraries in your code. | 459 any additional JSON libraries in your code. |
| 458 </p> | 460 </p> |
| 459 | 461 |
| 460 <h3 id="faq-dev-08">Can I store data locally in my extension?</h3> | 462 <h3 id="faq-dev-08">Can I store data locally in my extension?</h3> |
| 461 <p> | 463 <p> |
| 462 Yes, extensions can use <a href="http://dev.w3.org/html5/webstorage/">localSto
rage</a> | 464 Yes, extensions can use <a href="http://dev.w3.org/html5/webstorage/">localSto
rage</a> |
| 463 to store string data permanently. Using Google Chrome's built-in JSON | 465 to store string data permanently. Using Chrome's built-in JSON |
| 464 functions, you can store complex data structures in localStorage. For | 466 functions, you can store complex data structures in localStorage. For |
| 465 extensions which have the need to execute SQL queries on their stored data, | 467 extensions that need to execute SQL queries on their stored data, |
| 466 Google Chrome implements | 468 Chrome implements |
| 467 <a href="http://dev.w3.org/html5/webdatabase/">client side SQL databases</a> | 469 <a href="http://dev.w3.org/html5/webdatabase/">client side SQL databases</a>, |
| 468 which may be used as well. | 470 which may be used as well. |
| 469 </p> | 471 </p> |
| 470 | 472 |
| 471 <h3 id="faq-dev-09">How much data can I store in localStorage?</h3> | 473 <h3 id="faq-dev-09">How much data can I store in localStorage?</h3> |
| 472 <p> | 474 <p> |
| 473 Extensions can store up to 5MB of data in localStorage. | 475 Extensions can store up to 5MB of data in localStorage. |
| 474 </p> | 476 </p> |
| 475 | 477 |
| 476 <h3 id="faq-dev-10">Can I create an options menu for my application?</h3> | 478 <h3 id="faq-dev-10">Can I create an options menu for my application?</h3> |
| 477 <p> | 479 <p> |
| 478 You can let users set options for your extension by creating an | 480 You can let users set options for your extension by creating an |
| 479 <a href="http://code.google.com/chrome/extensions/trunk/options.html">options
page</a> | 481 <a href="http://code.google.com/chrome/extensions/trunk/options.html">options
page</a>, |
| 480 which is a simple HTML page that will be loaded when a user clicks the | 482 which is a simple HTML page that will be loaded when a user clicks the |
| 481 "options" button for your extension. This page can read and write settings | 483 "options" button for your extension. This page can read and write settings |
| 482 to localStorage, or even send options to a web server so that they can be | 484 to localStorage, or even send options to a web server so that they can be |
| 483 persisted across browsers. | 485 persisted across browsers. |
| 484 </p> | 486 </p> |
| 485 | 487 |
| 486 <h3 id="faq-dev-11">Can two extensions communicate with each other?</h3> | 488 <h3 id="faq-dev-11">Can two extensions communicate with each other?</h3> |
| 487 <p> | 489 <p> |
| 488 Extensions may pass messages to other extensions. See the | 490 Extensions may pass messages to other extensions. See the |
| 489 <a href="http://code.google.com/chrome/extensions/trunk/messaging.html#externa
l">message passing documentation</a> | 491 <a href="http://code.google.com/chrome/extensions/trunk/messaging.html#externa
l">message passing documentation</a> |
| 490 for more information. | 492 for more information. |
| 491 </p> | 493 </p> |
| 492 | 494 |
| 493 <h3 id="faq-dev-12">What debugging tools are available to extension developers?<
/h3> | 495 <h3 id="faq-dev-12">What debugging tools are available to extension developers?<
/h3> |
| 494 <p> | 496 <p> |
| 495 Google Chrome's built-in developer tools can be used to debug extensions | 497 Chrome's built-in developer tools can be used to debug extensions |
| 496 as well as web pages. See this | 498 as well as web pages. See this |
| 497 <a href="http://code.google.com/chrome/extensions/tut_debugging.html ">tutoria
l on debugging extensions</a> | 499 <a href="http://code.google.com/chrome/extensions/tut_debugging.html ">tutoria
l on debugging extensions</a> |
| 498 for more information. | 500 for more information. |
| 499 </p> | 501 </p> |
| 500 | 502 |
| 501 <h3 id="faq-dev-13">Can extensions use Google Analytics?</h3> | 503 <h3 id="faq-dev-13">Can extensions use Google Analytics?</h3> |
| 502 <p> | 504 <p> |
| 503 Yes, since extensions are built just like websites, they can use | 505 Yes, since extensions are built just like websites, they can use |
| 504 <a href="http://www.google.com/analytics/">Google Analytics</a> to track | 506 <a href="http://www.google.com/analytics/">Google Analytics</a> to track |
| 505 usage. However, we strongly advise you to modify the tracking code to pull | 507 usage. However, we strongly advise you to modify the tracking code to pull |
| 506 an HTTPS version of the Google Analytics library. See | 508 an HTTPS version of the Google Analytics library. See |
| 507 <a href="tut_analytics.html">this tutorial</a> for more information on doing | 509 <a href="tut_analytics.html">this tutorial</a> for more information on doing |
| 508 this. | 510 this. |
| 509 </p> | 511 </p> |
| 510 | 512 |
| 511 <h3 id="faq-dev-14">How do I determine which version of Google Chrome is deploye
d to which channel?</h3> | 513 <h3 id="faq-dev-14">How do I determine which version of Chrome is deployed to wh
ich channel?</h3> |
| 512 <p> | 514 <p> |
| 513 To determine which version of Google Chrome is currently available on each | 515 To determine which version of Chrome is currently available on each |
| 514 of the different platforms, visit | 516 of the different platforms, visit |
| 515 <a href="http://omahaproxy.appspot.com">omahaproxy.appspot.com</a>. On that | 517 <a href="http://omahaproxy.appspot.com">omahaproxy.appspot.com</a>. On that |
| 516 site you will see data in a format similar to: | 518 site you will see data in a format similar to: |
| 517 </p> | 519 </p> |
| 518 <pre>cf,dev,#.#.###.#,#.#.###.# | 520 <pre>cf,dev,#.#.###.#,#.#.###.# |
| 519 cf,beta,#.#.###.#,#.#.###.# | 521 cf,beta,#.#.###.#,#.#.###.# |
| 520 cf,stable,#.#.###.#,#.#.###.# | 522 cf,stable,#.#.###.#,#.#.###.# |
| 521 linux,dev,#.#.###.#,#.#.###.# | 523 linux,dev,#.#.###.#,#.#.###.# |
| 522 linux,beta,#.#.###.#,#.#.###.# | 524 linux,beta,#.#.###.#,#.#.###.# |
| 523 linux,stable,#.#.###.#,#.#.###.# | 525 linux,stable,#.#.###.#,#.#.###.# |
| 524 mac,dev,#.#.###.#,#.#.###.# | 526 mac,dev,#.#.###.#,#.#.###.# |
| 525 mac,beta,#.#.###.#,#.#.###.# | 527 mac,beta,#.#.###.#,#.#.###.# |
| 526 mac,stable,#.#.###.#,#.#.###.# | 528 mac,stable,#.#.###.#,#.#.###.# |
| 527 win,canary,#.#.###.#,#.#.###.# | 529 win,canary,#.#.###.#,#.#.###.# |
| 528 win,dev,#.#.###.#,#.#.###.# | 530 win,dev,#.#.###.#,#.#.###.# |
| 529 win,beta,#.#.###.#,#.#.###.# | 531 win,beta,#.#.###.#,#.#.###.# |
| 530 win,stable,#.#.###.#,#.#.###.#</pre> | 532 win,stable,#.#.###.#,#.#.###.#</pre> |
| 531 | 533 |
| 532 <p> | 534 <p> |
| 533 Each line represents a different platform and channel combination. The | 535 Each line represents a different platform and channel combination. The |
| 534 listed platforms are <code>cf</code> (Google Chrome Frame), | 536 listed platforms are <code>cf</code> (Google Chrome Frame), |
| 535 <code>linux</code>, <code>mac</code>, and <code>win</code>. The listed | 537 <code>linux</code>, <code>mac</code>, and <code>win</code>. The listed |
| 536 channels are <code>canary</code>, <code>dev</code>, <code>beta</code>, | 538 channels are <code>canary</code>, <code>dev</code>, <code>beta</code>, |
| 537 and <code>stable</code>. | 539 and <code>stable</code>. |
| 538 The two four-part numbers at the end of each line represent the range of | 540 The two four-part numbers at the end of each line represent the range of |
| 539 versions of Google Chrome currently deployed to that platform-channel | 541 versions of Chrome currently deployed to that platform-channel |
| 540 combination. | 542 combination. |
| 541 </p> | 543 </p> |
| 542 | 544 |
| 543 <h3 id="faq-dev-15">Can I add a content script to chrome:// URLs?</h3> | 545 <h3 id="faq-dev-15">Can I add a content script to chrome:// URLs?</h3> |
| 544 <p> | 546 <p> |
| 545 No. The extensions APIs have been designed to minimize backwards | 547 No. The extensions APIs have been designed to minimize backwards |
| 546 compatibility issues that can arise when new versions of the browser are | 548 compatibility issues that can arise when new versions of the browser are |
| 547 pushed. Allowing content scripts on <code>chrome://</code> | 549 pushed. Allowing content scripts on <code>chrome://</code> |
| 548 URLs would mean that developers would begin to rely on the DOM, CSS, and | 550 URLs would mean that developers would begin to rely on the DOM, CSS, and |
| 549 JavaScript of these pages to stay the same. In the best case, these pages | 551 JavaScript of these pages to stay the same. In the best case, these pages |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 585 your extension on. | 587 your extension on. |
| 586 </p> | 588 </p> |
| 587 | 589 |
| 588 <h2>Features and bugs</h2> | 590 <h2>Features and bugs</h2> |
| 589 | 591 |
| 590 <h3 id="faq-fea-01">I think I've found a bug! How do I make sure it gets | 592 <h3 id="faq-fea-01">I think I've found a bug! How do I make sure it gets |
| 591 fixed?</h3> | 593 fixed?</h3> |
| 592 <p> | 594 <p> |
| 593 While developing an extension, you may find behavior that does not | 595 While developing an extension, you may find behavior that does not |
| 594 match the extensions documentation and may be the result of a bug in | 596 match the extensions documentation and may be the result of a bug in |
| 595 Google Chrome. The best thing to do is to make sure an appropriate issue | 597 Chrome. The best thing to do is to make sure an appropriate issue |
| 596 report is filed, and the Chromium team has enough information to reproduce | 598 report is filed, and the Chromium team has enough information to reproduce |
| 597 the behavior. | 599 the behavior. |
| 598 </p> | 600 </p> |
| 599 | 601 |
| 600 <p>The steps you should follow to ensure this are:</p> | 602 <p>The steps you should follow to ensure this are:</p> |
| 601 | 603 |
| 602 <ol> | 604 <ol> |
| 603 <li> | 605 <li> |
| 604 Come up with a <em>minimal</em> test extension that demonstrates the issue | 606 Come up with a <em>minimal</em> test extension that demonstrates the issue |
| 605 you wish to report. This extension should have as little code as possible | 607 you wish to report. This extension should have as little code as possible |
| 606 to demonstrate the bug—generally this should be 100 lines of | 608 to demonstrate the bug—generally this should be 100 lines of |
| 607 code or less. Many times, developers find that they cannot reproduce their | 609 code or less. Many times, developers find that they cannot reproduce their |
| 608 issues this way, which is a good indicator that the bug is in their own | 610 issues this way, which is a good indicator that the bug is in their own |
| 609 code. | 611 code. |
| 610 </li> | 612 </li> |
| 611 <li> | 613 <li> |
| 612 Search the issue tracker at | 614 Search the issue tracker at |
| 613 <a href="http://www.crbug.com">http://www.crbug.com</a> to see whether | 615 <a href="http://www.crbug.com">http://www.crbug.com</a> to see whether |
| 614 someone has reported a similar issue. Most issues related to | 616 someone has reported a similar issue. Most issues related to |
| 615 extensions are filed under <strong>Feature=Extensions</strong>, so to | 617 extensions are filed under <strong>Feature=Extensions</strong>, so to |
| 616 look for an extension bug related to the | 618 look for an extension bug related to the |
| 617 chrome.tabs.executeScript function (for example), search for | 619 chrome.tabs.executeScript function (for example), search for |
| 618 "<code>Feature=Extensions Type=Bug chrome.tabs.executeScript</code>" which | 620 "<code>Feature=Extensions Type=Bug chrome.tabs.executeScript</code>", |
| 619 will give you | 621 which will give you |
| 620 <a href="http://code.google.com/p/chromium/issues/list?can=2&q=Feature%3
DExtensions+Type%3DBug+chrome.tabs.executeScript&colspec=ID+Stars+Pri+Area+F
eature+Type+Status+Summary+Modified+Owner+Mstone+OS&x=mstone&y=area&
cells=tiles"> | 622 <a href="http://code.google.com/p/chromium/issues/list?can=2&q=Feature%3
DExtensions+Type%3DBug+chrome.tabs.executeScript&colspec=ID+Stars+Pri+Area+F
eature+Type+Status+Summary+Modified+Owner+Mstone+OS&x=mstone&y=area&
cells=tiles"> |
| 621 this list of results</a>. | 623 this list of results</a>. |
| 622 </li> | 624 </li> |
| 623 <li> | 625 <li> |
| 624 If you find a bug that describes your issue, click the star icon to be | 626 If you find a bug that describes your issue, click the star icon to be |
| 625 notified when the bug receives an update. <em>Do not respond to the | 627 notified when the bug receives an update. <em>Do not respond to the |
| 626 bug to say "me too" or ask "when will this be fixed?"</em>; such updates | 628 bug to say "me too" or ask "when will this be fixed?"</em>; such updates |
| 627 can cause hundreds of emails to be sent. Add a comment only if you have | 629 can cause hundreds of emails to be sent. Add a comment only if you have |
| 628 information (such as a better test case or a suggested fix) that is likely | 630 information (such as a better test case or a suggested fix) that is likely |
| 629 to be helpful. | 631 to be helpful. |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 663 <p>The steps you should follow to ensure this are:</p> | 665 <p>The steps you should follow to ensure this are:</p> |
| 664 | 666 |
| 665 <ol> | 667 <ol> |
| 666 <li> | 668 <li> |
| 667 Search the issue tracker at | 669 Search the issue tracker at |
| 668 <a href="http://www.crbug.com">http://www.crbug.com</a> to see whether | 670 <a href="http://www.crbug.com">http://www.crbug.com</a> to see whether |
| 669 someone has requested a similar feature. Most requests related to | 671 someone has requested a similar feature. Most requests related to |
| 670 extensions are filed under <strong>Feature=Extensions</strong>, so to | 672 extensions are filed under <strong>Feature=Extensions</strong>, so to |
| 671 look for an extension feature request related to keyboard shortcuts | 673 look for an extension feature request related to keyboard shortcuts |
| 672 (for example), search | 674 (for example), search |
| 673 for "<code>Feature=Extensions Type=Feature shortcuts</code>" which will | 675 for "<code>Feature=Extensions Type=Feature shortcuts</code>", |
| 674 give you | 676 which will give you |
| 675 <a href="http://code.google.com/p/chromium/issues/list?can=2&q=Feature%3
DExtensions+Type%3DFeature+shortcuts&colspec=ID+Stars+Pri+Area+Feature+Type+
Status+Summary+Modified+Owner+Mstone+OS&x=mstone&y=area&cells=tiles"
> | 677 <a href="http://code.google.com/p/chromium/issues/list?can=2&q=Feature%3
DExtensions+Type%3DFeature+shortcuts&colspec=ID+Stars+Pri+Area+Feature+Type+
Status+Summary+Modified+Owner+Mstone+OS&x=mstone&y=area&cells=tiles"
> |
| 676 this list of results</a>. | 678 this list of results</a>. |
| 677 </li> | 679 </li> |
| 678 <li> | 680 <li> |
| 679 If you find a ticket that matches your request, click the star icon to be | 681 If you find a ticket that matches your request, click the star icon to be |
| 680 notified when the bug receives an update. <em>Do not respond to the | 682 notified when the bug receives an update. <em>Do not respond to the |
| 681 bug to say "me too" or ask "when will this be implemented?"</em>; such | 683 bug to say "me too" or ask "when will this be implemented?"</em>; such |
| 682 updates can cause hundreds of emails to be sent. | 684 updates can cause hundreds of emails to be sent. |
| 683 </li> | 685 </li> |
| 684 <li> | 686 <li> |
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 891 _uff=0; | 893 _uff=0; |
| 892 urchinTracker(); | 894 urchinTracker(); |
| 893 } | 895 } |
| 894 catch(e) {/* urchinTracker not available. */} | 896 catch(e) {/* urchinTracker not available. */} |
| 895 </script> | 897 </script> |
| 896 <!-- end analytics --> | 898 <!-- end analytics --> |
| 897 </div> | 899 </div> |
| 898 </div> <!-- /gc-footer --> | 900 </div> <!-- /gc-footer --> |
| 899 </div> <!-- /gc-container --> | 901 </div> <!-- /gc-container --> |
| 900 </body></html> | 902 </body></html> |
| OLD | NEW |