2011-12-03 15 views
6

Non ho mai scritto una vera e propria estensione Chrome. Ne ho fatto uno che era solo un elenco a discesa di collegamenti qualche tempo fa, ma questo non conta davvero. In ogni caso, invece di tuffarmi di nuovo nella massiccia raccolta di tutorial su come scrivere estensioni di Chrome, ho pensato che mi sarei assicurato che la mia idea fosse possibile prima.È possibile che un'estensione di Chrome scriva in un file nella directory di sistema di Chrome?

Il mio piano è questo: voglio prendere la traccia attualmente in riproduzione nel lettore di Pandora e inviare le informazioni sulla traccia a una fonte esterna al browser (nel mio caso, uno script Python).

Ottenere informazioni in sé non dovrebbe essere difficile a tutti; la loro nuova interfaccia HTML5 rende questa parte super semplice. Il problema è comunicare le informazioni una volta ottenuto. Mi piacerebbe evitare di dover caricare i dati su un server Web e avere Python da cui estrarlo.

Ovviamente, Chrome non renderà molto facile per le estensioni inviare messaggi DBus o altro, ma è possibile scrivere su un file nella directory di sistema di Chrome da qualche parte e avere Python a prelevarlo? Sono completamente ridicolo persino nel fare una domanda del genere?

EDIT: ho pensato di riferire su quello che in realtà finito per fare per tutti coloro che succede da questa domanda in futuro. Dal momento che avevo solo bisogno di questa estensione per lavorare su un singolo computer (il mio), ho appena installato mod_python per Apache e la mia estensione ha inviato i suoi dati direttamente al mio script Python in attesa su localhost. Questo ha il vantaggio di non aver bisogno di eseguire il polling di un URL o di un file da Python, come inizialmente avevo pensato che avrei dovuto. Evita inoltre di introdurre i potenziali rischi per la sicurezza associati a NPAPI.

risposta

3

L'unico modo per fare questo, che mi viene in mente, sarebbe un NPAPI extension. NPAPI ti permette di includere un binario nativo con la tua estensione che il tuo plugin è quindi in grado di comunicare con. Puoi fare praticamente tutto quello che ti piace in quel binario.

Tuttavia, seguire l'avvertimento a pagina ho linkato sopra:

NPAPI è davvero un grosso martello che dovrebbe essere utilizzato solo quando nessun altro approccio funzionerà.

codice in esecuzione in un plugin NPAPI ha il pieno autorizzazioni dell'utente corrente e non viene tenuta stagna o schermato da input dannoso da parte di Google Chrome in alcun modo. Si dovrebbe essere particolarmente cauti durante l'elaborazione di input da fonti non attendibili, come ad esempio quando che lavorano con gli script contenuti o XMLHttpRequest.

A causa della sicurezza aggiuntiva rischi NPAPI rappresenta per gli utenti, le estensioni che lo utilizzano richiederà la revisione manuale prima di essere accettati nel Chrome Web Store.

0

Questa è una vecchia questione, ma qui è un'altra opzione:

Se si scrive per localStorage dal proprio interno, è possibile accedere alla directory di archiviazione locale di Chrome, in cui ogni sito e l'estensione è comodamente dato il proprio file. In Linux, la directory si trova in ~/.config/google-chrome/Default/Local Storage e in Windows è %LocalAppData%\Google\Chrome\User Data\Default\Local Storage. Non ho un Mac da controllare, ma non dovrebbe essere difficile da trovare.

I dati vengono memorizzati come quello che sembra essere JSON all'interno di SQLite. Non ho provato personalmente a trasformarlo in qualcosa di utile, ma l'informazione è tutto lì. Ho appena fatto un test rapido, e il file sembra essere aggiornato non appena si scrive su localStorage, quindi si può mettere un osservatore del file system su di esso e ricevere una notifica ogni volta che cambia.

Problemi correlati