I have this function as onMessage listener in my background page:
dispatchMessage = (request, sender, sendResponse) ->
return if not request.type?
log "Request '#{request.type}' form #{sender.tab.id}"
log request
switch request.type
when "setAssociationMainFrame" then setAssociationMainFrame request.frame
when "sendMe"
chrome.tabs.sendMessage sender.tab.id,
request.message,
(response) ->
sendResponse response
when "inventaireCosium"
displayPageAction sender.tab.id,
"Inventaire Cosium",
"/src/html/inventaire/pageAction.html"
when "startInventaireCosium"
log request.type
sendResponse()
return
The problem is that when i receive a "sendMe" message, the callback sendResponse doesn't work. I'm not getting any exception or error, but the function I passed in parameter to sendMessage is not call.
EDIT: I also post the javascript traduction of the previous coffescript:
// Generated by CoffeeScript 1.9.0
var dispatchMessage;
dispatchMessage = function(request, sender, sendResponse) {
if (request.type == null) {
return;
}
log("Request '" + request.type + "' form " + sender.tab.id);
log(request);
switch (request.type) {
case "setAssociationMainFrame":
setAssociationMainFrame(request.frame);
break;
case "sendMe":
chrome.tabs.sendMessage(sender.tab.id, request.message, function(response) {
return sendResponse(response);
});
break;
case "inventaireCosium":
displayPageAction(sender.tab.id, "Inventaire Cosium", "/src/html/inventaire/pageAction.html");
break;
case "startInventaireCosium":
log(request.type);
sendResponse();
}
};