le chrome.moment de l'exécution.sendMessage dans le contenu du script de ne pas envoyer de message

J'ai les fichiers suivants (gist pour un accès facile):

manifeste.json

{
  "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"]
    }
  ]
}

content.js

chrome.runtime.sendMessage(
    "eldkfaboijfanbdjdkohlfpoffdiehnb", //PUT YOUR EXTENSION ID HERE
    "foo",
    function (response) {
        console.log(response);
    }
);
console.log("this is content.js reporting for duty");

background.js

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");

Je peux voir les deux "... déclaration en douane" des messages dans les différentes consoles. Mais background.js ne pas recevoir un message lorsque http://www.google.com charges. La ligne 5 dans content.js imprime undefined dans la console pour google.com.

Quand je lance chrome.runtime.sendMessage("eldkfaboijfanbdjdkohlfpoffdiehnb", "foo"); dans le google.com la console elle apparaît dans la background.js console.

Ce que je fais mal?

InformationsquelleAutor dAnjou | 2014-05-11