5

ho recentemente sviluppato un'estensione Chrome di Google che utilizza un plug-in NPAPI effettuata utilizzando il framework dello sputare fuoco. Ho appena scoperto che google interromperà a breve questi tipi di plugin e alla fine vieterà tutte le estensioni esistenti che li utilizzano. Quindi, mi piacerebbe passare all'architettura NaCl/PPAPI, ma non sono sicuro che questa architettura possa supportare ciò che sto attualmente facendo nel plugin NPAPI.Google estensione Chrome con NPAPI trasferirsi a NaCl

Nel mio plug-in NPAPI corrente sto sostenendo OSX e Windows. Nella versione OSX, il plug-in esegue la funzione system() che esegue un piccolo applescript a 1 linea. Assomiglia a questo:

osascript -e 'tell app ... 

Nella versione di Windows, esegue le funzioni in una libreria COM. Entrambe le versioni finiscono per fare la stessa identica cosa. Un'altra opzione che ho è l'esecuzione di uno script python, se dovessi seguire questa strada, molto probabilmente vorrei incorporare python nel componente nativo.

È tutto questo più possibile con NaCl/PPAPI?

risposta

3

Dato che si sta già utilizzando un'estensione, è possibile cercare Native Messaging in sostituzione dell'utilizzo di NPAPI.

+0

Native Messaging non funzionerà perché il processo con cui sto interagendo non lo supporta. –

+0

Hai detto di aver sviluppato un plug-in NPAPI; nel modello di messaggistica nativo, il processo a cui si riferisce la tua estensione sarebbe un file binario che hai creato, che avrebbe lo stesso codice del tuo plug-in NPAPI, meno tutta la colla NPAPI e invece la gestione nativa dei messaggi nativi.Il processo a cui stai parlando in definitiva presumibilmente supporta anche il caricamento come plugin NPAPI, ma ciò non significa che NPAPI non abbia funzionato come intermediario. – smorgan

+1

Sì, mi rendo conto che posso fare un ponte, ma questa sarà la mia ultima risorsa. Mi è piaciuto il fatto che il componente NPAPI sia fornito in un unico pacchetto di facile installazione dall'archivio delle estensioni. Dovendo installare l'estensione del browser, quindi installare un componente nativo separato è qualcosa che non vorrei fare se posso aiutarlo. –

5

la possibilità di eseguire la funzione del sistema arbitrario() o eseguire funzioni arbitrarie da una libreria COM è # 1 motivo per NPAPI deprecazione. Idem per l'esecuzione di uno script python (si può eseguire script Python in NaCl, ovviamente - ma non sarà in grado di chiamare la funzione di sistema() o una libreria COM o).

Non è una novità: come è stato notato nel Chrome Comic book il giorno del cromo plugin rilascio NPAPI sono senza restrizioni e che si tratta di un grosso problema: http://www.google.com/googlebooks/chrome/small_30.html

Era evidente già allora che questa situazione non può che essere tollerato per così tanto tempo. I plugin sono stati tollerati per cinque anni perché alcune cose importanti erano inimmaginabili senza di loro, ma ora è il momento di uccidere i plugin e assicurarsi che nulla nel browser possa accedere direttamente al sistema operativo.

Se si desidera implementare alcune funzionalità che non possono essere implementate nel browser al momento perché non ci sono API appropriate il modo giusto è chiedere su Chromium-dev e aggiungere questa API a Chromium (e forse anche ad altri browser). Ad esempio, l'accesso alle porte COM (non alle librerie) è stato aggiunto di recente (vedere http://developer.chrome.com/apps/app_hardware.html).

+0

Attualmente ciò che il plug-in fa effettivamente interagisce con skype. Imposta lo stato di skype. È deludente che presto non sarò più in grado di farlo in un browser di Chrome di serie. Grazie per il feedback, chiederò in giro su chromium-dev. –

+1

Siamo lontani anni dal giorno in cui il browser può gestire tutto. L'accesso al filesystem, ad esempio, le attuali API JS sandbox non funzionano se è necessario modificare il file in un'app reale, come ad esempio Autocad. Tutto ciò che la decisione di Google farà è consolidare IE nell'azienda. –

0

Se non avete bisogno di un'interazione tra browser e l'applicazione, è possibile utilizzare il supporto del protocollo esterno. È necessario registrare il protocollo nel registro su Windows. Non so come funzionano i protocolli esterni su OSX. Quando l'utente fa clic sul link del protocollo esterno, Chrome mostra una finestra di dialogo che consente all'utente di avviare l'applicazione.

Problemi correlati