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