Плагин Npapi падает в сафари

Я разработал плагин npapi для Windows. Работает в Chrome, Opera, Firefox.
Но он падает в Safari.
Я пытался найти стабильный плагин npapi, который работает в сафари, но я не нашел этот.

Например:

1) Я получаю собственность от плагина для первого раза. Оно работает.

2) Но когда я пытаюсь сделать это снова, это терпит неудачу.

Но я вижу, что вспышка работает в Safari. Зачем?
Спасибо.

bool CScriptableObject::HasProperty(NPIdentifier name)
{
ATL::CString strFunc = NPN_UTF8FromIdentifier(name);
if(!strFunc.CompareNoCase(PROPERTY_VERSION))
{
return true;
}
return false;
}

bool CScriptableObject::GetProperty(NPIdentifier name, NPVariant *result)
{
ATL::CString strFunc = NPN_UTF8FromIdentifier(name);
if(!strFunc.CompareNoCase(PROPERTY_VERSION))
{
INT32_TO_NPVARIANT(6, *result);
return true;
}
return false;
}

Таким образом, этот код работает только один раз, когда я пытаюсь получить правильную «версию» из сбоев js Safari

0

Решение

Есть много плагинов, которые работают в Safari; нет никакого мыслимого способа, которым мы могли бы даже догадаться, в чем проблема, не видя ваш код и журнал сбоев.

кроме того, вы не упомянули, какую ОС вы используете; Mac Safari гораздо стабильнее, чем Windows Safari.

GradeCam-х Плагин NPAPI, который был построен с FireBreath отлично работает на Safari (Mac определенно, Windows последний раз я проверял, но я, возможно, не пробовал последнюю версию).

0

Другие решения

Я нашел проблему!
Я посмотрел на исходный код Firebreath и понял.
Это было в коде, когда я возвращал объект сценариев в NPP_GetValue.
Я не вызывал NPN_RetainObject. Я думаю, что Safari выпустил мой объект, и он разрушен.

0

По вопросам рекламы [email protected]