Index: chrome/browser/media_galleries/fileapi/picasa/picasa_file_util.cc |
diff --git a/chrome/browser/media_galleries/fileapi/picasa/picasa_file_util.cc b/chrome/browser/media_galleries/fileapi/picasa/picasa_file_util.cc |
index fa7bb7a22799545535239f682a88c7c4e9dcaf02..8e75bbc1fc8814ca80d8c8842501f30419b923a0 100644 |
--- a/chrome/browser/media_galleries/fileapi/picasa/picasa_file_util.cc |
+++ b/chrome/browser/media_galleries/fileapi/picasa/picasa_file_util.cc |
@@ -17,6 +17,7 @@ |
#include "chrome/browser/media_galleries/fileapi/picasa/picasa_data_provider.h" |
#include "chrome/browser/media_galleries/imported_media_gallery_registry.h" |
#include "chrome/common/media_galleries/picasa_types.h" |
+#include "content/public/browser/browser_thread.h" |
#include "webkit/browser/fileapi/file_system_operation_context.h" |
#include "webkit/browser/fileapi/file_system_url.h" |
#include "webkit/common/fileapi/file_system_util.h" |
@@ -65,8 +66,11 @@ void PicasaFileUtil::GetFileInfoOnTaskRunnerThread( |
const fileapi::FileSystemURL& url, |
const GetFileInfoCallback& callback) { |
GetDataProvider()->RefreshData( |
+ PicasaDataProvider::LIST_OF_ALBUMS_AND_FOLDERS_DATA, |
base::Bind(&PicasaFileUtil::GetFileInfoWithFreshDataProvider, |
- weak_factory_.GetWeakPtr(), base::Passed(&context), url, |
+ weak_factory_.GetWeakPtr(), |
+ base::Passed(&context), |
+ url, |
callback)); |
} |
@@ -75,8 +79,11 @@ void PicasaFileUtil::ReadDirectoryOnTaskRunnerThread( |
const fileapi::FileSystemURL& url, |
const ReadDirectoryCallback& callback) { |
GetDataProvider()->RefreshData( |
+ PicasaDataProvider::LIST_OF_ALBUMS_AND_FOLDERS_DATA, |
base::Bind(&PicasaFileUtil::ReadDirectoryWithFreshDataProvider, |
- weak_factory_.GetWeakPtr(), base::Passed(&context), url, |
+ weak_factory_.GetWeakPtr(), |
+ base::Passed(&context), |
+ url, |
callback)); |
} |
@@ -282,17 +289,34 @@ base::PlatformFileError PicasaFileUtil::GetLocalFilePath( |
void PicasaFileUtil::GetFileInfoWithFreshDataProvider( |
scoped_ptr<fileapi::FileSystemOperationContext> context, |
const fileapi::FileSystemURL& url, |
- const GetFileInfoCallback& callback) { |
- NativeMediaFileUtil::GetFileInfoOnTaskRunnerThread(context.Pass(), url, |
- callback); |
+ const GetFileInfoCallback& callback, |
+ bool success) { |
+ if (!success) { |
+ content::BrowserThread::PostTask( |
+ content::BrowserThread::IO, |
+ FROM_HERE, |
+ base::Bind( |
+ callback, base::PLATFORM_FILE_ERROR_IO, base::PlatformFileInfo())); |
+ return; |
+ } |
+ NativeMediaFileUtil::GetFileInfoOnTaskRunnerThread( |
+ context.Pass(), url, callback); |
} |
void PicasaFileUtil::ReadDirectoryWithFreshDataProvider( |
scoped_ptr<fileapi::FileSystemOperationContext> context, |
const fileapi::FileSystemURL& url, |
- const ReadDirectoryCallback& callback) { |
- NativeMediaFileUtil::ReadDirectoryOnTaskRunnerThread(context.Pass(), url, |
- callback); |
+ const ReadDirectoryCallback& callback, |
+ bool success) { |
+ if (!success) { |
+ content::BrowserThread::PostTask( |
+ content::BrowserThread::IO, |
+ FROM_HERE, |
+ base::Bind(callback, base::PLATFORM_FILE_ERROR_IO, EntryList(), false)); |
+ return; |
+ } |
+ NativeMediaFileUtil::ReadDirectoryOnTaskRunnerThread( |
+ context.Pass(), url, callback); |
} |
PicasaDataProvider* PicasaFileUtil::GetDataProvider() { |