Как написать плагин для браузера?
Мне любопытно, как писать плагины браузера для браузеров, таких как Chrome, Safari и Opera. Я думаю конкретно о Windows здесь и предпочел бы работать с С++.
Существуют ли какие-либо инструменты или учебные пособия, которые подробно описывают процесс?
Примечание. Я не имею в виду расширения или "аддоны". Я имею в виду плагин, похожий на то, как Flash и Adobe Reader имеют плагины для обработки определенных типов контента.
Ответы
Ответ 1
Как отмечают другие, плагины для этого браузера записываются с помощью NPAPI.
Примечание. Как Firefox, так и Chrome по умолчанию будут использовать большинство плагинов для быстрого перехода по клику, при планировании Chrome - полностью отключить NPAPI. NPAPI для новых проектов не рекомендуется на этом этапе.
Ресурсы для начала работы с NPAPI:
Сам NPAPI, однако, относительно низкоуровневый, но есть инструменты и фреймворки, которые могут вам помочь:
- FireBreath - кросс-браузер, кросс-платформенная фрейм-работа для плагинов
- Nixysa - генерировать клей-код для плагинов NPAPI
- JUCE - структура приложения также обеспечивает поддержку плагинов
- QtBrowserPlugin - основанная на Qt платформа плагина для браузера
Ответ 2
Я исследовал некоторые рамки, перечисленные Георгом, вот что я получаю:
-
FireBreath. Я думаю, что это почти лучший из доступных. Вы можете создать плагин для кросс-платформенного браузера с FireBreath за несколько дней. Я нашел некоторые минусы: он не поддерживает utf-8 символов в Windows. Например: если в имени файла есть китайские символы, вы не можете прочитать содержимое этого файла. Я считаю, что boost/locale может решить эту проблему. Но FireBreath не содержит boost/locale. Да, вы можете использовать внешний boost, но я потратил несколько дней на настройку и настройку и до сих пор не могу его компилировать в Windows. Автор использует cmake для кодирования и подпроектов. И он создал множество сценариев с битами или оболочкой и макросами cmake, их очень сложно понять и настроить. Короче говоря, если вы хотите что-то, что FireBreath в настоящее время не предоставляет, вам будет не повезло, очень сложно добавить новые функции.
-
Nixysa. Я не думаю, что он активно развивается. Документация плохая. И из комментариев на странице wiki: https://code.google.com/p/nixysa/wiki/HelloWorldWalkThru Мы можем знать, что пользователи не могли получить помощь вообще, и у них были проблемы с ее запуском Окна
- Джюс
. Это не специально для создания плагинов браузера. Он НЕ поддерживает Linux. Автор считает, что NPAPI собирается умереть, поэтому он не планирует поддерживать Linux или добавлять новые функции.
-
QtBrowserPlugin. Вы не можете найти его в документации позже QT 4.5. Другими словами, он не поддерживается (и удаляется из Qt 5.0).
Я обновлю этот ответ, когда найду больше.
Обновление: Chrome упал NPAPI. Я думаю, что в будущем становится труднее и труднее писать плагины на С++, поскольку отсутствует поддержка браузеров.
Ответ 3
Браузеры, такие как браузеры Netscape, Chrome, Safari и Opera, используют плагиновую систему NPAPI, вы можете узнать, как писать плагины NPAPI в https://developer.mozilla.org/en/Plugins и http://code.google.com/chrome/extensions/npapi.html
Ответ 4
Если вы знаете Qt, тогда у них есть несколько классов, которые упрощают реализацию плагинов для браузера.