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

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

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

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

4 ответов


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

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

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

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

  • Крокс - кросс-браузер, кросс-платформенный фрейм-работа для плагинов
  • Nixysa - генерировать клей-код для плагинов NPAPI
  • Джюс - Application framework также обеспечивает поддержку плагинов
  • QtBrowserPlugin - Qt на основе браузера плагин framework

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

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

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

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

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

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

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


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


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