2010-04-15 13 views
33

Sono curioso di sapere la procedura per la scrittura browser plugin per i browser come Chrome, Safari e Opera. Sto pensando specificamente a Windows qui e preferirei lavorare con C++.Come scrivere un plugin per il browser?

ci sono strumenti o tutorial che illustrano il processo?

Nota: non mi riferisco alle estensioni o 'Il mondo'. Mi riferisco ad un plugin simile a come Flash e Adobe Reader hanno plugin per gestire specifici tipi di contenuto.

+1

Un plug-in simile a come Flash e Adobe Reader dispongono di plug-in per gestire tipi di contenuto specifici? –

+1

@ Ben: Sì! Esattamente. –

+1

Poiché NPAPI viene eliminato gradualmente in Chrome, l'API Plugin Pepper (PPAPI), "una serie di modifiche a NPAPI per rendere i plugin più portabili e più sicuri", è la sostituzione consigliata. Vorrei rispondere ora a questa domanda nel contesto di PPAPI, https://en.wikipedia.org/wiki/Google_Native_Client. IIRC Firefox non ha deciso di supportare PPAPI, ma sta invece lavorando con i fornitori di plug-in per apportare modifiche di sicurezza simili o simili a NPAPI e al software plug-in. –

risposta

39

Come altri sottolineano, plugin per quelli del browser sono scritti utilizzando il NPAPI.

Nota: Sia Firefox e Chrome stabilizzeranno maggior parte dei plugin to click-to-play soon, con la pianificazione Chrome per phase out NPAPI entirely. NPAPI per i nuovi progetti è scoraggiato a questo punto.

Risorse per iniziare con NPAPI:

Il NPAPI sé è comunque relativamente di basso livello, ma ci sono strumenti e framework che possono aiutare con esso:

  • FireBreath - cross- del browser, cross-platform framework per i plugin
  • Nixysa - generare colla-codice per NPAPI plugin
  • JUCE - application framework che fornisce anche il supporto per i plugin
  • QtBrowserPlugin - Qt quadro plugin per il browser basato
+1

Il collegamento "npsimple" sembra essere errato. È corretto? Https://github.com/mikma/npsimple? –

+0

@RobW Sì, l'altro collegamento era completamente irrilevante. Sembra essere un sito Web su un'applicazione per smartphone chiamata "Web of Cam". –

+0

Risolto ora, grazie. –

0

Se sai Qt allora hanno ottenuto alcune classi che rende più facile da implementare plugin del browser

4

ho studiato alcuni quadri elencati da Georg, qui è quello che ottengo:

  1. dello sputare fuoco. Penso che sia quasi il migliore disponibile. Puoi creare un plugin per browser multipiattaforma con FireBreath in pochi giorni. Ho trovato alcuni contro: non supporta i caratteri utf-8 su Windows. Per esempio: se ci sono i caratteri cinesi in un nome di file, non è possibile leggere il contenuto del file. Credo che boost/locale possa risolvere questo problema.Ma FireBreath non contiene boost/locale. Sì, puoi usare boost esterno, ma ho trascorso diversi giorni a configurare e modificare e ancora non riesco a farlo compilare su Windows. L'autore usa cmake per orgnize codice e sotto-progetti. E ha creato molti script bat o shell e macro cmake, è molto difficile da capire e configurare. In breve, se vuoi qualcosa che FireBreath attualmente non fornisce, avrai una sfortuna, è molto difficile aggiungere nuove funzionalità.

  2. Nixysa. Non penso che sia stato attivamente sviluppato. La documentazione è scarsa E dai commenti della pagina wiki: https://code.google.com/p/nixysa/wiki/HelloWorldWalkThru Possiamo sapere che gli utenti non hanno potuto ottenere aiuto e hanno avuto problemi a farlo funzionare su Windows

  3. JUCE. Non è appositamente per la creazione di plug-in del browser. NON supporta Linux. L'autore pensa che NPAPI sta per morire, quindi non ha intenzione di supportare Linux o aggiungere nuove funzionalità.

  4. QtBrowserPlugin. Non è possibile trovarlo nella documentazione più tardi di QT 4.5. In un'altra parola, non viene mantenuto (e rimosso da Qt 5.0)

Aggiornerò questa risposta una volta trovata.

Aggiornamento: Chrome rilasciato supporto NPAPI. Penso che in futuro diventerà sempre più difficile scrivere plugin in C++ perché manca il supporto dei browser.