chrome.downloads.erase no funciona Cuando se inicia desde el script de contenido

Estoy tratando de crear una extensión de Chrome que al ingresar a un sitio determinado. Estoy borrando el historial de descargas. Estoy usando esto desde la página de fondo:

chrome.downloads.erase({},
function(item)
{
    console.log("Erased item");
    console.log(item);
});

El problema es que no funciona cuando estoy enviando un mensaje desde el script de contacto después de ingresar la url que quería.

Yo uso enviar mensaje en el script de contenido

chrome.runtime.sendMessage

y recibir el mensaje en la página de fondo

chrome.runtime.onMessage.addListener

Este es el resultado que obtengo aunque hay algunos archivos en el historial de descargas:

Erased item
Array[0]

Si ejecuto el borrado () desde la consola de la página de fondo, funciona bien

parece que sucede porque no hay interacción del usuario. Si pongo un botón de borrar y hago clic en él, la eliminación funciona. Pero si utilizo el tiempo de espera, ¿no ocurre alguna idea de por qué sucede?

He visto que tiene algo que ver con setTimeout. Esto funciona en la página de fondo:

setTimeout(function(){
console.log('erasing downloads');
chrome.downloads.erase({});
}
, 0);

Pero esto no:

setTimeout(function(){
console.log('erasing downloads');
chrome.downloads.erase({});
}
, 1000);

Respuestas a la pregunta(1)

Su respuesta a la pregunta