Я пытаюсь заставить мое расширение 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/"
]
}