0

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();
  }
};
Cœur
  • 37,241
  • 25
  • 195
  • 267
Emrys Myrooin
  • 2,179
  • 14
  • 39

0 Answers0