Подтвердить что ты не робот

Как написать плагин для браузера?

Мне любопытно, как писать плагины браузера для браузеров, таких как Chrome, Safari и Opera. Я думаю конкретно о Windows здесь и предпочел бы работать с С++.

Существуют ли какие-либо инструменты или учебные пособия, которые подробно описывают процесс?

Примечание. Я не имею в виду расширения или "аддоны". Я имею в виду плагин, похожий на то, как Flash и Adobe Reader имеют плагины для обработки определенных типов контента.

4b9b3361

Ответ 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. Я думаю, что в будущем становится труднее и труднее писать плагины на С++, поскольку отсутствует поддержка браузеров.

Ответ 4

Если вы знаете Qt, тогда у них есть несколько классов, которые упрощают реализацию плагинов для браузера.