chrome.runtime.connectNative gera UnAught TypeError: undefined não é uma função

Eu escrevi uma extensão do Chrome que chama essa função connect () para conectar-se a um programa C ++ local:

function connect() {
  console.log("test1");
  //port = chrome.extension.connectNative('com.a.chrome_interface');
  port = chrome.runtime.connectNative('com.a.chrome_interface');

  port.onMessage.addListener(onNativeMessage);
  port.onDisconnect.addListener(onDisconnected);
  console.log("test5");
}

Consigo ver o test1 no console, mas depois recebi o erro

Uncaught TypeError: undefined is not a function

na linha

port = chrome.runtime.connectNative('com.a.chrome_interface');

Meu arquivo de manifesto de extensões está aqui:

{
  "name": "CPP_Connect",
  "version": "1.0",
  "description": "Send data to CPP program",

  "content_scripts": [
   {
     "matches": ["<all_urls>"],
     "js": ["contentscript.js"]
   }
  ],

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

  "manifest_version": 2

}

Meu com.a.chrome_interface.json fica assim:

{
"name": "com.a.chrome_interface",
"description": "Chrome Native Messaging API Example Host",
"path": "com.a.chrome_interface",
"type": "stdio",
"allowed_origins": [
"chrome-extension://abc.../"
]
}

e com.a.chrome_interface é um arquivo C ++ executável em linux que gera um arquivo, se for chamado e esse arquivo nunca for criado. Eu coloquei os dois arquivos

 /etc/opt/chrome/native-messaging-hosts/

Então, eu acho que registrei meu C ++ corretamente, mas também acho que, se eu registrasse errado, deveria receber um erro diferente. Se eu usar chrome.extension.connect (), o script será executado e a mensagem de erro desaparecerá, mas nenhum dado chegará ao meu programa C ++.

Eu li e tentei seguir as instruções emhttps://developer.chrome.com/extensions/messaging#native-messaging e pesquisei bastante no Google, mas pude descobrir a razão do meu problema.

Estou usando o Chromium 34 no Ubuntu 12.04.

Enquanto escrevo uma extensão, tenho que usar chrome.runtime.connectNative () ou chrome.extension.connectNative ()?Como posso conectar e enviar dados para o meu programa C ++?

questionAnswers(1)

yourAnswerToTheQuestion