Я работаю над расширением браузера в Firefox, чтобы перехватывать HTTP-запросы и изменять их. Из-за цели моего проекта мне нужно будет включить проект, который построен на C ++, для обработки этой информации. Переписывание проекта на C ++ заняло бы слишком много времени (это большой проект). Я прочитал, что могу превратить код C ++ в файл .dll и использовать его, но я не уверен, как это сделать (что-то новое для расширений программирования. Много сделал для веб-разработчиков).
Я провел много исследований, и NPAPI, кажется, является подходящим способом (я знаю, что он постепенно сворачивается, но проект — просто подтверждение концепции, над которой мне нужно работать). Однако я не уверен, что фреймворки, такие как FireBreath, могут делать расширения. Это также должно быть в Firefox, так как моя компания больше ничего не использует.
Есть ли хороший способ доступа к коду C ++ в расширении? Я хотел бы некоторые ссылки на учебники, если таковые имеются. Я читал эта предыдущая тема, но это не дало твердого заключения о том, что использовать. Кроме того, если есть лучший / более простой способ сделать это (плагины и т. Д.), Я хотел бы знать!
Извините, если это не на том форуме. Все еще новенькое здесь: S
Я согласен с комментариями, что вы должны абсолютно проверить все другие возможности, прежде чем идти с этим. Я бы, наверное, посмотрел на написание собственного прокси-сервера (похоже на Чарльз работает), что когда он работает, он делает все, что вы хотите сделать.
FireBreath можно использовать для создания плагинов и только для создания плагинов. тем не мение, Вы можете использовать плагин внутри расширения, по крайней мере, на данный момент (вы уже знаете о запланированном прекращении работы). Таким образом, если вы можете захватить данные с помощью расширения (а я не знаю расширений, поэтому я не уверен, можете ли вы это сделать или нет), то вы можете передать его в экземпляр плагина, используя ваше расширение javascript, чтобы выполнить обработку что ты хочешь сделать.
Правило большого пальца, хотя: Если это может быть сделано любым другим способом, чем плагин, don't use a plugin
,
@taxilian правильно сказать:
Если это можно сделать любым другим способом, кроме плагина, не используйте плагин.
Написание фактического расширения Firefox было бы более подходящим. В эти дни рекомендуется использовать JS-ctypes для взаимодействия с двоичными двоичными объектами (DLL, так, dylib). Что бы вы сделали:
nsIHttpChannel
, nsITracableChannel