| Index: chrome/browser/chromeos/drive/sync_client.cc
|
| diff --git a/chrome/browser/chromeos/drive/sync_client.cc b/chrome/browser/chromeos/drive/sync_client.cc
|
| index 489769c5f5706040dcf90056fa21cff9d1f33d87..f76b3b21aec7cde4c1ad54aed29e56fb55ffbd33 100644
|
| --- a/chrome/browser/chromeos/drive/sync_client.cc
|
| +++ b/chrome/browser/chromeos/drive/sync_client.cc
|
| @@ -127,6 +127,12 @@ void CheckExistingPinnedFiles(ResourceMetadata* metadata,
|
| DCHECK(!it->HasError());
|
| }
|
|
|
| +// Runs the task and returns a dummy cancel closure.
|
| +base::Closure RunTaskAndReturnDummyCancelClosure(const base::Closure& task) {
|
| + task.Run();
|
| + return base::Closure();
|
| +}
|
| +
|
| } // namespace
|
|
|
| SyncClient::SyncTask::SyncTask() : state(PENDING), should_run_again(false) {}
|
| @@ -235,8 +241,7 @@ void SyncClient::AddFetchTaskInternal(const std::string& local_id,
|
| base::Unretained(download_operation_.get()),
|
| local_id,
|
| ClientContext(BACKGROUND),
|
| - base::Bind(&SyncClient::OnGetFileContentInitialized,
|
| - weak_ptr_factory_.GetWeakPtr()),
|
| + GetFileContentInitializedCallback(),
|
| google_apis::GetContentCallback(),
|
| base::Bind(&SyncClient::OnFetchFileComplete,
|
| weak_ptr_factory_.GetWeakPtr(),
|
| @@ -249,13 +254,14 @@ void SyncClient::AddUpdateTaskInternal(const ClientContext& context,
|
| const base::TimeDelta& delay) {
|
| SyncTask task;
|
| task.task = base::Bind(
|
| - &EntryUpdatePerformer::UpdateEntry,
|
| - base::Unretained(entry_update_performer_.get()),
|
| - local_id,
|
| - context,
|
| - base::Bind(&SyncClient::OnUpdateComplete,
|
| - weak_ptr_factory_.GetWeakPtr(),
|
| - local_id));
|
| + &RunTaskAndReturnDummyCancelClosure,
|
| + base::Bind(&EntryUpdatePerformer::UpdateEntry,
|
| + base::Unretained(entry_update_performer_.get()),
|
| + local_id,
|
| + context,
|
| + base::Bind(&SyncClient::OnUpdateComplete,
|
| + weak_ptr_factory_.GetWeakPtr(),
|
| + local_id)));
|
| AddTask(SyncTasks::key_type(UPDATE, local_id), task, delay);
|
| }
|
|
|
| @@ -296,7 +302,7 @@ void SyncClient::StartTask(const SyncTasks::key_type& key) {
|
| switch (task->state) {
|
| case PENDING:
|
| task->state = RUNNING;
|
| - task->task.Run();
|
| + task->cancel_closure = task->task.Run();
|
| break;
|
| case RUNNING: // Do nothing.
|
| break;
|
| @@ -330,23 +336,6 @@ void SyncClient::AddFetchTasks(const std::vector<std::string>* local_ids) {
|
| AddFetchTask((*local_ids)[i]);
|
| }
|
|
|
| -void SyncClient::OnGetFileContentInitialized(
|
| - FileError error,
|
| - scoped_ptr<ResourceEntry> entry,
|
| - const base::FilePath& local_cache_file_path,
|
| - const base::Closure& cancel_download_closure) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| -
|
| - if (error != FILE_ERROR_OK)
|
| - return;
|
| -
|
| - const SyncTasks::key_type key(FETCH, entry->local_id());
|
| - SyncTasks::iterator it = tasks_.find(key);
|
| - DCHECK(it != tasks_.end());
|
| -
|
| - it->second.cancel_closure = cancel_download_closure;
|
| -}
|
| -
|
| bool SyncClient::OnTaskComplete(SyncType type, const std::string& local_id) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
|
|
|
|