| OLD | NEW |
| 1 <div id="pageData-name" class="pageData">Overview</div> | 1 <div id="pageData-name" class="pageData">Overview</div> |
| 2 <div id="pageData-showTOC" class="pageData">true</div> | 2 <div id="pageData-showTOC" class="pageData">true</div> |
| 3 | 3 |
| 4 <p> | 4 <p> |
| 5 Once you've finished this page | 5 Once you've finished this page |
| 6 and the | 6 and the |
| 7 <a href="getstarted.html">Getting Started</a> tutorial, | 7 <a href="getstarted.html">Getting Started</a> tutorial, |
| 8 you'll be all set to start writing extensions and packaged apps. | 8 you'll be all set to start writing extensions and packaged apps. |
| 9 </p> | 9 </p> |
| 10 | 10 |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 or <a href="pageAction.html">page actions</a>. | 46 or <a href="pageAction.html">page actions</a>. |
| 47 Each extension can have at most one browser action or page action. | 47 Each extension can have at most one browser action or page action. |
| 48 Choose a <b>browser action</b> when the extension is relevant to most pages. | 48 Choose a <b>browser action</b> when the extension is relevant to most pages. |
| 49 Choose a <b>page action</b> when the extension's icon | 49 Choose a <b>page action</b> when the extension's icon |
| 50 should appear or disappear, | 50 should appear or disappear, |
| 51 depending on the page. | 51 depending on the page. |
| 52 </p> | 52 </p> |
| 53 | 53 |
| 54 <table class="columns"> | 54 <table class="columns"> |
| 55 <tr> | 55 <tr> |
| 56 <td> | 56 <td width="33%"> |
| 57 <img src="images/index/gmail.png" | 57 <img src="images/overview/browser-action.png" |
| 58 width="150" height="79" | 58 width="147" height="100" |
| 59 alt="screenshot" /> |
| 60 </td> |
| 61 <td width="33%"> |
| 62 <img src="images/overview/page-action.png" |
| 63 width="147" height="100" |
| 59 alt="screenshot" /> | 64 alt="screenshot" /> |
| 60 </td> | 65 </td> |
| 61 <td> | 66 <td> |
| 62 <img src="images/index/news.png" | 67 <img src="images/overview/browser-action-with-popup.png" |
| 63 width="150" height="79" | 68 width="147" height="100" |
| 64 alt="screenshot" /> | |
| 65 </td> | |
| 66 <td> | |
| 67 <img src="images/index/rss.png" | |
| 68 width="150" height="79" | |
| 69 alt="screenshot" /> | 69 alt="screenshot" /> |
| 70 </td> | 70 </td> |
| 71 </tr> | 71 </tr> |
| 72 | 72 |
| 73 <tr> | 73 <tr> |
| 74 <td> | 74 <td> |
| 75 This <a href="samples.html#gmail">mail extension</a> | 75 This <a href="samples.html#gmail">mail extension</a> |
| 76 uses a <em>browser action</em> | 76 uses a <em>browser action</em> |
| 77 (icon in the toolbar). | 77 (icon in the toolbar). |
| 78 </td> | 78 </td> |
| 79 <td> | 79 <td> |
| 80 This <a href="samples.html#news">news reader extension</a> | |
| 81 features a browser action that, | |
| 82 when clicked, | |
| 83 shows a <em>popup</em>. | |
| 84 </td> | |
| 85 <td> | |
| 86 This <a href="samples.html#mappy">map extension</a> | 80 This <a href="samples.html#mappy">map extension</a> |
| 87 uses a <em>page action</em> | 81 uses a <em>page action</em> |
| 88 (icon in the address bar) | 82 (icon in the address bar) |
| 89 and <em>content script</em> | 83 and <em>content script</em> |
| 90 (code injected into a web page). | 84 (code injected into a web page). |
| 91 </td> | 85 </td> |
| 86 <td> |
| 87 This <a href="samples.html#news">news extension</a> |
| 88 features a browser action that, |
| 89 when clicked, |
| 90 shows a <em>popup</em>. |
| 91 </td> |
| 92 </tr> | 92 </tr> |
| 93 </table> | 93 </table> |
| 94 | 94 |
| 95 <p> | 95 <p> |
| 96 Extensions (and packaged apps) can also present a UI in other ways, | 96 Extensions (and packaged apps) can also present a UI in other ways, |
| 97 such as adding to the Chrome context menu, | 97 such as adding to the Chrome context menu, |
| 98 providing an options page, | 98 providing an options page, |
| 99 or using a content script that changes how pages look. | 99 or using a content script that changes how pages look. |
| 100 See the <a href="devguide.html">Developer's Guide</a> | 100 See the <a href="devguide.html">Developer's Guide</a> |
| 101 for a complete list of extension features, | 101 for a complete list of extension features, |
| 102 with links to implementation details | 102 with links to implementation details |
| 103 for each one. | 103 for each one. |
| 104 </p> | 104 </p> |
| 105 | 105 |
| 106 | 106 |
| 107 <h3 id="packagedapp-ui">Packaged app UIs</h3> | 107 <h3 id="packagedapp-ui">Packaged app UIs</h3> |
| 108 | 108 |
| 109 <p> | 109 <p> |
| 110 A packaged app usually presents its main functionality using | 110 A packaged app usually presents its main functionality using |
| 111 an HTML page that's bundled into the app. | 111 an HTML page that's bundled into the app. |
| 112 For example, the following packaged app | 112 For example, the following packaged app |
| 113 displays a Flash file within an HTML page. | 113 displays a Flash file within an HTML page. |
| 114 </p> | 114 </p> |
| 115 | 115 |
| 116 <img src="images/index/flashapp.png" | 116 <img src="images/overview/flash-app.png" |
| 117 width="372" height="300" | 117 width="372" height="300" |
| 118 alt="screenshot" /> | 118 alt="screenshot" /> |
| 119 | 119 |
| 120 <p> | 120 <p> |
| 121 For more information, | 121 For more information, |
| 122 see <a href="apps.html">Packaged Apps</a>. | 122 see <a href="apps.html">Packaged Apps</a>. |
| 123 </p> | 123 </p> |
| 124 | 124 |
| 125 <h2 id="files">Files</h2> | 125 <h2 id="files">Files</h2> |
| 126 <p> | 126 <p> |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 | 222 |
| 223 <h2 id="arch">Architecture</h2> | 223 <h2 id="arch">Architecture</h2> |
| 224 | 224 |
| 225 <p> | 225 <p> |
| 226 Most extensions have a | 226 Most extensions have a |
| 227 <a href="background_pages.html">background page</a>, | 227 <a href="background_pages.html">background page</a>, |
| 228 an invisible page | 228 an invisible page |
| 229 that holds the main logic of the extension. | 229 that holds the main logic of the extension. |
| 230 </p> | 230 </p> |
| 231 | 231 |
| 232 <img src="images/arch-1.gif" | 232 <img src="images/overview/arch-1.gif" |
| 233 width="232" height="168" | 233 width="232" height="168" |
| 234 alt="Two windows and a box representing a background page (background.html). On
e window has a yellow icon; the other has both a yellow icon and a blue icon. Th
e yellow icons are connected to the background page." /> | 234 alt="Two windows and a box representing a background page (background.html). On
e window has a yellow icon; the other has both a yellow icon and a blue icon. Th
e yellow icons are connected to the background page." /> |
| 235 | 235 |
| 236 <p> | 236 <p> |
| 237 The preceding figure shows a browser | 237 The preceding figure shows a browser |
| 238 that has at least two extensions installed: | 238 that has at least two extensions installed: |
| 239 a browser action (yellow icon) | 239 a browser action (yellow icon) |
| 240 and a page action (blue icon). | 240 and a page action (blue icon). |
| 241 The browser action's background page, | 241 The browser action's background page, |
| 242 which is defined by an HTML file | 242 which is defined by an HTML file |
| (...skipping 27 matching lines...) Expand all Loading... |
| 270 of a browser action's popup. | 270 of a browser action's popup. |
| 271 The popup's contents are a web page | 271 The popup's contents are a web page |
| 272 defined by an HTML file | 272 defined by an HTML file |
| 273 (<code>popup.html</code>). | 273 (<code>popup.html</code>). |
| 274 The popup doesn't need to duplicate code | 274 The popup doesn't need to duplicate code |
| 275 that's in the background page | 275 that's in the background page |
| 276 (<code>background.html</code>) | 276 (<code>background.html</code>) |
| 277 because the popup can invoke functions on the background page. | 277 because the popup can invoke functions on the background page. |
| 278 </p> | 278 </p> |
| 279 | 279 |
| 280 <img src="images/arch-2.gif" | 280 <img src="images/overview/arch-2.gif" |
| 281 width="256" height="168" | 281 width="256" height="168" |
| 282 alt="A browser window containing a browser action that's displaying a popup. Th
e popup's HTML file (popup.html) can communicate with the extension's background
page (background.html)." /> | 282 alt="A browser window containing a browser action that's displaying a popup. Th
e popup's HTML file (popup.html) can communicate with the extension's background
page (background.html)." /> |
| 283 | 283 |
| 284 <p> | 284 <p> |
| 285 See the <a href="browserAction.html">Browser Actions</a> page and | 285 See the <a href="browserAction.html">Browser Actions</a> page and |
| 286 the <a href="#pageComm">Communication between pages</a> section | 286 the <a href="#pageComm">Communication between pages</a> section |
| 287 for more details. | 287 for more details. |
| 288 </p> | 288 </p> |
| 289 | 289 |
| 290 | 290 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 313 <p> | 313 <p> |
| 314 Content scripts can read details of the web pages the browser visits, | 314 Content scripts can read details of the web pages the browser visits, |
| 315 and they can make changes to the pages. | 315 and they can make changes to the pages. |
| 316 In the following figure, | 316 In the following figure, |
| 317 the content script | 317 the content script |
| 318 can read and modify | 318 can read and modify |
| 319 the DOM for the displayed web page. | 319 the DOM for the displayed web page. |
| 320 It cannot, however, modify the DOM of its parent extension's background page. | 320 It cannot, however, modify the DOM of its parent extension's background page. |
| 321 </p> | 321 </p> |
| 322 | 322 |
| 323 <img src="images/arch-3.gif" | 323 <img src="images/overview/arch-3.gif" |
| 324 width="238" height="169" | 324 width="238" height="169" |
| 325 alt="A browser window with a browser action (controlled by background.html) and
a content script (controlled by contentscript.js)." /> | 325 alt="A browser window with a browser action (controlled by background.html) and
a content script (controlled by contentscript.js)." /> |
| 326 | 326 |
| 327 <p> | 327 <p> |
| 328 Content scripts aren't completely cut off from their parent extensions. | 328 Content scripts aren't completely cut off from their parent extensions. |
| 329 A content script can exchange messages with its parent extension, | 329 A content script can exchange messages with its parent extension, |
| 330 as the arrows in the following figure show. | 330 as the arrows in the following figure show. |
| 331 For example, a content script might send a message | 331 For example, a content script might send a message |
| 332 whenever it finds an RSS feed in a browser page. | 332 whenever it finds an RSS feed in a browser page. |
| 333 Or a background page might send a message | 333 Or a background page might send a message |
| 334 asking a content script to change the appearance of its browser page. | 334 asking a content script to change the appearance of its browser page. |
| 335 </p> | 335 </p> |
| 336 | 336 |
| 337 <img src="images/arch-cs.gif" | 337 <img src="images/overview/arch-cs.gif" |
| 338 width="238" height="194" | 338 width="238" height="194" |
| 339 alt="Like the previous figure, but showing more of the parent extension's files
, as well as a communication path between the content script and the parent exte
nsion." /> | 339 alt="Like the previous figure, but showing more of the parent extension's files
, as well as a communication path between the content script and the parent exte
nsion." /> |
| 340 | 340 |
| 341 <!-- [PENDING: Add overview of message passing.] --> | 341 <!-- [PENDING: Add overview of message passing.] --> |
| 342 | 342 |
| 343 <p> | 343 <p> |
| 344 For more information, | 344 For more information, |
| 345 see <a href="content_scripts.html">Content Scripts</a>. | 345 see <a href="content_scripts.html">Content Scripts</a>. |
| 346 </p> | 346 </p> |
| 347 | 347 |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 437 <ul> | 437 <ul> |
| 438 <li> <a href="getstarted.html">Tutorial: Getting Started</a> </li> | 438 <li> <a href="getstarted.html">Tutorial: Getting Started</a> </li> |
| 439 <li> <a href="tut_debugging.html">Tutorial: Debugging</a> </li> | 439 <li> <a href="tut_debugging.html">Tutorial: Debugging</a> </li> |
| 440 <li> <a href="devguide.html">Developer's Guide</a> </li> | 440 <li> <a href="devguide.html">Developer's Guide</a> </li> |
| 441 <li> <a href="http://dev.chromium.org/developers/design-documents/extensions/s
amples">Samples</a> </li> | 441 <li> <a href="http://dev.chromium.org/developers/design-documents/extensions/s
amples">Samples</a> </li> |
| 442 <li> <a href="http://www.youtube.com/view_play_list?p=CA101D6A85FE9D4B">Videos
</a>, | 442 <li> <a href="http://www.youtube.com/view_play_list?p=CA101D6A85FE9D4B">Videos
</a>, |
| 443 such as | 443 such as |
| 444 <a href="http://www.youtube.com/watch?v=B4M_a7xejYI&feature=PlayList&p=CA101
D6A85FE9D4B&index=6">Extension Message Passing</a> | 444 <a href="http://www.youtube.com/watch?v=B4M_a7xejYI&feature=PlayList&p=CA101
D6A85FE9D4B&index=6">Extension Message Passing</a> |
| 445 </li> | 445 </li> |
| 446 </ul> | 446 </ul> |
| OLD | NEW |