Как написать плагин для браузера? - PullRequest
35 голосов
/ 16 апреля 2010

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

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

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

Ответы [ 4 ]

41 голосов
/ 23 сентября 2010

Как отмечают другие, плагины для этих браузеров написаны с использованием NPAPI .

Примечание: и Firefox, и Chrome по умолчанию установят большинство плагинов для быстрого воспроизведения по клику , при этом Chrome планирует полностью прекратить NPAPI . На этом этапе NPAPI для новых проектов не рекомендуется.

Ресурсы для начала работы с NPAPI:

Сам NPAPI, однако, является относительно низкоуровневым, но есть инструменты и структуры, которые могут помочь вам в этом:

  • FireBreath - кросс-браузерная, кроссплатформенная фреймворк для плагинов
  • Nixysa - сгенерировать клей-код для плагинов NPAPI
  • JUCE - инфраструктура приложений, также обеспечивающая поддержку плагинов
  • QtBrowserPlugin - Фреймворк плагинов для браузера на основе Qt
5 голосов
/ 20 марта 2013

Я исследовал некоторые фреймворки, перечисленные Георгом, вот что я получаю:

  1. FireBreath. Я думаю, что это почти лучший из доступных. Вы можете создать кроссплатформенный плагин для браузера с FireBreath за несколько дней. Я нашел некоторые минусы: он не поддерживает символы utf-8 в Windows. Например: если в имени файла есть китайские символы, вы не можете прочитать содержимое этого файла. Я считаю, что boost / locale может решить эту проблему. Но FireBreath не содержит boost / locale. Да, вы можете использовать внешний буст, но я потратил несколько дней на настройку и настройку, но все еще не могу его скомпилировать в Windows. Автор использует cmake для организации кода и подпроектов. И он создал много скриптов bat или shell и макросов cmake, это очень сложно понять и настроить. Короче говоря, если вы хотите что-то, что FireBreath в настоящее время не предоставляет, вам не повезет, очень сложно добавить новые функции.

  2. Nixysa. Я не думаю, что он активно развивается. Документация плохая. А из комментариев на вики-странице: https://code.google.com/p/nixysa/wiki/HelloWorldWalkThru Мы можем знать, что пользователи вообще не могли получить помощь, и у них возникли проблемы с ее запуском в Windows

  3. Джюс. Это не специально для создания плагинов для браузера. Это НЕ поддерживает Linux. Автор думает, что NPAPI умрет, поэтому он не планирует поддерживать Linux или добавлять новые функции.

  4. QtBrowserPlugin. Вы не можете найти его в документации позже, чем QT 4.5. Другими словами, он не поддерживается (и удален из Qt 5.0)

Я обновлю этот ответ, как только найду больше.

Обновление: Chrome упал NPAPI поддержка. Я думаю, что в будущем становится все труднее писать плагины на C ++ из-за отсутствия поддержки со стороны браузеров.

2 голосов
/ 16 апреля 2010

Браузеры, такие как браузеры на основе Netscape, Chrome, Safari и Opera, используют систему плагинов NPAPI, вы можете узнать, как писать плагины NPAPI в https://developer.mozilla.org/en/Plugins и http://code.google.com/chrome/extensions/npapi.html

0 голосов
/ 27 апреля 2010

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

...