Использование библиотек Java / Python при программировании расширений Firefox / Chrome

У меня есть идея изучить поведение пользователей в браузере, для чего я собираюсь сделать расширение Chrome / Firefox для динамического изучения поведения. У меня есть несколько предопределенных библиотек на Java и Python для анализа результатов, которые невозможно запрограммировать на простом JavaScript.

Теперь у меня вопрос: можно ли использовать сторонние библиотеки, особенно Python или Java, как простые вызовы функций?

У меня смутное представление о чем-то вроде Java XPCOM или PyXPCOM для Firefox. Однако для новичка все это выглядит так страшно. Я начал делать надстройку для Firefox, но где-то потерялся в огромном API.

Я обнаружил, что программирование расширений Chrome проще, чем Firefox, но я не нашел ничего похожего на XPCOM в Chrome.

Как я могу решить, какой выбрать?

  • Chrome - кажется простым, но я не уверен в его мощи.
  • Firefox - кажется мощным, но действительно ли возможно использовать любую библиотеку Java / Python?

Кроме того, я наткнулся на эту ссылку, которая может быть полезна: Каким образом кто-то использует сторонние библиотеки для включения в надстройки / расширения Firefox?

Но, похоже, в основном речь идет о C ++ и XPCOM.


person Shatu    schedule 09.09.2011    source источник


Ответы (2)


У меня смутное представление о чем-то вроде Java XPCOM или PyXPCOM для Firefox. Но для новичка все это выглядит так страшно.

Я не новичок, и JavaXPCOM / PyXPCOM очень страшны (помимо того, что их почти не обслуживают). В Firefox должно быть намного проще обернуть вашу библиотеку Java / Python в приложение и запустить ее как внешний процесс: https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIProcess. Обратите внимание, что вы не можете вернуть данные (кроме кода выхода), поэтому приложение должно записать их в файл, который затем можно прочтите в расширении Firefox. Не очень элегантно, но имеет то преимущество, что выполнимо.

Что касается Chrome, его расширения работают в песочнице, и использование Java или Python невозможно. Единственный вариант - добавить подключаемый модуль NPAPI к вашему расширению. Это двоичный код, означающий, что он может делать все, что угодно.

person Wladimir Palant    schedule 10.09.2011

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

Другой подход, который вы можете использовать, - это реализовать свой код Java или Python на сервере и делать запросы из JavaScript расширения Chrome.

person Boris Smus    schedule 09.09.2011
comment
Привет, Борис! Центральным моментом всего моего проекта является изучение поведения пользователей без ущерба для конфиденциальности. Так что в этом случае я просто не могу задействовать сервер здесь. - person Shatu; 09.09.2011