Хозяин обмена сообщениями с расширением Chrome мгновенно отключается - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь заставить мое расширение chrome запускать сценарий bash через собственный обмен сообщениями, но хост-приложение просто мгновенно отключается. Так что если кто-нибудь может мне помочь, это было бы здорово, потому что я пытался заставить это работать несколько часов. Это просто мгновенно говорит, что отключено, когда я получаю сообщение от моего contentScript. Я не получаю сообщение об ошибке или что-то еще, и документация гуглит для этого очень плохо. Спасибо, если вы можете мне помочь.

это мой фон. Js

var port;

chrome.runtime.onInstalled.addListener(function() {
  chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    chrome.tabs.executeScript(tab.ib, {
      file: 'contentScript.js'
    });
  })

});

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    runScript();
  });

function runScript() {
  port = chrome.runtime.connectNative("crashFixingtonNative")
  port.onDisconnect.addListener(function() {
    console.log("Disconnected");
  });
}

это мой manifest.json (для расширения)

{
 "name" : "Crash Fixington",

 "version" : "1.0",

 "description" : "----",

 "permissions": ["tabs",
        "activeTab",
        "<all_urls>",
        "nativeMessaging"],

 "background" : {
    "scripts" : ["background.js"],
    "persistent" : true
 },

 "manifest_version": 2
}

my contentScript.js

(function() {
  var orderIdList = document.getElementsByClassName(" nowrap avoid-wrap");
  for (var i = 0; i < orderIdList.length; i++) {
    var a = document.createElement("a");
    a.setAttribute('href', ''); // gives link standard look
    a.addEventListener("click", function() {
      requestRunScript();
      window.event.preventDefault();
    }, false);
    a.textContent = orderIdList[i].textContent;
    orderIdList[i].replaceWith(a);
  }

})();
function requestRunScript() {
  chrome.runtime.sendMessage({
      greeting: ""
    },
    function(response) {});
}

и, наконец, мой crashFixingtonNative.json (для моего сценария .sh)

{
  "name": "crashFixingtonNative",
  "description": "crashFixingtonNative",
  "path": "/Library/Google/Chrome/NativeMessagingHosts",
  "type": "stdio",
  "allowed_origins": [
    "chrome-extension://pfahbpdkjhgfjelhmbkedlcbbkpeiehk/"
  ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...