Mensagem de extensão do Chrome sendo passada como objeto

Estou enviando uma mensagem do script de conteúdo para a página de plano de fundo. A mensagem é uma URL que, em seguida, obtém o ajax analisado em segundo plano. Quando eu console.log, os dados recuperados nobackground.js o log do console é puro html, mas quando eu envio a mensagem de volta ao meu script de conteúdo, a mensagem está subitamente em um objeto e não sei por que.

Aqui está o meu 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.
          }

      }
  });
}

Eu adicionei comentários para as partes importantes. Não consigo entender isso e isso está me deixando louco. Alguma ideia? Obrigado!

questionAnswers(1)

yourAnswerToTheQuestion