Пишу расширение, сталкивался уже с таким явлением, если вкладка хрома не активна, никаких действий не происходит.
из расширения одной вкладке посылаю сообщение через background в другое окно
let Req= {action:'SendMessageToTabsID', tabid:idTab, CMD:'ну ту разная фигня', data:{тут тоже}, func:''};
chrome.extension.sendMessage(Req);
в background
тра ля-ля
chrome.tabs.sendMessage(request['tabid'], data:requst, function(response) {
});
action:'SendMessageToTabsID' принимает в backgroundе и отправляет на нужный tabid
принимаю, в другой вкладке
приемник от background
chrome.runtime.onMessage.addListener(function(request, sender, callback) {
if (request['action']=='SendMessageToTabsID') {
}
})
если в приемнике, вкладка не активна, то прием там осуществляется (делаю проверку звуком и иногда через NN время вледующие запросы так же обрабатываются, по крайней мере на прием, ну и иногда приходит ответ от этой табы к табе, которая отправила запрос но дальше ничего не происходит, пока не сделаешь руками или программно табу активной)
только на одном сайте это происходит, остальные в фоне работают нормально.
как можно пролечить это дело, как-то раз такое тоже было, но я не заморачивался особо программно ее сделать на пол секунды активной, все отработает вернет и можно было скрыть ее, а вот сейчас запросов много к ней должно идти и делать ее принудительно активной вообще не вариант. В developer.chrome про остановку выполнения кода ничего не нашел, хотя вроде там как-бы есть такое, может в настройках флагов chromа можно запретить остановку его работы (расширение для хрома все равно для индивидуального пользования) может я плохо искал, прошу помощи братья!