Расширения Google Chrome и NPAPI

Мне нужно написать какое-нибудь расширение для Google Chrome. Проблема в том, что API-интерфейсы Chrome JavaScript не дают мне достаточно мощности — мне нужно использовать нативный код. Я подумал о написании подключаемого модуля NPAPI, который предоставит расширение некоторых пользовательских API-интерфейсов JS.

Можно ли упаковать расширение и пользовательский подключаемый модуль NPAPI в файл .crx, а затем загрузить его в Магазин расширений Chrome?

Еще одна проблема с этим методом заключается в том, что плагин NPAPI будет иметь много версий: Linux, Windows, OS X, x86, x86-64 и т. д. Можно ли упаковать все это в crx и использовать лучшую версию?

Спасибо.

EDIT: прочитав это, Я понял, что невозможно элегантно решить проблему мультиплатформенности в одном crx. Но можно ли загружать разные crx-ы для каждой платформы в магазин расширений Chrome?


person Alon Gubkin    schedule 12.11.2010    source источник
comment
В своем редактировании вы сказали, что это невозможно, но так ли это в свете ответа Мохамеда ниже?   -  person Clay Fowler    schedule 08.12.2010


Ответы (1)


Если вы хотите использовать несколько платформ в одном CRX, вы должны расположить их в этом порядке в манифесте:

"plugins": [
   { "path": "plugin-windows.dll" },
   { "path": "plugin-linux.so" },
   { "path": "plugin-mac.plugin" }
]

Помните, что загрузка вашего расширения NPAPI в магазин будет работать только в расширениях Google Chrome. В случае ОС Google Chrome (которая использует Google Chrome) вы не сможете использовать NPAPI.

Но вы должны изучить PPAPI, который будет рекомендуемым способом разработки плагинов для расширения:

http://src.chromium.org/viewvc/chrome/trunk/src/ppapi/

В то же время NPAPI в расширениях вам нужно следовать этому руководству (которое прекрасно работает):

http://code.google.com/chrome/extensions/npapi.html

Просто помните, вам действительно нужно использовать NPAPI в вашем расширении? Если бы вы могли найти обходной путь HTML5, было бы лучше.

person Mohamed Mansour    schedule 12.11.2010
comment
файлы dll/so должны быть скомпилированы для x86 или x86-64? В каких версиях Google Chrome работает PPAPI? - person Alon Gubkin; 13.11.2010
comment
PPAPI в настоящее время находится в стадии разработки, дополнительную информацию об этом можно найти здесь: chromium.org/developers/design-documents/ Ну, компиляция не имеет значения (афаик), у меня 64-битная система, и я компилирую ее нормально там, и она работает на 32-битных платформах. - person Mohamed Mansour; 13.11.2010
comment
@MohamedMansour Для Linux это имеет значение. Мне нужно скомпилировать файл *.so отдельно для 32-битной и 64-битной Linux для проекта slimtext.org - person Tyler Long; 26.03.2013
comment
@TylerLong да, для Linux нужны разные архитектуры :) - person Mohamed Mansour; 27.03.2013