chrome.runtime.connectNative генерирует Uncaught TypeError: undefined не является функцией

Я написал расширение chrome, которое вызывает эту функцию connect () для подключения к локальной программе на C ++:

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");
}

Я вижу test1 в консоли, но потом я получил ошибку

Uncaught TypeError: undefined is not a function

в соответствии

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

Файл манифеста моих расширений находится здесь:

{
  "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

}

Мой com.a.chrome_interface.json выглядит так:

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

и com.a.chrome_interface - исполняемый файл C ++ linux, который генерирует файл, если он вызывается и этот файл никогда не создается. Я положил оба файла в

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

Так что, я думаю, я правильно зарегистрировал свой C ++, но я также думаю, что если я зарегистрирую его неправильно, я получу другую ошибку. Если я использую chrome.extension.connect (), сценарий запускается через него, и сообщение об ошибке исчезает, но в мою программу на C ++ не поступает никаких данных.

Я прочитал и стараюсь следовать инструкциям наhttps://developer.chrome.com/extensions/messaging#native-messaging и много гуглил, но я смог выяснить причину своей проблемы.

Я использую Chromium 34 на Ubuntu 12.04.

Когда я пишу расширение, мне нужно использовать chrome.runtime.connectNative () или chrome.extension.connectNative ()?Как я могу подключиться и отправить данные в мою программу C ++?

Ответы на вопрос(1)

Ваш ответ на вопрос