title: chrome.runtime.sendMessage in content script doesn't send message
body: <p>I have the following files (<a href="https://gist.github.com/dAnjou/475fd82c4074fd18f795" rel="noreferrer">gist</a> for easy access):</p>
  
  <p><strong>manifest.json</strong></p>
  
  <pre><code>{
    "name": "testmessage",
    "version": "0.1",
    "manifest_version": 2,
    "externally_connectable": {
      "matches": ["*://www.google.com/*"]
    },
    "background": {
      "scripts": ["background.js"],
      "persistent": true
    },
    "content_scripts": [
      {
        "matches": ["*://www.google.com/*"],
        "js": ["content.js"]
      }
    ]
  }
  </code></pre>
  
  <p><strong>content.js</strong></p>
  
  <pre><code>chrome.runtime.sendMessage(
      "eldkfaboijfanbdjdkohlfpoffdiehnb", // PUT YOUR EXTENSION ID HERE
      "foo",
      function (response) {
          console.log(response);
      }
  );
  console.log("this is content.js reporting for duty");
  </code></pre>
  
  <p><strong>background.js</strong></p>
  
  <pre><code>chrome.runtime.onMessageExternal.addListener(
      function(request, sender, sendResponse) {
          console.log("background.js got a message")
          console.log(request);
          console.log(sender);
          sendResponse("bar");
      }
  );
  console.log("this is background.js reporting for duty");
  </code></pre>
  
  <p>I can see both <em>"... reporting for duty"</em> messages in the respective consoles. But <code>background.js</code> doesn't receive a message when <a href="http://www.google.com" rel="noreferrer">http://www.google.com</a> loads. Line 5 in <code>content.js</code> prints <code>undefined</code> in the console for google.com.</p>
  
  <p>When I run <code>chrome.runtime.sendMessage("eldkfaboijfanbdjdkohlfpoffdiehnb", "foo");</code> in the google.com console it shows up in the background.js console.</p>
  
  <p>What am I doing wrong?</p>