У меня алгоритм по удалению такого мусора занимает 64 строки на js.
Ищет на картинке все точки, у которых только 1 соседняя, скидывает координаты в список. А потому выделяет из них те, что рядом и удаляет их. Чистит картинку процентов на 80
Запустить на localhost легкий веб сервер; на него скрипт, запускающий батник через вызов shell; в браузере открывать страницу со скриптом, либо посылая запрос на этот скрипт.
Столкнулся с такой же ошибкой. Оказывается, когда делаешь обработку сообщений в chrome.runtime.addListener(hendled()), то выход из обработчика нужно прописывать как return true;
И в content_scripts и в background.