Mensaje de extensión de Chrome que se pasa como objeto

Estoy enviando un mensaje desde el script de contenido a la página de fondo. El mensaje es una URL que luego se analiza ajax en segundo plano. Cuando console.log los datos recuperados enbackground.js el registro de la consola es html puro, pero cuando devuelvo el mensaje a mi script de contenido, el mensaje aparece repentinamente en un objeto, y no estoy seguro de por qué.

Aquí está mi código:

Content_Script.js:

chrome.runtime.sendMessage({greeting: URL}, function(response) {
      console.log(response.farewell); //logs an object: Object {farewell: Object}
      $('#stats-table2').append(response.farewell); //doesn't output anything.
    });

Background.js:

chrome.runtime.onMessage.addListener(
  function(message, sender, sendResponse) {
      getStats(message, sender, sendResponse);
      return true;
});

function getStats(message, sender, sendResponse){
   $.ajax({
     url: message.greeting,
     dataType: 'text',
     success: function(data) {
          var info = $("<div>").html(data)[0].getElementsByTagName("table")[1];
          if(info != undefined) {
            console.log(info); //logs pure HTML into the console..
            sendResponse({farewell:info}); //sends message back.
          }

      }
  });
}

He agregado comentarios para las partes importantes ... Parece que no puedo entender esto y me está volviendo loco. ¿Algunas ideas? ¡Gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta