Commit 63bcb55f authored by hidehiko@chromium.org's avatar hidehiko@chromium.org

Use "Files: list" for full fetch.

According to some investigation, "Files: list" should be faster than
"Changes: list". We can use this because we extract change list id from
"About: get" API.

BUG=287602
TEST=Ran unit_tests and tested manually.

WIP

Review URL: https://chromiumcodereview.appspot.com/23958006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@222016 0039d316-1c4b-4281-b951-d872f2087c98
parent 9ac667ee
...@@ -58,12 +58,12 @@ class FullFeedFetcher : public ChangeListLoader::FeedFetcher { ...@@ -58,12 +58,12 @@ class FullFeedFetcher : public ChangeListLoader::FeedFetcher {
// This is full resource list fetch. // This is full resource list fetch.
scheduler_->GetAllResourceList( scheduler_->GetAllResourceList(
base::Bind(&FullFeedFetcher::OnChangeListFetched, base::Bind(&FullFeedFetcher::OnFileListFetched,
weak_ptr_factory_.GetWeakPtr(), callback)); weak_ptr_factory_.GetWeakPtr(), callback));
} }
private: private:
void OnChangeListFetched( void OnFileListFetched(
const FeedFetcherCallback& callback, const FeedFetcherCallback& callback,
google_apis::GDataErrorCode status, google_apis::GDataErrorCode status,
scoped_ptr<google_apis::ResourceList> resource_list) { scoped_ptr<google_apis::ResourceList> resource_list) {
...@@ -89,9 +89,9 @@ class FullFeedFetcher : public ChangeListLoader::FeedFetcher { ...@@ -89,9 +89,9 @@ class FullFeedFetcher : public ChangeListLoader::FeedFetcher {
GURL next_url; GURL next_url;
if (resource_list->GetNextFeedURL(&next_url) && !next_url.is_empty()) { if (resource_list->GetNextFeedURL(&next_url) && !next_url.is_empty()) {
// There is the remaining result so fetch it. // There is the remaining result so fetch it.
scheduler_->GetRemainingChangeList( scheduler_->GetRemainingFileList(
next_url, next_url,
base::Bind(&FullFeedFetcher::OnChangeListFetched, base::Bind(&FullFeedFetcher::OnFileListFetched,
weak_ptr_factory_.GetWeakPtr(), callback)); weak_ptr_factory_.GetWeakPtr(), callback));
return; return;
} }
......
...@@ -319,15 +319,12 @@ CancelCallback DriveAPIService::GetAllResourceList( ...@@ -319,15 +319,12 @@ CancelCallback DriveAPIService::GetAllResourceList(
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
DCHECK(!callback.is_null()); DCHECK(!callback.is_null());
// The simplest way to fetch the all resources list looks files.list method, FilesListRequest* request = new FilesListRequest(
// but it seems impossible to know the returned list's changestamp.
// Thus, instead, we use changes.list method with includeDeleted=false here.
// The returned list should contain only resources currently existing.
ChangesListRequest* request = new ChangesListRequest(
sender_.get(), url_generator_, sender_.get(), url_generator_,
base::Bind(&ConvertChangeListToResourceListOnBlockingPoolAndRun, base::Bind(&ConvertFileListToResourceListOnBlockingPoolAndRun,
blocking_task_runner_, callback)); blocking_task_runner_, callback));
request->set_include_deleted(false); request->set_max_results(kMaxNumFilesResourcePerRequest);
request->set_q("trashed = false"); // Exclude trashed files.
return sender_->StartRequestWithRetry(request); return sender_->StartRequestWithRetry(request);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment