There is a new way to write your options pages, starting from Chrome 40. Learn more, and try it out!

To allow users to customize the behavior of your extension, you may wish to provide an options page. If you do, a link to it will be provided from the extensions management page at chrome://extensions. Clicking the Options link opens a new tab pointing at your options page.

Use the storage.sync API to persist these preferences. These values will then become accessible in any script within your extension, on all your user's devices.

Step 1: Declare your options page in the manifest

  "name": "My extension",
  "options_page": "options.html",

Step 2: Write your options page

Here is an example options page:
<!DOCTYPE html>
<head><title>My Test Extension Options</title></head>

Favorite color:
<select id="color">
 <option value="red">red</option>
 <option value="green">green</option>
 <option value="blue">blue</option>
 <option value="yellow">yellow</option>

  <input type="checkbox" id="like">
  I like colors.

<div id="status"></div>
<button id="save">Save</button>

<script src="options.js"></script>
// Saves options to chrome.storage
function save_options() {
  var color = document.getElementById('color').value;
  var likesColor = document.getElementById('like').checked;
    favoriteColor: color,
    likesColor: likesColor
  }, function() {
    // Update status to let user know options were saved.
    var status = document.getElementById('status');
    status.textContent = 'Options saved.';
    setTimeout(function() {
      status.textContent = '';
    }, 750);

// Restores select box and checkbox state using the preferences
// stored in chrome.storage.
function restore_options() {
  // Use default value color = 'red' and likesColor = true.
    favoriteColor: 'red',
    likesColor: true
  }, function(items) {
    document.getElementById('color').value = items.favoriteColor;
    document.getElementById('like').checked = items.likesColor;
document.addEventListener('DOMContentLoaded', restore_options);