Chrome で NPAPI を使用する代わりに、ファイル アップローダー PPAPI プラグインを作成する必要があります。
hello_nacl_cpp
例のプロジェクトを拡張して、vs_addin
PPAPI と NaCl をテストします。コードは次のようになります。
...
int32_t showSelectFileDialog() {
pp::CompletionCallbackWithOutput< std::vector<pp::FileRef> > cb =
factory_.NewCallbackWithOutput(&NaClProjectInstance::onFilesSelected);
int32_t ret = file_chooser_.Show(cb);
return ret;
}
void onFilesSelected(int32_t result,
const std::vector<pp::FileRef>& files) {
std::stringstream ss;
if (result == PP_OK) {
// ok
} else {
ss << "undo select file? error code: " << result;
PostMessage(pp::Var(ss.str()));
}
}
...
PPAPI プラットフォームを選択して上記のコードをデバッグすれば問題ありません。しかし、NaCl64 プラットフォームでは、結果はPP_ERROR_NO_USER_GESTURE(-41)
. どうすればこれを修正できますか?