| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/drive/file_system/download_operation.h" | 5 #include "chrome/browser/chromeos/drive/file_system/download_operation.h" |
| 6 | 6 |
| 7 #include "base/callback_helpers.h" | 7 #include "base/callback_helpers.h" |
| 8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
| 9 #include "base/files/file_util.h" | 9 #include "base/files/file_util.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 353 | 353 |
| 354 DownloadOperation::~DownloadOperation() { | 354 DownloadOperation::~DownloadOperation() { |
| 355 } | 355 } |
| 356 | 356 |
| 357 base::Closure DownloadOperation::EnsureFileDownloadedByLocalId( | 357 base::Closure DownloadOperation::EnsureFileDownloadedByLocalId( |
| 358 const std::string& local_id, | 358 const std::string& local_id, |
| 359 const ClientContext& context, | 359 const ClientContext& context, |
| 360 const GetFileContentInitializedCallback& initialized_callback, | 360 const GetFileContentInitializedCallback& initialized_callback, |
| 361 const google_apis::GetContentCallback& get_content_callback, | 361 const google_apis::GetContentCallback& get_content_callback, |
| 362 const GetFileCallback& completion_callback) { | 362 const GetFileCallback& completion_callback) { |
| 363 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 363 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 364 DCHECK(!completion_callback.is_null()); | 364 DCHECK(!completion_callback.is_null()); |
| 365 | 365 |
| 366 CheckPreconditionForEnsureFileDownloadedParams params; | 366 CheckPreconditionForEnsureFileDownloadedParams params; |
| 367 params.metadata = metadata_; | 367 params.metadata = metadata_; |
| 368 params.cache = cache_; | 368 params.cache = cache_; |
| 369 params.temporary_file_directory = temporary_file_directory_; | 369 params.temporary_file_directory = temporary_file_directory_; |
| 370 base::FilePath* drive_file_path = new base::FilePath; | 370 base::FilePath* drive_file_path = new base::FilePath; |
| 371 base::FilePath* cache_file_path = new base::FilePath; | 371 base::FilePath* cache_file_path = new base::FilePath; |
| 372 base::FilePath* temp_download_file_path = new base::FilePath; | 372 base::FilePath* temp_download_file_path = new base::FilePath; |
| 373 ResourceEntry* entry = new ResourceEntry; | 373 ResourceEntry* entry = new ResourceEntry; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 394 base::Owned(temp_download_file_path))); | 394 base::Owned(temp_download_file_path))); |
| 395 return cancel_closure; | 395 return cancel_closure; |
| 396 } | 396 } |
| 397 | 397 |
| 398 base::Closure DownloadOperation::EnsureFileDownloadedByPath( | 398 base::Closure DownloadOperation::EnsureFileDownloadedByPath( |
| 399 const base::FilePath& file_path, | 399 const base::FilePath& file_path, |
| 400 const ClientContext& context, | 400 const ClientContext& context, |
| 401 const GetFileContentInitializedCallback& initialized_callback, | 401 const GetFileContentInitializedCallback& initialized_callback, |
| 402 const google_apis::GetContentCallback& get_content_callback, | 402 const google_apis::GetContentCallback& get_content_callback, |
| 403 const GetFileCallback& completion_callback) { | 403 const GetFileCallback& completion_callback) { |
| 404 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 404 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 405 DCHECK(!completion_callback.is_null()); | 405 DCHECK(!completion_callback.is_null()); |
| 406 | 406 |
| 407 CheckPreconditionForEnsureFileDownloadedParams params; | 407 CheckPreconditionForEnsureFileDownloadedParams params; |
| 408 params.metadata = metadata_; | 408 params.metadata = metadata_; |
| 409 params.cache = cache_; | 409 params.cache = cache_; |
| 410 params.temporary_file_directory = temporary_file_directory_; | 410 params.temporary_file_directory = temporary_file_directory_; |
| 411 base::FilePath* drive_file_path = new base::FilePath(file_path); | 411 base::FilePath* drive_file_path = new base::FilePath(file_path); |
| 412 base::FilePath* cache_file_path = new base::FilePath; | 412 base::FilePath* cache_file_path = new base::FilePath; |
| 413 base::FilePath* temp_download_file_path = new base::FilePath; | 413 base::FilePath* temp_download_file_path = new base::FilePath; |
| 414 ResourceEntry* entry = new ResourceEntry; | 414 ResourceEntry* entry = new ResourceEntry; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 435 return cancel_closure; | 435 return cancel_closure; |
| 436 } | 436 } |
| 437 | 437 |
| 438 void DownloadOperation::EnsureFileDownloadedAfterCheckPreCondition( | 438 void DownloadOperation::EnsureFileDownloadedAfterCheckPreCondition( |
| 439 scoped_ptr<DownloadParams> params, | 439 scoped_ptr<DownloadParams> params, |
| 440 const ClientContext& context, | 440 const ClientContext& context, |
| 441 base::FilePath* drive_file_path, | 441 base::FilePath* drive_file_path, |
| 442 base::FilePath* cache_file_path, | 442 base::FilePath* cache_file_path, |
| 443 base::FilePath* temp_download_file_path, | 443 base::FilePath* temp_download_file_path, |
| 444 FileError error) { | 444 FileError error) { |
| 445 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 445 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 446 DCHECK(params); | 446 DCHECK(params); |
| 447 DCHECK(drive_file_path); | 447 DCHECK(drive_file_path); |
| 448 DCHECK(cache_file_path); | 448 DCHECK(cache_file_path); |
| 449 | 449 |
| 450 if (error != FILE_ERROR_OK) { | 450 if (error != FILE_ERROR_OK) { |
| 451 // During precondition check, an error is found. | 451 // During precondition check, an error is found. |
| 452 params->OnError(error); | 452 params->OnError(error); |
| 453 return; | 453 return; |
| 454 } | 454 } |
| 455 | 455 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 482 params_ptr->OnStartDownloading( | 482 params_ptr->OnStartDownloading( |
| 483 base::Bind(&DownloadOperation::CancelJob, | 483 base::Bind(&DownloadOperation::CancelJob, |
| 484 weak_ptr_factory_.GetWeakPtr(), id)); | 484 weak_ptr_factory_.GetWeakPtr(), id)); |
| 485 } | 485 } |
| 486 | 486 |
| 487 void DownloadOperation::EnsureFileDownloadedAfterDownloadFile( | 487 void DownloadOperation::EnsureFileDownloadedAfterDownloadFile( |
| 488 const base::FilePath& drive_file_path, | 488 const base::FilePath& drive_file_path, |
| 489 scoped_ptr<DownloadParams> params, | 489 scoped_ptr<DownloadParams> params, |
| 490 google_apis::DriveApiErrorCode gdata_error, | 490 google_apis::DriveApiErrorCode gdata_error, |
| 491 const base::FilePath& downloaded_file_path) { | 491 const base::FilePath& downloaded_file_path) { |
| 492 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 492 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 493 | 493 |
| 494 DownloadParams* params_ptr = params.get(); | 494 DownloadParams* params_ptr = params.get(); |
| 495 ResourceEntry* entry_after_update = new ResourceEntry; | 495 ResourceEntry* entry_after_update = new ResourceEntry; |
| 496 base::FilePath* cache_file_path = new base::FilePath; | 496 base::FilePath* cache_file_path = new base::FilePath; |
| 497 base::PostTaskAndReplyWithResult( | 497 base::PostTaskAndReplyWithResult( |
| 498 blocking_task_runner_.get(), | 498 blocking_task_runner_.get(), |
| 499 FROM_HERE, | 499 FROM_HERE, |
| 500 base::Bind(&UpdateLocalStateForDownloadFile, | 500 base::Bind(&UpdateLocalStateForDownloadFile, |
| 501 metadata_, | 501 metadata_, |
| 502 cache_, | 502 cache_, |
| 503 params_ptr->entry(), | 503 params_ptr->entry(), |
| 504 gdata_error, | 504 gdata_error, |
| 505 downloaded_file_path, | 505 downloaded_file_path, |
| 506 entry_after_update, | 506 entry_after_update, |
| 507 cache_file_path), | 507 cache_file_path), |
| 508 base::Bind(&DownloadOperation::EnsureFileDownloadedAfterUpdateLocalState, | 508 base::Bind(&DownloadOperation::EnsureFileDownloadedAfterUpdateLocalState, |
| 509 weak_ptr_factory_.GetWeakPtr(), | 509 weak_ptr_factory_.GetWeakPtr(), |
| 510 drive_file_path, | 510 drive_file_path, |
| 511 base::Passed(¶ms), | 511 base::Passed(¶ms), |
| 512 base::Passed(make_scoped_ptr(entry_after_update)), | 512 base::Passed(make_scoped_ptr(entry_after_update)), |
| 513 base::Owned(cache_file_path))); | 513 base::Owned(cache_file_path))); |
| 514 } | 514 } |
| 515 | 515 |
| 516 void DownloadOperation::EnsureFileDownloadedAfterUpdateLocalState( | 516 void DownloadOperation::EnsureFileDownloadedAfterUpdateLocalState( |
| 517 const base::FilePath& file_path, | 517 const base::FilePath& file_path, |
| 518 scoped_ptr<DownloadParams> params, | 518 scoped_ptr<DownloadParams> params, |
| 519 scoped_ptr<ResourceEntry> entry_after_update, | 519 scoped_ptr<ResourceEntry> entry_after_update, |
| 520 base::FilePath* cache_file_path, | 520 base::FilePath* cache_file_path, |
| 521 FileError error) { | 521 FileError error) { |
| 522 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 522 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 523 | 523 |
| 524 if (error != FILE_ERROR_OK) { | 524 if (error != FILE_ERROR_OK) { |
| 525 params->OnError(error); | 525 params->OnError(error); |
| 526 return; | 526 return; |
| 527 } | 527 } |
| 528 DCHECK(!entry_after_update->file_info().is_directory()); | 528 DCHECK(!entry_after_update->file_info().is_directory()); |
| 529 | 529 |
| 530 FileChange changed_files; | 530 FileChange changed_files; |
| 531 changed_files.Update( | 531 changed_files.Update( |
| 532 file_path, FileChange::FILE_TYPE_FILE, FileChange::ADD_OR_UPDATE); | 532 file_path, FileChange::FILE_TYPE_FILE, FileChange::ADD_OR_UPDATE); |
| 533 // Storing to cache changes the "offline available" status, hence notify. | 533 // Storing to cache changes the "offline available" status, hence notify. |
| 534 delegate_->OnFileChangedByOperation(changed_files); | 534 delegate_->OnFileChangedByOperation(changed_files); |
| 535 params->OnDownloadCompleted(*cache_file_path, entry_after_update.Pass()); | 535 params->OnDownloadCompleted(*cache_file_path, entry_after_update.Pass()); |
| 536 } | 536 } |
| 537 | 537 |
| 538 void DownloadOperation::CancelJob(JobID job_id) { | 538 void DownloadOperation::CancelJob(JobID job_id) { |
| 539 scheduler_->CancelJob(job_id); | 539 scheduler_->CancelJob(job_id); |
| 540 } | 540 } |
| 541 | 541 |
| 542 } // namespace file_system | 542 } // namespace file_system |
| 543 } // namespace drive | 543 } // namespace drive |
| OLD | NEW |