Как написать плагин C ++ FireFox 3 (не расширение) для Windows? - PullRequest
9 голосов
/ 15 сентября 2008

Может ли кто-нибудь написать пошаговое руководство по разработке плагина на основе C ++ для FireFox в Windows?

Ссылки и примеры на http://www.mozilla.org/projects/plugins/ все старые и неточные - ссылка "NEW" была добавлена ​​на страницу в 2004 году.

Примером может быть что угодно, но я подумал о плагине, который позволяет JavaScript устанавливать имя и затем отображает «Hello {Name}». Чтобы показать двустороннюю связь, он может иметь свойство, которое возвращает полный привет.

Хотя это и не так важно, было бы неплохо, если бы плагин работал и в Chrome.

Ответы [ 4 ]

6 голосов
/ 20 декабря 2009

Если вам нужно что-то, что работает кросс-браузерно (firefox и т. Д.), Вы можете посмотреть на firebreath: http://www.firebreath.org

Для общей информации о том, "как создать плагин npapi для Windows", у меня есть несколько постов в блоге на эту тему (на которые также ссылаются некоторые из вышеперечисленных источников)

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

Однако я действительно рекомендую огненное дыхание, поскольку мы создали его именно для людей, у которых нет времени (буквально) на месяцы исследований, которые потребовались нам, чтобы выяснить, как все это работает. Если вы не хотите использовать его в качестве основы для своего плагина, вы все равно можете найти там много хороших примеров кода.

должно работать и на Chrome, Firefox и Safari на Windows! =]

удачи!

5 голосов
/ 16 сентября 2008

См. Также http://developer.mozilla.org/en/Plugins. И да, плагины NPAPI должны работать и в Google Chrome.

[редактировать 2015: Chrome скоро убирает поддержку NPAPI http://blog.chromium.org/2014/11/the-final-countdown-for-npapi.html]

3 голосов
/ 16 сентября 2008

Сделать плагин с помощью NPAPI довольно просто. Ключевыми файлами заголовка, которые вам понадобятся в дистрибутиве Gecko, являются npapi.h и npupp.h. Вы экспортируете функции из библиотеки плагинов или разделяемой библиотеки с именами NP_Initialize, NP_Shutdown, NP_GetMIMEDescription и NP_GetValue, и вам также необходимо заполнить таблицу символов, данную вам в вызове NP_Initialize, с обработчиками для всех NPP функции.

Ключевыми функциями для реализации из этого набора являются NPP_New и NPP_Destroy. Они определяют жизненный цикл экземпляра плагина. Если вы собираетесь обрабатывать мультимедийный файл, связанный с или , вам также необходимо иметь дело с NPP_NewStream, NPP_WriteReady, NPP_Write и NPP_DestroyStream, чтобы ваш плагин мог получить данные файла из браузер. В руководстве разработчика плагинов Gecko .

есть еще много всего.
2 голосов
/ 30 июня 2009

Проверьте Nixysa http://code.google.com/p/nixysa/. Я пытался собрать образцы в Mozilla SDK, но их было сложно собрать. Образец Nixysa легко построить. Плюс код гораздо аккуратнее, чем напрямую используя NPAPI. Единственным недостатком является то, что на сегодняшний день Nixysa недостаточно хорошо документированы. У меня есть пример Nixysa, который реализует обратные вызовы, если вы этого хотите (я планирую отправить патч Nixysa, когда доберусь до него).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...