Enviar objeto de nó DOM via chrome.tabs.sendMessage

Estou escrevendo uma extensão do Chrome. Eu preciso passar um objeto de elemento do script de conteúdo para o script de segundo plano.

O objetivo:
A extensão é sobre gravar e reproduzir ações do usuário.
Os dados são salvos no armazenamento local da extensão em objeto diferente para cada guia (por ID da guia).
A estrutura de dados é uma lista de{x: x, y:y, element: element}
Quando o usuário deseja reproduzir, estou usando um loop para cada objeto na lista e usando.click() no elemento

Código no script de conteúdo:

A função que envia uma mensagem para o script em segundo plano:

function addToEventHistory(cords) {
    console.log(cords)
    chrome.runtime.sendMessage({action: "addToEventHistory", cords: cords}, function(response) {
        return response;
    });
}

A função que obtém o elemento e o sente:

mouseClick: function(e) {
                var target = e.target || e.srcElement
                var clickEvent = {x: e.pageX, y: e.pageY, element: target}
                addToEventHistory(clickEvent)
            }

O código no script em segundo plano:

var tabId = sender.tab.id;
var existingRecords = JSON.parse(localStorage.getItem('record_'+tabId)) || [];
existingRecords.push(request.cords)
console.log(request.cords)
localStorage.setItem('record_'+tabId, JSON.stringify(existingRecords));
sendResponse();

O problema é que o elemento que estou enviando é recebido como um objeto vazio. aviso para oconsole.log em enviar e receber. as saídas são:

enviando:

Object {x: 1205, y: 1067, element: div#content.snippet-hidden}

recebendo:

Object {x: 1205, y: 1067, element: Object}

* o elemento Object está vazio e possui apenas_proto_

Qual é a razão?
Como posso resolver este problema?

Parece que o problema não está serializando o objeto DOM, porque o objeto parece bem antes do envio e não está bem no recebimento.

questionAnswers(2)

yourAnswerToTheQuestion