Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1377)

Unified Diff: chrome/browser/media_galleries/fileapi/picasa/picasa_file_util.cc

Issue 18986012: Media Galleries API Picasa: Make PicasaDataProvider handle async PMP and INI parsing robustly. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@0039-picasa-import-sandbox-ini-parsing
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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() {

Powered by Google App Engine
This is Rietveld 408576698