2008-09-15 16 views
9

¿Podría alguien escribir una guía paso a paso para desarrollar un complemento basado en C++ para Firefox en Windows?Cómo escribir un complemento C++ FireFox 3 (no extensión) en Windows?

Los enlaces y ejemplos sobre http://www.mozilla.org/projects/plugins/ son viejos e inexactos - se añadió el enlace "NUEVO" a la página en 2004.

El ejemplo podría ser cualquier cosa, pero yo estaba pensando en un plugin que permite establecer el JavaScript nombre y luego muestra "Hola {Nombre}". Para mostrar la comunicación bidireccional, podría tener una propiedad que devuelva el saludo completo.

Aunque no es tan importante, sería bueno que el complemento también funcione en Chrome.

Respuesta

3

Es bastante simple hacer un plugin usando NPAPI. Los archivos de encabezado clave que necesitará de la distribución de Gecko son npapi.hy npupp.h. Exporte funciones de su DLL de complemento o biblioteca compartida con los nombres NP_Initialize, NP_Shutdown, NP_GetMIMEDescription y NP_GetValue, y también deberá completar la tabla de símbolos que se le asignó en la llamada NP_Initialize con controladores para todos los NPP funciones.

Las funciones clave para implementar desde ese conjunto son NPP_New y NPP_Destroy. Estos definen el ciclo de vida de una instancia de complemento. Si va a manejar un archivo multimedia vinculado desde un objeto <> o < incrustado>, también deberá tratar con NPP_NewStream, NPP_WriteReady, NPP_Write y NPP_DestroyStream como una forma de que su complemento obtenga los datos del archivo del archivo. navegador. Hay mucho más en the Gecko Plugin developer's guide.

2

Salida Nixysa http://code.google.com/p/nixysa/. Traté de crear las muestras en el SDK de Mozilla pero eran difíciles de construir. La muestra de Nixysa es fácil de construir. Además, el código es mucho más ordenado que el uso directo de NPAPI. El único inconveniente es que a partir de hoy Nixysa no está bien documentado. Tengo una muestra de Nixysa que implementa devoluciones de llamada si lo desea (planeo enviar un parche a Nixysa cuando lo encuentre).

+0

¿Lo ha probado como una extensión? Todavía tengo que encontrar una solución de * solo one * NPAPI Visual Studio que construir! Si aún lo tiene, me gustaría ver el código que tiene e instrucciones sobre cómo hacerlo construir ... nixysa tiene un archivo de solución, por ejemplo, "complejo", pero tampoco compila.Usando los iconos, los ejemplos se compilan, pero el dll compilado está roto, le faltan cosas (?) Y Chrome no encuentra los métodos del complemento. Gracias. – Ciantic

6

Si necesita algo que funciona entre navegadores (Firefox e IE), usted podría mirar a firebreath: http://www.firebreath.org

para General "cómo construir un plugin NPAPI en las ventanas" de la información, tengo un par de entradas de blog sobre el tema (vinculado a partir de algunas de las fuentes anteriores, así)

http://colonelpanic.net/2009/03/building-a-firefox-plugin-part-one/

realmente recomiendo firebreath, sin embargo, ya hemos creado exactamente para las personas que no tienen tiempo para hacer los meses (literalmente) de investigación que nos llevó a descubrir cómo funciona todo. Sin embargo, si no quiere usarlo como base para su complemento, aún puede encontrar un buen código de ejemplo allí.

debería funcionar en Chrome, Firefox y Safari en Windows también! =]

buena suerte!

+0

Guau, amigo, acabas de salvar mi tocino, gracias por una increíble contribución api y completa. –

Cuestiones relacionadas