簡単なスクリプト可能なnpapiプラグインを作成しました。JavaScriptとFireFoxのプラグインの間で文字列を渡すことは問題なく機能します。ただし、文字列にハイフン(-)記号が含まれている場合、GoogleChromeで余分なランダム文字が生成されます。たとえば、私のJavaScriptコードでは、
plugin.method("a-b");
私のnpapiコードでは、
bool ScriptablePluginObject::Invoke(NPIdentifier name, const NPVariant *args, uint32_t argCount, NPVariant *result) {
char* outString = args[0].value.stringValue.UTF8Characters;
char* npOutString = (char *)NPN_MemAlloc(strlen(outString) + 1);
strcpy(npOutString, outString);
STRINGZ_TO_NPVARIANT(npOutString, *result);
return true;
}
Firefoxでは「ab」を返します。Chromeでは「ab*[-..」といくつかの余分なランダム記号が表示されます。npplugin.dllをMozillaの下の「plugins」ディレクトリに配置するか、Chrome拡張機能チュートリアル(http://code.google.com/chrome/extensions/npapi.html)を使用してみましたが、どちらの方法でも同じ奇妙な動作が見られました。コードはxulrunner-10.0.2.en-US.win32.sdkでコンパイルされ、xulrunner-1.9.0.17.en-US.win32.sdkを使用しても同じ問題が発生します。
誰か手がかりはありますか?