Мой плагин NPAPI установлен, но я не могу вызвать метод из него - PullRequest
0 голосов
/ 27 июня 2011

Я вставил простой плагин NPAPI в расширение Google Chrome. Он устанавливается в Google Chrome (он показан в about: plugins), но на фоновой html-странице показано «отсутствует плагин» и когда вызывается метод (скажем, плагин) .foo), он показывает сообщение "плагин не имеет метода foo"

Мой вызов вызова выглядит примерно так

static bool
invoke(NPObject* obj, NPIdentifier methodName, const NPVariant *args, uint32_t argCount, NPVariant *result) {
    logmsg("invoke");
    int error = 1;
    char *name = npnfuncs->utf8fromidentifier(methodName);
    if(name) {
        if(!strcmp(name, "foo")) {
                    ...
                 ....

            return invokeDefault(obj, args, argCount, result);
        } 
    }
    // aim exception handling
    npnfuncs->setexception(obj, "exception during invocation");
    return false;
}

https://developer.mozilla.org/en/XEmbed_Extension_for_Mozilla_Plugins

в соответствии с этой документацией, я изменил свою функцию NP_GetValue, и у плагина нет NPP_SetWindow, так как я не хотел, чтобы это был оконный плагин.

Я что-то не так делаю? Также укажите любые другие места, где может быть ошибка.

Спасибо Привет

1 Ответ

0 голосов
/ 28 июня 2011

«Отсутствующий плагин» может отображаться либо в том случае, если плагин не загружен (например, вы указали тип MIME в теге объекта), либо в случае сбоя плагина во время инициализации.

Вы пытались запустить с --plugin-startup-dialog, чтобы увидеть, действительно ли ваш плагин был создан, и если да, то отладить его?

...