Можно ли использовать двоичный код С++ в chrome extension?
Есть ли способ использовать С++ в chrome extension?
Ответ 1
Да, как и в других браузерах, вы можете написать плагин NPAPI, который будет общаться с вашим расширением.
См. соответствующую страницу Google на code.google.com
И более общее описание в wikipedia
Ответ 2
NPAPI устарел от Chrome/Opera для обеспечения безопасности.
Вы все еще можете использовать NPAPI, если вы настроили таргетинг на firefox, но если Firefox следует этой тенденции, он может также отключить его в какой-то момент.
Лучшие варианты, которые у вас есть сегодня,
Используйте NaCl, если вы настроили таргетинг только на Chrome
Вместо этого вы можете использовать NativeClient (A.K.A. NaCL, A.K.A. PPAPI - API-интерфейс Pepper Plugin)
Весь код, запущенный внутри NaCl, изолирован, поэтому он защищен как расширение javascript.
Использовать asm.js, если вы настроите таргетинг на все платформы
Используя Emscripten, вы можете скомпилировать код C/С++ в высоко оптимизированный формат javascript под названием asm.js. Он разработан, чтобы иметь почти собственную производительность и теперь имеет достойную поддержку браузеров класса А, кроме Safari. Хотя производительность в Firefox лучше, чем в Chrome на данный момент.
Крупные поставщики браузеров также работают над новым стандартом, называемым WebAssembly, который частично вдохновлен asm.js, но не готов к простому использованию этой статьи
Ответ 3
Как сказано выше, вы можете использовать NaCl для chrome и asm.js с Emscripten для всех платформ, но обратная инженерия проще, чем двоичная. Теперь есть среднее решение: webassembly - байт-код LLVM, встроенный в браузер, поддерживается большинством современных браузеров https://caniuse.com/#feat=wasm. Таким образом, Emscripten может скомпилировать С++ для wasm, в основном это быстрее, чем asm.js.