Я работаю над плагином NaCl для Chrome и пытаюсь загрузить файл ресурсов 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() терпит неудачу (он возвращает UNDEFINED pp::Var).
Так что с этого момента я потерян. Я не знаю, что еще я должен сделать, чтобы получить действительный pp::FileRef, указывающий на локальный файл в кеше браузера. Моя конечная цель — открыть этот локальный файл (в моем случае файл изображения) с помощью стандартного системного файла ввода-вывода, такого как fopen().
Спасибо за любой свет!