| 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));
|
| }
|
|
|
|
|