È possibile utilizzare binario C++ nell'estensione di Chrome?C'è un modo per usare C++ nell'estensione di Chrome?
risposta
Sì, come con altri browser, è possibile scrivere un plug-in NPAPI che comunicherà con la propria estensione.
vedi relativo di Google pagina at code.google.com
E una descrizione più generica at wikipedia
NPAPI è stata sconsigliata da Chrome/Opera per problemi di sicurezza.
È ancora possibile utilizzare NPAPI se si sta mirando a Firefox, ma se Firefox segue la tendenza potrebbe disabilitarlo a un certo punto.
Le opzioni migliori che hai oggi sono
Usa NaCl se si prendono di mira solo Chrome
è possibile utilizzare invece NativeClient (AKA NaCl, AKA PPAPI - Pepper Plugin API)
Tutto il codice ha funzionato all'interno di NaCl è sandboxed quindi è sicuro come le estensioni javascript.
Utilizzare asm.js se come obiettivo tutte le piattaforme
Usando Emscripten è possibile compilare il codice C/C++ in altamente ottimizzato javascript formato chiamato asm.js. È progettato per avere prestazioni quasi native e al momento dispone di decent support from grade-A browsers except Safari. Sebbene le prestazioni siano migliori in Firefox rispetto a Chrome al momento.
Maggiore produttori di browser stanno anche lavorando su un nuovo standard chiamato WebAssembly che è parzialmente ispirato asm.js, ma non è pronto per l'uso come primo di questo articolo
Qual è il supporto del browser per PPAPI? È una cosa solo per Chrome e quindi ha poche possibilità di essere utilizzato da altri browser in futuro? – Pacerier
PPAPI è anche supportato da Opera poiché ora è basato su Chrome. – Eduardo
Si noti che NPAPI non è molto migliore, a questo punto è supportato solo da Safari/Firefox poiché né IE né Chrome lo supportano più. IE ha utilizzato ActiveX, anch'esso obsoleto per Microsoft Edge. Costruire plugin per browser nativi non è qualcosa di cross-browser facilmente realizzabile, immagino. – Eduardo
Come detto in alto, è possibile utilizzare NaCl per Chrome e asm.js con Emscripten per tutte le piattaforme, ma il reverse engineering è più semplice di quello binario. Ora c'è una soluzione intermedia: webassembly - il bytecode LLVM integrato nel browser è supportato dalla maggior parte dei browser moderni https://caniuse.com/#feat=wasm. Quindi Emscripten può compilare C++ in wasm, principalmente è più veloce di asm.js.
- 1. C'è un modo di usare orderby in un C# forloop?
- 2. C'è un modo semplice per usare InternalsVisibleToAttribute?
- 3. c'è un modo per usare C++ 0x su xcode? Voglio usare gcc 4.4 o superiore
- 4. Un modo per usare immutable.js con lodash?
- 5. È un buon modo per usare java.util.concurrent.FutureTask?
- 6. C'è un modo per ottenere xpath in google chrome?
- 7. C'è un modo compatto per dire al compilatore C# di usare l'operatore di base e ==?
- 8. Modo corretto per usare get_or_create?
- 9. C++ in meno di sovraccarico dell'operatore, quale modo di usare?
- 10. C'è un modo per usare `dynamic` nell'albero di espressione lambda?
- 11. Un modo migliore di usare git add?
- 12. C'è un modo per usare @ Html.HiddenFor per il modello completo?
- 13. Un modo per usare la codifica Scala per iOS?
- 14. c'è un modo per far funzionare title = attribute su Chrome?
- 15. C'è un modo per creare ed eseguire javascript in Chrome?
- 16. Rifattore codice C++ per usare un linguaggio di scripting?
- 17. C'è un modo per usare l'API navigabile per Django Rest Framework con Authtoken
- 18. C'è un modo per controllare chrome chrome: // flags/valori usando javascript?
- 19. C'è un modo per usare Jenkins con Github Pull Requests?
- 20. C'è un modo per usare `exec` in una clausola where?
- 21. C'è un modo semplice per usare clang con Open MPI?
- 22. C'è un modo per usare cancel in Android JellyBean TimePickerDialog?
- 23. C'è un modo per usare setOnClickListener con uno Spinner Android?
- 24. C'è un modo semplice per usare l'avvoltoio con django?
- 25. C'è un modo per usare Python 3.5 su Cygwin?
- 26. c'è un modo per usare tr /// (o equivalente) in java?
- 27. C'è un modo per usare PyCharm su più monitor
- 28. C'è un modo per usare Canvas in IE7 o IE8?
- 29. C'è un modo in C# per replicare un '#ifndef _DEBUG' da C/C++?
- 30. modo migliore per utilizzare un C Interfaccia ++
Quindi perché non scrivere direttamente come NPAPI in primo luogo? – Pacerier