Domanda

E 'possibile utilizzare C ++ binario in estensione Chrome?

È stato utile?

Soluzione

Sì, come con altri browser, è possibile scrivere un plugin NPAPI che comunicare con il proprio interno.

Si veda la relativa pagina di Google a code.google.com

E una descrizione più generica a wikipedia

Altri suggerimenti

NPAPI è stata sconsigliata da Chrome / Opera per problemi di sicurezza.

È comunque possibile utilizzare NPAPI se si prendono di mira firefox, ma se Firefox segue la tendenza si potrebbe disabilitare ad un certo punto pure.

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 corse dentro NaCl funzionalità di modo che è sicuro come un'estensioni JavaScript.

Utilizzo asm.js se come obiettivo tutte le piattaforme

Emscripten è possibile compilare il codice C / C ++ in altamente ottimizzato javascript formato chiamato asm.js. E 'progettato per avere prestazioni quasi native e in questo momento ha supporto decente dal browser del grado-A eccezione di Safari . Anche se le prestazioni è meglio in Firefox che Chrome al momento.

I principali 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

Aggiornamento 2018-05-14

Native Client viene deprecato e asm.js sta per essere sostituita da WebAssembly che sta diventando il nuovo standard per la compilazione codice C ++ per il web.

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 binario. Ora c'è una soluzione intermedia: webassembly - bytecode LLVM immerso nelle browser è supportato dalla maggior parte dei browser moderni https: // caniuse .com / # prodezza = wasm . Così Emscripten può compilare C ++ per wasm, per lo più è più veloce di asm.js.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top