Por vezes, programadores desavisados tentam fazer uso do chrome.tabs mas sempre encontram o erro de chrome.tabs is undefined.
E como resolver este problema?
O primeiro passo é verificar o manifest.json. Ele deve conter a permissão tabs, conforme exemplo abaixo:
"permissions": [ (...) ,"tabs" ,(...) ]
(…) no código acima se refere a outras permissões que podem estar antes ou depois. A ordem não importa.
Caso o erro permaneça, é hora de verificar outro ponto muito importante.
chrome.tabs não estará disponível no código da área “content script”. Verifique portanto se seu código está rodando nesta área. Estando, será necessário mudá-lo para fazer uso desta api. Mova o código para a área “background”.
Lá esta api estará disponível e poderá ser utilizada praticamente sem restrições.
Caso precise de comunicação de dados entre o “content script” e o “background”, verifique como enviar mensagens com chrome.runtime.sendMessage e como receber com chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {});