Chrome 用の NaCl プラグインに取り組んでおり、URL リソース ファイルをローカルにダウンロードして Chrome の一時キャッシュに保存しようとしていますが、成功しません。
これが私が進める方法です:
// I indicate that I want the resource to be downloaded to a file
m_URLRequestInfo.SetStreamToFile( true );
// I open the request:
m_URLLoader.Open( m_URLRequestInfo, m_CCFactory.NewCallback( &MyClass::OnOpen ) );
...
// My callback (OnOpen) is eventually called.
// I then check to make sure the status code is 200 using this call:
m_URLLoader.GetResponseInfo().GetStatusCode()
// Then I ask to download the whole file:
m_URLLoader.FinishStreamingToFile( m_CCFactory.NewOptionalCallback( &MyClass::OnFileDownloaded ) );
...
// My other callback (OnFileDownloaded) gets eventually called,
// and again the status code is 200.
// Then I query the FileRef using this call:
pp::FileRef l_FileRef = m_URLLoader.GetResponseInfo().GetBodyAsFileRef();
返された pp::FileRef は問題ないように見えますが、pp::FileRef::GetFileSystemType() は PP_FILESYSTEMTYPE_EXTERNAL を返し、pp::FileRef::GetPath() の呼び出しは失敗します (未定義の pp::Var を返します)。
したがって、この時点から、私は迷っています。ブラウザーのキャッシュ内のローカル ファイルを指す有効な pp::FileRef を取得するために他に何をすべきかわかりません。私の最終的な目標は、fopen() のような標準のシステム ファイル IO を使用して、このローカル ファイル (私の場合はイメージ ファイル) を開くことです。
光をありがとう!