Плагин NPAPI не загружен в Chrome - PullRequest
1 голос
/ 22 июля 2011

У меня есть плагин npapi, состоящий из файла dll и manifest.json. Эта DLL-библиотека npapi определяется как плагин на Chrome, т.е. она указана на странице about: plugins. Однако, когда я вызываю этот плагин на примере html-страницы, используя тег, он говорит: «Плагин не удалось загрузить». Любые идеи, почему этот плагин не загружается в Chrome.

Спасибо

Ответы [ 2 ]

4 голосов
/ 22 июля 2011

С предоставленной вами информацией невозможно сказать наверняка, но я думаю, это одна из двух вещей:

  1. Ваш плагин может иметь внешнюю зависимость, которая не найдена. Если вы ссылаетесь на другую библиотеку, для которой требуется файл .DLL (или если вы используете / MD для версии DLL CRT), и DLL не может быть найдена, когда браузер пытается загрузить DLL плагина, тогда ваш плагин тихо не сможет загрузить

  2. Возможно, DLL вашего плагина загружается, но затем выдает исключение, неправильно обрабатывает вещи и т. Д. Таким образом, что браузер решает, что это недопустимый плагин. Скорее всего, это не так, так как Chrome обычно сообщает о сбое, а не об отсутствующем плагине. Однако это можно проверить, запустив Chrome с аргументом командной строки --plugin-startup-dialog, который вызовет всплывающее диалоговое окно с pid до загрузки DLL плагина. Затем вы можете подключить отладчик и сказать, чтобы он продолжал.

Из этих двух, первая, безусловно, самая распространенная проблема, которую я вижу. Вы можете устранить неполадки, получив Dependency Walker (зависимость.exe) и открыв DLL на месте, чтобы увидеть, чего не хватает. Если вы видите, что ieshims.dll игнорирует его - он всегда думает, что его нет, но находит его при работе браузера.

Дополнительные советы по отладке плагинов можно найти по адресу http://npapi.com/x/MYAG и, конечно, если вы этого еще не сделали, я бы порекомендовал использовать инфраструктуру FireBreath , которая решает большинство проблем NPAPI, с которыми вы можете столкнуться для вас.

Удачи!

1 голос
/ 15 сентября 2011

Вы должны определить MIME-тип в файле плагина .rc.В противном случае плагин не загружается должным образом:

VALUE "MIMEType", "application / myapp"

...