Index: chrome/browser/chromeos/gdata/gdata_wapi_feed_loader.cc |
diff --git a/chrome/browser/chromeos/gdata/gdata_wapi_feed_loader.cc b/chrome/browser/chromeos/gdata/gdata_wapi_feed_loader.cc |
index b33094616da0af145a3adec49f6cc56892beb369..cc9219cfc091632f9075fc4bbc4c9e84b5b22860 100644 |
--- a/chrome/browser/chromeos/gdata/gdata_wapi_feed_loader.cc |
+++ b/chrome/browser/chromeos/gdata/gdata_wapi_feed_loader.cc |
@@ -138,18 +138,6 @@ bool UseLevelDB() { |
} // namespace |
-LoadRootFeedParams::LoadRootFeedParams( |
- bool should_load_from_server, |
- const FileOperationCallback& callback) |
- : should_load_from_server(should_load_from_server), |
- load_error(GDATA_FILE_OK), |
- load_start_time(base::Time::Now()), |
- callback(callback) { |
-} |
- |
-LoadRootFeedParams::~LoadRootFeedParams() { |
-} |
- |
GetDocumentsParams::GetDocumentsParams( |
int64 start_changestamp, |
int64 root_feed_changestamp, |
@@ -173,6 +161,31 @@ GetDocumentsParams::~GetDocumentsParams() { |
STLDeleteElements(feed_list.get()); |
} |
+LoadRootFeedParams::LoadRootFeedParams( |
+ bool should_load_from_server, |
+ const FileOperationCallback& callback) |
+ : should_load_from_server(should_load_from_server), |
+ load_error(GDATA_FILE_OK), |
+ load_start_time(base::Time::Now()), |
+ callback(callback) { |
+} |
+ |
+LoadRootFeedParams::~LoadRootFeedParams() { |
+} |
+ |
+LoadFeedParams::LoadFeedParams( |
+ ContentOrigin initial_origin, |
+ const LoadDocumentFeedCallback& feed_load_callback) |
+ : initial_origin(initial_origin), |
+ start_changestamp(0), |
+ root_feed_changestamp(0), |
+ should_fetch_multiple_feeds(true), |
+ feed_load_callback(feed_load_callback) { |
+} |
+ |
+LoadFeedParams::~LoadFeedParams() { |
+} |
+ |
// Defines set of parameters sent to callback OnNotifyDocumentFeedFetched(). |
// This is a trick to update the number of fetched documents frequently on |
// UI. Due to performance reason, we need to fetch a number of files at |
@@ -273,18 +286,16 @@ void GDataWapiFeedLoader::OnGetAccountMetadata( |
scoped_ptr<base::Value> feed_data) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ LoadFeedParams param(initial_origin, |
+ base::Bind(&GDataWapiFeedLoader::OnFeedFromServerLoaded, |
+ weak_ptr_factory_.GetWeakPtr())); |
+ param.start_changestamp = local_changestamp + 1; |
+ param.load_finished_callback = callback; |
+ |
GDataFileError error = util::GDataToGDataFileError(status); |
if (error != GDATA_FILE_OK) { |
// Get changes starting from the next changestamp from what we have locally. |
- LoadFromServer(initial_origin, |
- local_changestamp + 1, 0, |
- true, /* should_fetch_multiple_feeds */ |
- std::string() /* no search query */, |
- GURL(), /* feed not explicitly set */ |
- std::string() /* no directory resource ID */, |
- callback, |
- base::Bind(&GDataWapiFeedLoader::OnFeedFromServerLoaded, |
- weak_ptr_factory_.GetWeakPtr())); |
+ LoadFromServer(param); |
return; |
} |
@@ -305,15 +316,7 @@ void GDataWapiFeedLoader::OnGetAccountMetadata( |
} |
if (!account_metadata.get()) { |
- LoadFromServer(initial_origin, |
- local_changestamp + 1, 0, |
- true, /* should_fetch_multiple_feeds */ |
- std::string() /* no search query */, |
- GURL(), /* feed not explicitly set */ |
- std::string() /* no directory resource ID */, |
- callback, |
- base::Bind(&GDataWapiFeedLoader::OnFeedFromServerLoaded, |
- weak_ptr_factory_.GetWeakPtr())); |
+ LoadFromServer(param); |
return; |
} |
@@ -341,17 +344,10 @@ void GDataWapiFeedLoader::OnGetAccountMetadata( |
return; |
} |
+ param.start_changestamp = local_changestamp > 0 ? local_changestamp + 1 : 0; |
+ param.root_feed_changestamp = account_metadata->largest_changestamp(); |
// Load changes from the server. |
- LoadFromServer(initial_origin, |
- local_changestamp > 0 ? local_changestamp + 1 : 0, |
- account_metadata->largest_changestamp(), |
- true, /* should_fetch_multiple_feeds */ |
- std::string() /* no search query */, |
- GURL(), /* feed not explicitly set */ |
- std::string() /* no directory resource ID */, |
- callback, |
- base::Bind(&GDataWapiFeedLoader::OnFeedFromServerLoaded, |
- weak_ptr_factory_.GetWeakPtr())); |
+ LoadFromServer(param); |
} |
void GDataWapiFeedLoader::OnGetAboutResource( |
@@ -362,18 +358,15 @@ void GDataWapiFeedLoader::OnGetAboutResource( |
scoped_ptr<base::Value> feed_data) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ LoadFeedParams param(initial_origin, |
+ base::Bind(&GDataWapiFeedLoader::OnFeedFromServerLoaded, |
+ weak_ptr_factory_.GetWeakPtr())); |
+ param.load_finished_callback = callback; |
+ |
GDataFileError error = util::GDataToGDataFileError(status); |
if (error != GDATA_FILE_OK) { |
// Get changes starting from the next changestamp from what we have locally. |
- LoadFromServer(initial_origin, |
- local_changestamp + 1, 0, |
- true, /* should_fetch_multiple_feeds */ |
- std::string() /* no search query */, |
- GURL(), /* feed not explicitly set */ |
- std::string() /* no directory resource ID */, |
- callback, |
- base::Bind(&GDataWapiFeedLoader::OnFeedFromServerLoaded, |
- weak_ptr_factory_.GetWeakPtr())); |
+ LoadFromServer(param); |
return; |
} |
@@ -382,15 +375,7 @@ void GDataWapiFeedLoader::OnGetAboutResource( |
about_resource = AboutResource::CreateFrom(*feed_data); |
if (!about_resource.get()) { |
- LoadFromServer(initial_origin, |
- local_changestamp + 1, 0, |
- true, /* should_fetch_multiple_feeds */ |
- std::string() /* no search query */, |
- GURL(), /* feed not explicitly set */ |
- std::string() /* no directory resource ID */, |
- callback, |
- base::Bind(&GDataWapiFeedLoader::OnFeedFromServerLoaded, |
- weak_ptr_factory_.GetWeakPtr())); |
+ LoadFromServer(param); |
return; |
} |
@@ -420,16 +405,9 @@ void GDataWapiFeedLoader::OnGetAboutResource( |
} |
// Load changes from the server. |
- LoadFromServer(initial_origin, |
- local_changestamp > 0 ? local_changestamp + 1 : 0, |
- largest_changestamp, |
- true, /* should_fetch_multiple_feeds */ |
- std::string() /* no search query */, |
- GURL(), /* feed not explicitly set */ |
- std::string() /* no directory resource ID */, |
- callback, |
- base::Bind(&GDataWapiFeedLoader::OnFeedFromServerLoaded, |
- weak_ptr_factory_.GetWeakPtr())); |
+ param.start_changestamp = local_changestamp > 0 ? local_changestamp + 1 : 0; |
+ param.root_feed_changestamp = largest_changestamp; |
+ LoadFromServer(param); |
} |
void GDataWapiFeedLoader::OnGetApplicationList( |
@@ -450,19 +428,8 @@ void GDataWapiFeedLoader::OnGetApplicationList( |
} |
} |
-// TODO(kochi): Fix too many parameters. http://crbug.com/141359 |
-void GDataWapiFeedLoader::LoadFromServer( |
- ContentOrigin initial_origin, |
- int64 start_changestamp, |
- int64 root_feed_changestamp, |
- bool should_fetch_multiple_feeds, |
- const std::string& search_query, |
- const GURL& feed_to_load, |
- const std::string& directory_resource_id, |
- const FileOperationCallback& load_finished_callback, |
- const LoadDocumentFeedCallback& feed_load_callback) { |
+void GDataWapiFeedLoader::LoadFromServer(const LoadFeedParams& param) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- DCHECK(!feed_load_callback.is_null()); |
// |feed_list| will contain the list of all collected feed updates that |
// we will receive through calls of DocumentsService::GetDocuments(). |
@@ -472,42 +439,43 @@ void GDataWapiFeedLoader::LoadFromServer( |
if (gdata::util::IsDriveV2ApiEnabled()) { |
documents_service_->GetChangelist( |
- feed_to_load, |
- start_changestamp, |
+ param.feed_to_load, |
+ param.start_changestamp, |
base::Bind(&GDataWapiFeedLoader::OnGetChangelist, |
weak_ptr_factory_.GetWeakPtr(), |
- initial_origin, |
- feed_load_callback, |
+ param.initial_origin, |
+ param.feed_load_callback, |
base::Owned(new GetDocumentsParams( |
- start_changestamp, |
- root_feed_changestamp, |
+ param.start_changestamp, |
+ param.root_feed_changestamp, |
feed_list.release(), |
- should_fetch_multiple_feeds, |
- search_query, |
- directory_resource_id, |
- load_finished_callback, |
+ param.should_fetch_multiple_feeds, |
+ param.search_query, |
+ param.directory_resource_id, |
+ param.load_finished_callback, |
NULL)), |
start_time)); |
return; |
} |
documents_service_->GetDocuments( |
- feed_to_load, |
- start_changestamp, |
- search_query, |
- directory_resource_id, |
+ param.feed_to_load, |
+ param.start_changestamp, |
+ param.search_query, |
+ param.directory_resource_id, |
base::Bind(&GDataWapiFeedLoader::OnGetDocuments, |
weak_ptr_factory_.GetWeakPtr(), |
- initial_origin, |
- feed_load_callback, |
- base::Owned(new GetDocumentsParams(start_changestamp, |
- root_feed_changestamp, |
- feed_list.release(), |
- should_fetch_multiple_feeds, |
- search_query, |
- directory_resource_id, |
- load_finished_callback, |
- NULL)), |
+ param.initial_origin, |
+ param.feed_load_callback, |
+ base::Owned( |
+ new GetDocumentsParams(param.start_changestamp, |
+ param.root_feed_changestamp, |
+ feed_list.release(), |
+ param.should_fetch_multiple_feeds, |
+ param.search_query, |
+ param.directory_resource_id, |
+ param.load_finished_callback, |
+ NULL)), |
start_time)); |
} |