Через некоторое время, потраченное на расследование, я обнаружил проблему в моем деле.
Я также получаю:
Port error: Could not establish connection. Receiving end does not exist.
Прежде чем объяснить, я хочу сказать, что я использую sendMessage и onMessage для связи.
Для меня эта ошибка появляется, когда я отправляю сообщение с фоновой страницы на одну вкладку, где выполняется мой скрипт содержимого.
Мое расширение работает только на вкладках, где открыт YouTube.
Поэтому, когда я изменяю некоторые настройки, я смотрю, какие вкладки у меня открыты, и отправляю сообщение для обновления обновленных настроек.
В нормальном случае это работает нормально, но если у меня n (n> = 1) вкладок с открытой YouTube. Я нажимаю кнопку «Обновить» для расширения, я что-то изменяю ... вкладки YouTube не обновляются, и они теряют прослушиватель сообщений, поэтому я получаю эту ошибку.
Кажется, это нормально.
Если я обновлю вкладки YouTube после перезагрузки расширения, я не получу эту ошибку.
Я нашел одно решение, оно может применяться не во всех случаях:
Когда у меня возникла эта проблема, мой код был:
chrome.tabs.sendMessage(tabId, {proprName: proprName, newValue: newValue}, function(response) {});
Теперь мой код:
chrome.tabs.sendMessage(tabId, {proprName: proprName, newValue: newValue});
Для меня мне не требовался ответный обратный вызов, и, поскольку он не отвечал, у меня была эта ошибка.