Как запустить программу командной строки в Firefox Webextensions?

Я хотел бы запустить команду (exe где-нибудь на диске) с аргументами в простом надстройке WebExtensions и, возможно, получить ее стандартный вывод. Есть ли способ сделать это в WebExtensions, поскольку старые API устарели?


person dismantle    schedule 11.06.2016    source источник


Ответы (1)


В этом сообщении блога упоминается, как - https://blog.mozilla.org/addons/2016/06/09/webextensions-for-firefox-49/

Прочтите раздел runtime.connectNative. Они говорят:

runtime.connectNative

Этот API позволяет вам взаимодействовать с другими процессами в операционной системе хоста. Это широко используемый API для менеджеров паролей и программного обеспечения безопасности, которому необходимо взаимодействовать с внешними процессами.

Для взаимодействия с собственным процессом существует двухэтапный процесс. Во-первых, вашему установщику необходимо установить файл манифеста JSON в соответствующем месте на целевом компьютере. Этот манифест JSON обеспечивает связь между Firefox и процессом. Во-вторых, пользователь устанавливает надстройку. Затем надстройка может вызывать connectNative, sendNativeMessage и другие API:

chrome.runtime.sendNativeMessage('your-application',
  { text: "Hello" },
  function(response) {
    console.log("Received " + response);
});

Firefox запустит процесс, если он еще не запущен, и направит команды процессу. Следите за ходом выполнения runtime.connectNative на Bugzilla.

person Noitidart    schedule 14.06.2016
comment
Поскольку в блоге этот API указан как действующий, я предполагаю, что его нельзя использовать прямо сейчас? - person Michael Bednarek; 16.06.2016
comment
@MichaelBednarek, вероятно, можно использовать только в Nightly и Dev Edition. Если вы хотите создать надстройку Firefox Addon SDK, вы можете использовать child_process - developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs/ - person Noitidart; 16.06.2016