크롬 확장에 C++ 바이너리를 사용할 수 있습니까?크롬 확장 프로그램에서 C++을 사용할 수 있습니까?
답변
예, 다른 브라우저와 마찬가지로 확장 프로그램과 comunicate하는 NPAPI 플러그인을 작성할 수 있습니다.
는 관련 Google 페이지 at code.google.com그리고 at wikipedia
NPAPI는 보안 문제에 대한 크롬/오페라에서 사용되지 않습니다 더 일반적인 설명을 참조하십시오.
파이어 폭스를 타겟팅하는 경우에도 NPAPI를 사용할 수 있지만, 파이어 폭스가 추세를 따르면 어떤 시점에서도 NPAPI가 비활성화 될 수 있습니다. 모든 코드가 실행
-
오늘이 더 나은 옵션
는사용 염화나트륨 당신은 가
대신 NativeClient (페퍼 플러그인 API AKA NaCl를, AKA PPAPI)를 사용할 수 있습니다 만 크롬
대상으로하는 경우 NaCl 내부에는 샌드 박스가 있으므로 자바 스크립트 확장만큼 안전합니다.사용 asm.js 당신은 매우 자바 스크립트 형식이라고 asm.js. 최적화에 당신은 C/C++ 코드를 컴파일 할 수 있습니다 Emscripten를 사용하여 모든 플랫폼
을 대상으로하는 경우 거의 기본 성능을 갖도록 설계되었으며 현재는 decent support from grade-A browsers except Safari입니다. 지금은 크롬보다 성능이 Firefox에서 더 우수하지만.
브라우저 벤더가 부분적으로 asm.js에서 영감을 WebAssembly라는 새로운 표준에 노력하고 있습니다 주요 있지만,이 문서의 같은 주요 사용에 대한 준비가되어 있지
PPAPI에 대한 브라우저 지원은 무엇입니까? Chrome 전용 기능이므로 앞으로 다른 브라우저에서 활용할 가능성이 거의 없습니다. – Pacerier
PPAPI는 현재 Chrome을 기반으로하므로 Opera에서 지원됩니다. – Eduardo
NPAPI는 그다지 좋지 않습니다. IE 나 Chrome이 더 이상 지원하지 않기 때문에 Safari/Firefox에서만 지원됩니다. IE는 Microsoft Edge에서도 사용되지 않는 ActiveX를 사용했습니다. 네이티브 브라우저 플러그인을 구축하는 것은 쉽게 할 수있는 일이 아닙니다. – Eduardo
바와 같이 상단, 당신은 크롬을 위해 염화나트륨을 사용했다 및 asm.js와 Emscripten을 모든 플랫폼에서 사용할 수 있지만 리버스 엔지니어링은 바이너리보다 간단합니다. 이제 중간 솔루션이 있습니다. 웹 어셈블리 - 브라우저에 임베드 된 LLVM 바이트 코드는 대부분의 최신 브라우저 https://caniuse.com/#feat=wasm에서 지원됩니다. 그래서 Emscripten은 C++을 wasm으로 컴파일 할 수 있습니다. 대부분 asm.js보다 빠릅니다.
그런 다음 NPAPI로 처음 작성하면 어떨까요? – Pacerier