Chrome extension sendRequest from async callback not working?
- by Eugene
Can't figure out what's wrong. onRequest not triggered on call from async callback method, the same request from content script works. The sample code below.
background.js
=============
...
makeAsyncRequest();
...
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
  switch (request.id) {
    case "from_content_script":
      // This works
      console.log("from_content_script");
      sendResponse({}); // clean up
    break;
    case "from_async":
      // Not working!
      console.log("from_async");
      sendResponse({}); // clean up
    break;
  }
});
methods.js
==========
makeAsyncRequest = function() {
  ...
  var xhr = new XMLHttpRequest();
  xhr.onreadystatechange = function() {
    if (xhr.readyState == 4) {
      ...
      // It works
      console.log("makeAsyncRequest callback");
      chrome.extension.sendRequest({id: "from_async"}, function(response) {  });
    }
  }
  ...
};
UPDATE: manifest configuration file. Don't no what's wrong here.
{
  "name": "TestExt",
  "version": "0.0.1",
  "icons": {
    "48": "img/icon-48-green.gif"
  },
  "description": "write it later",
  "background_page": "background.html",
  "options_page": "options.html",
  "browser_action": {
    "default_title": "TestExt",
    "default_icon": "img/icon-48-green.gif"
  },
  "permissions": [
    "tabs", "http://*/*", "https://*/*", "file://*/*",
    "webNavigation"
  ]
}