Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(601)

Side by Side Diff: chrome/browser/chromeos/gdata/drive_download_observer.cc

Issue 10913015: Reland DownloadManager::GetAllDownloads actually does now (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/gdata/drive_download_observer.h" 5 #include "chrome/browser/chromeos/gdata/drive_download_observer.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 DownloadManager* download_manager) { 344 DownloadManager* download_manager) {
345 download_manager->RemoveObserver(this); 345 download_manager->RemoveObserver(this);
346 download_manager_ = NULL; 346 download_manager_ = NULL;
347 } 347 }
348 348
349 void DriveDownloadObserver::ModelChanged(DownloadManager* download_manager) { 349 void DriveDownloadObserver::ModelChanged(DownloadManager* download_manager) {
350 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 350 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
351 351
352 DownloadManager::DownloadVector downloads; 352 DownloadManager::DownloadVector downloads;
353 // Drive downloads are considered temporary downloads. 353 // Drive downloads are considered temporary downloads.
354 download_manager->GetTemporaryDownloads(drive_tmp_download_path_, 354 download_manager->GetAllDownloads(&downloads);
355 &downloads);
356 for (size_t i = 0; i < downloads.size(); ++i) { 355 for (size_t i = 0; i < downloads.size(); ++i) {
357 // Only accept downloads that have the Drive meta data associated with 356 // Only accept downloads that have the Drive meta data associated with
358 // them. Otherwise we might trip over non-Drive downloads being saved to 357 // them. Otherwise we might trip over non-Drive downloads being saved to
359 // drive_tmp_download_path_. 358 // drive_tmp_download_path_.
360 if (IsDriveDownload(downloads[i])) 359 if (downloads[i]->IsTemporary() &&
360 (downloads[i]->GetTargetFilePath().DirName() ==
361 drive_tmp_download_path_) &&
362 IsDriveDownload(downloads[i]))
361 OnDownloadUpdated(downloads[i]); 363 OnDownloadUpdated(downloads[i]);
362 } 364 }
363 } 365 }
364 366
365 void DriveDownloadObserver::OnDownloadUpdated(DownloadItem* download) { 367 void DriveDownloadObserver::OnDownloadUpdated(DownloadItem* download) {
366 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 368 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
367 369
368 const DownloadItem::DownloadState state = download->GetState(); 370 const DownloadItem::DownloadState state = download->GetState();
369 switch (state) { 371 switch (state) {
370 case DownloadItem::IN_PROGRESS: 372 case DownloadItem::IN_PROGRESS:
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 return; 451 return;
450 } 452 }
451 453
452 drive_uploader_->UpdateUpload(upload_data->upload_id(), download); 454 drive_uploader_->UpdateUpload(upload_data->upload_id(), download);
453 } 455 }
454 456
455 bool DriveDownloadObserver::ShouldUpload(DownloadItem* download) { 457 bool DriveDownloadObserver::ShouldUpload(DownloadItem* download) {
456 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 458 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
457 459
458 // Upload if the item is in pending_downloads_, 460 // Upload if the item is in pending_downloads_,
461 // has a filename,
459 // is complete or large enough to stream, and, 462 // is complete or large enough to stream, and,
460 // is not already being uploaded. 463 // is not already being uploaded.
461 return (pending_downloads_.count(download->GetId()) != 0) && 464 return (pending_downloads_.count(download->GetId()) != 0) &&
465 !download->GetFullPath().empty() &&
462 (download->AllDataSaved() || 466 (download->AllDataSaved() ||
463 download->GetReceivedBytes() > kStreamingFileSize) && 467 download->GetReceivedBytes() > kStreamingFileSize) &&
464 (GetUploadingUserData(download) == NULL); 468 (GetUploadingUserData(download) == NULL);
465 } 469 }
466 470
467 void DriveDownloadObserver::CreateUploadFileInfo(DownloadItem* download) { 471 void DriveDownloadObserver::CreateUploadFileInfo(DownloadItem* download) {
468 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 472 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
469 473
470 scoped_ptr<UploadFileInfo> upload_file_info(new UploadFileInfo()); 474 scoped_ptr<UploadFileInfo> upload_file_info(new UploadFileInfo());
471 475
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 file_system_->AddUploadedFile(UPLOAD_NEW_FILE, 669 file_system_->AddUploadedFile(UPLOAD_NEW_FILE,
666 upload_data->virtual_dir_path(), 670 upload_data->virtual_dir_path(),
667 entry.Pass(), 671 entry.Pass(),
668 download->GetTargetFilePath(), 672 download->GetTargetFilePath(),
669 DriveCache::FILE_OPERATION_MOVE, 673 DriveCache::FILE_OPERATION_MOVE,
670 base::Bind(&base::DoNothing)); 674 base::Bind(&base::DoNothing));
671 } 675 }
672 } 676 }
673 677
674 } // namespace gdata 678 } // namespace gdata
OLDNEW
« no previous file with comments | « chrome/browser/browsing_data/browsing_data_remover_browsertest.cc ('k') | chrome/browser/download/download_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698