<h1>Developer's Guide</h1>

<p>
These pages assume you've completed
the <a href="getstarted.html">Getting Started</a> tutorial
and <a href="overview.html">Overview</a>.
</p>

<table class="simple">
  <tr>
    <td colspan="2"><h4>Changing the Google Chrome chrome</h4></td>
  </tr>
  <tr>
    <td colspan="2"> &nbsp;</td>
  </tr>
  <tr>
    <td> <a href="browserAction.html">Browser&nbsp;Actions</a> </td>
    <td> Add icons to the toolbar <em>(extensions only)</em> </td>
  </tr>
  <tr>
    <td> <a href="desktop_notifications.html">Desktop&nbsp;Notifications</a> </td>
    <td> Notify users of important events </td>
  </tr>
  <tr>
    <td> <a href="omnibox.html">Omnibox</a> </td>
    <td> Add a keyword to the address bar </td>
  </tr>
  <tr>
    <td> <a href="options.html">Options&nbsp;Pages</a> </td>
    <td> Let users customize your extension </td>
  </tr>
  <tr>
    <td> <a href="override.html">Override&nbsp;Pages</a> </td>
    <td> Implement your own version of standard browser pages
         such as the New Tab page</td>
  </tr>
  <tr>
    <td> <a href="pageAction.html">Page&nbsp;Actions</a> </td>
    <td> Add temporary icons inside the address bar <em>(extensions only)</em> </td>
  </tr>
  <tr>
    <td> <a href="themes.html">Themes</a> </td>
    <td> Change the overall appearance of the browser </td>
  </tr>

  <tr>
    <td colspan="2"><h4>Interacting with Google Chrome in other ways</h4></td>
  </tr>
  <tr>
    <td colspan="2"> &nbsp;</td>
  </tr>
  <tr>
    <td> <a href="bookmarks.html">Bookmarks</a> </td>
    <td> Create, organize, and otherwise manipulate the user's bookmarks </td>
  </tr>
  <tr>
    <td> <a href="cookies.html">Cookies</a> </td>
    <td> Explore and modify the browser's cookie system </td>
  </tr>
  <tr>
    <td> <a href="devtools.html">Developer&nbsp;Tools</a> </td>
    <td> Add features to Chrome Developer Tools </td>
  </tr>
  <tr>
    <td> <a href="events.html">Events</a> </td>
    <td> Detect when something interesting happens </td>
  </tr>
  <tr>
    <td> <a href="history.html">History</a> </td>
    <td> Interact with the browser's record of visited pages </td>
  </tr>
  <tr>
    <td> <a href="tabs.html">Tabs</a> </td>
    <td> Create, modify, and rearrange tabs in the browser </td>
  </tr>
  <tr>
    <td> <a href="windows.html">Windows</a> </td>
    <td> Create, modify, and rearrange windows in the browser </td>
  </tr>

  <tr>
    <td colspan="2"><h4>Implementing the innards of your extension</h4></td>
  </tr>
  <tr>
    <td colspan="2"> &nbsp;</td>
  </tr>
  <tr>
    <td> <a href="a11y.html">Accessibility (a11y)</a> </td>
    <td> Make your extension accessible to people with disabilities </td>
  </tr>
  <tr>
    <td> <a href="event_pages.html">Event Pages</a> </td>
    <td> Put all the common code for your extension in a single place </td>
  </tr>
  <tr>
    <td> <a href="content_scripts.html">Content&nbsp;Scripts</a> </td>
    <td> Run JavaScript code in the context of web pages </td>
  </tr>
  <tr>
    <td> <a href="xhr.html">Cross-Origin&nbsp;XHR</a> </td>
    <td> Use XMLHttpRequest to send and receive data from remote servers </td>
  </tr>
  <tr>
    <td> <a href="i18n.html">Internationalization</a> </td>
    <td> Deal with language and locale </td>
  </tr>
  <tr>
    <td> <a href="messaging.html">Message&nbsp;Passing</a> </td>
    <td> Communicate from a content script to its parent extension,
         or vice versa</td>
  </tr>
  <tr>
    <td> <a href="permissions.html">Optional Permissions</a> </td>
    <td> Modify your extension's permissions </td>
  </tr>
  <tr>
    <td> <a href="npapi.html">NPAPI&nbsp;Plugins</a> </td>
    <td> Load native binary code </td>
  </tr>

  <tr>
    <td colspan="2"><h4>Finishing and distributing your extension</h4></td>
  </tr>
  <tr>
    <td colspan="2"> &nbsp;</td>
  </tr>
  <tr>
    <td> <a href="autoupdate.html">Autoupdating</a> </td>
    <td> Update extensions automatically </td>
  </tr>
  <tr>
    <td> <a href="hosting.html">Hosting</a> </td>
    <td> Host extensions on Google servers or your own </td>
  </tr>
  <tr>
    <td> <a href="external_extensions.html">Other Deployment Options</a> </td>
    <td> Distribute extensions on your network or with other software </td>
  </tr>
  <tr>
    <td> <a href="packaging.html">Packaging</a> </td>
    <td> Create a <code>.crx</code> file so you can distribute your extension </td>
  </tr>
</table>
