c++ - internet - plugin java chrome
¿Cómo escribir un plugin de navegador? (4)
Tengo curiosidad sobre el procedimiento para escribir complementos de navegador para navegadores como Chrome, Safari y Opera. Estoy pensando específicamente en Windows aquí y preferiría trabajar con C ++.
¿Hay alguna herramienta o tutorial que detalle el proceso?
Nota : No me refiero a extensiones o ''complementos''. Me refiero a un complemento similar a cómo Flash y Adobe Reader tienen complementos para manejar tipos de contenido específicos.
Como otros señalan, los complementos para esos navegadores se escriben usando el NPAPI .
Nota: Firefox y Chrome predeterminan la mayoría de los complementos NPAPI , y Chrome planea eliminar por completo NPAPI . NPAPI para nuevos proyectos no se recomienda en este punto.
Recursos para comenzar con NPAPI:
- Sección de complemento de MDC
- tutorial de tres partes NPAPI
- gestión de memoria en NPAPI
- npsimple : el "Hello World" de los complementos de NPAPI
- npapi-sdk - la fuente de los encabezados NPAPI canónicos
- Complemento de prueba de Mozillas : bueno para buscar casos de uso de NPAPI específicos
El NPAPI en sí mismo es, sin embargo, relativamente de bajo nivel, pero hay herramientas y marcos que pueden ayudarlo con esto:
- FireBreath - cross-browser, multiplataforma marco de trabajo para complementos
- Nixysa : genera un código de pegamento para los complementos de NPAPI
- JUCE - framework de aplicaciones también brinda soporte para complementos
- QtBrowserPlugin - Marco de plugin de navegador basado en Qt
Investigué algunos marcos enumerados por Georg, esto es lo que obtengo:
Aliento de fuego. Creo que es casi el mejor disponible. Puede crear un complemento de navegador multiplataforma con FireBreath en unos días. Encontré algunos inconvenientes: no es compatible con los caracteres UTF-8 en Windows. Por ejemplo: si hay caracteres chinos en un nombre de archivo, no puede leer el contenido de ese archivo. Creo que boost / locale puede resolver este problema. Pero FireBreath no contiene boost / locale. Sí, puedes usar boost externo, pero pasé varios días configurando y retocando y todavía no logro compilarlo en Windows. El autor usa cmake para reconocer el código y los subproyectos. Y creó una gran cantidad de scripts bat o shell y macros de cmake, es muy difícil de entender y configurar. En resumen, si quieres algo que FireBreath no proporciona actualmente, tendrás mala suerte, es muy difícil agregar nuevas funciones.
Nixysa. No creo que se esté desarrollando activamente. La documentación es pobre. Y a partir de los comentarios de la página wiki: https://code.google.com/p/nixysa/wiki/HelloWorldWalkThru Podemos saber que los usuarios no pudieron obtener ayuda en absoluto y que tenían problemas para ejecutarlo en Windows
JUCE. No es especialmente para crear complementos de navegador. NO es compatible con Linux. El autor cree que NPAPI va a morir, por lo que no tiene ningún plan para admitir Linux o agregar nuevas funciones.
QtBrowserPlugin. No puede encontrarlo en la documentación posterior a QT 4.5. En otras palabras, no se mantiene (y se elimina de Qt 5.0)
Actualizaré esta respuesta una vez que encuentre más.
Actualización: Chrome dejó de recibir asistencia de NPAPI . Creo que en el futuro será cada vez más difícil escribir complementos en C ++ porque carece de soporte de los navegadores.
Los navegadores como los navegadores basados en Netscape, Chrome, Safari y Opera usan el sistema de plugins NPAPI, puedes aprender cómo escribir complementos NPAPI en https://developer.mozilla.org/en/Plugins y http://code.google.com/chrome/extensions/npapi.html
Si conoces Qt, tienen algunas clases que facilitan la implementación de complementos del navegador