Reason for Uncaught Error: Attempting to use a disconnected port object
This is caused when a connection get closed. For example if you open a tab that has the content_script
injected, it opens a connection, the tab is closed, and then the background_page
tries to pass a message. It will fail because the tab is no longer active to receive the message.
In your case I would guess that as tabs close and new tabs open you are attempting to post messages with the old tabId
instead of creating a new connection to the new tab. I would recommend reading through the long-lived connections section again.
In my case, however, I needed to provide the sendResponse
function to the chrome.runtime.sendMessage(msg, responseCallbackMissingHere)
, which will give you the "Attempting to use a disconnected port object" error.