2009-11-03 10 views

risposta

15

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

+0

Quindi perché non scrivere direttamente come NPAPI in primo luogo? – Pacerier

36

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

+0

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

+0

PPAPI è anche supportato da Opera poiché ora è basato su Chrome. – Eduardo

+0

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

0

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.

Problemi correlati