Pergunta

Alguém poderia escrever um guia passo a passo para desenvolver um plugin baseado em C++ para FireFox no Windows?

Os links e exemplos em http://www.mozilla.org/projects/plugins/ são todos antigos e imprecisos - o link "NOVO" foi adicionado à página em 2004.

O exemplo poderia ser qualquer coisa, mas eu estava pensando em um plugin que deixasse o JavaScript definir o nome e depois exibisse "Hello {Name}".Para mostrar a comunicação bidirecional, poderia ter uma propriedade que retornasse a saudação completa.

Embora não seja tão importante, seria bom se o plugin também funcionasse no Chrome.

Foi útil?

Solução

Veja também http://developer.mozilla.org/en/Plugins .E sim, os plug-ins NPAPI também devem funcionar no Google Chrome.

[editar 2015:Chrome removerá suporte para NPAPI em breve http://blog.chromium.org/2014/11/the-final-countdown-for-npapi.html ]

Outras dicas

Se você precisar de algo que funcione em vários navegadores (firefox e ie), você pode dar uma olhada no firebreath: http://www.firebreath.org

Para informações gerais sobre "como construir um plugin npapi no Windows", tenho algumas postagens no blog sobre o assunto (também com links de algumas das fontes acima)

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

Eu realmente recomendo firebreath, já que o criamos exatamente para pessoas que não têm tempo para fazer os meses (literalmente) de pesquisa que levamos para descobrir como tudo funciona.Se você não quiser usá-lo como base para o seu plugin, você ainda pode encontrar muitos bons exemplos de código lá.

deve funcionar no Chrome, Firefox e Safari no Windows também!=]

boa sorte!

É bastante simples criar um plugin usando NPAPI.Os principais arquivos de cabeçalho que você precisa da distribuição Gecko são npapi.h e npupp.h.Você exportará funções da DLL do seu plugin ou biblioteca compartilhada com os nomes NP_Initialize, NP_Shutdown, NP_GetMIMEDescription e NP_GetValue, e também precisará preencher a tabela de símbolos fornecida na chamada NP_Initialize com manipuladores para todos os NPP funções.

As principais funções a serem implementadas nesse conjunto são NPP_New e NPP_Destroy.Eles definem o ciclo de vida de uma instância de plugin.Se você for lidar com um arquivo de mídia vinculado a um <objeto> ou <embed>, também precisará lidar com NPP_NewStream, NPP_WriteReady, NPP_Write e NPP_DestroyStream como uma forma de seu plugin obter os dados do arquivo do navegador.Há muito mais em o guia do desenvolvedor do plugin Gecko.

Confira Nixysa http://code.google.com/p/nixysa/.Tentei construir os exemplos no Mozilla SDK, mas eles foram difíceis de construir.A amostra Nixysa é fácil de construir.Além disso, o código é muito mais organizado do que usar NPAPI diretamente.A única desvantagem é que até hoje o Nixysa não está bem documentado.Eu tenho um exemplo do Nixysa que implementa retornos de chamada, se você quiser (planejo enviar um patch para o Nixysa quando tiver tempo para fazê-lo).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top