Błąd przekazywania wiadomości Chrome: próba użycia odłączonego obiektu portu

Moje rozszerzenie chrome używa długotrwałego obiektu „Port” do przesyłania wiadomości między stroną „skrypt treści” i „popup”. „Popup” może wysłać wiadomość do detektora zdarzeń „content script”. Jednak obiekt „Port” w „skrypcie treści” nie może wysłać wiadomości do strony „popup”.

var port = chrome.extension.connect({"name":"swap"});

// listener for incoming connections
chrome.extension.onConnect.addListener(function( incomingPort ){

    // listener on incoming messages
    incomingPort.onMessage.addListener(function( msg ){

        if( msg.command === 'get_scripts' ){
            //do work

        }

        var scrs = { 'scripts' : 'name' };
        var result = port.postMessage( scrs );

    });
});

Podczas wykonywania 'port.postMessage (Object obj)' wtyczka zgłasza następujący błąd:

Error in event handler for 'undefined': Attempting to use a disconnected port object   Error: Attempting to use a disconnected port object
at PortImpl.postMessage (miscellaneous_bindings:54:5)
at chrome-extension://loiamkgdhfjdlkcpehnebipeinpcicfj/swap.js:27:31
at [object Object].dispatch (event_bindings:203:41)
at Object.<anonymous> (miscellaneous_bindings:250:22) event_bindings:207

Próbowałem użyć obiektu „Port” i obiektu „incomingPort”, obaj rzucają ten sam „błąd”. Odnosi się to do zakresu wstępnie utworzonego obiektu „Port”.

Kod wtyczki jest dostępny w tym repozytorium githttps://github.com/snambi/chrome_plugin/tree/master/src/chrome

Co jest nie tak w tej wtyczce?

questionAnswers(1)

yourAnswerToTheQuestion