Chromium Code Reviews| Index: chrome/browser/chromeos/gdata/gdata_download_observer.cc |
| =================================================================== |
| --- chrome/browser/chromeos/gdata/gdata_download_observer.cc (revision 129158) |
| +++ chrome/browser/chromeos/gdata/gdata_download_observer.cc (working copy) |
| @@ -88,14 +88,15 @@ |
| } |
| } |
| -void GDataDownloadObserver::Initialize(const FilePath& temp_download_path, |
| - GDataUploader* gdata_uploader, |
| - DownloadManager* download_manager) { |
| - temp_download_path_ = temp_download_path; |
| +void GDataDownloadObserver::Initialize( |
| + GDataUploader* gdata_uploader, |
| + DownloadManager* download_manager, |
| + const FilePath& gdata_tmp_download_path) { |
| gdata_uploader_ = gdata_uploader; |
|
Ben Chan
2012/03/28 05:29:36
nit: Seems like |gdata_uploader_| is not expected
achuithb
2012/03/28 09:14:04
Done.
|
| download_manager_ = download_manager; |
| if (download_manager_) |
| download_manager_->AddObserver(this); |
| + gdata_tmp_download_path_ = gdata_tmp_download_path; |
| } |
| // static |
| @@ -179,12 +180,12 @@ |
| DownloadManager::DownloadVector downloads; |
| // GData downloads are considered temporary downloads. |
| - download_manager->GetTemporaryDownloads(temp_download_path_, |
| + download_manager->GetTemporaryDownloads(gdata_tmp_download_path_, |
| &downloads); |
| for (size_t i = 0; i < downloads.size(); ++i) { |
| // Only accept downloads that have the GData meta data associated with |
| // them. Otherwise we might trip over non-GData downloads being saved to |
| - // temp_download_path_. |
| + // gdata_tmp_download_path_. |
| if (IsGDataDownload(downloads[i])) |
| OnDownloadUpdated(downloads[i]); |
| } |
| @@ -255,25 +256,26 @@ |
| if (!ShouldUpload(download)) |
| return; |
| - UploadFileInfo* upload_file_info = CreateUploadFileInfo(download); |
| - gdata_uploader_->UploadFile(upload_file_info); |
| + scoped_ptr<UploadFileInfo> upload_file_info = CreateUploadFileInfo(download); |
| + const int upload_id = gdata_uploader_->UploadFile(upload_file_info.Pass()); |
| + // TODO(achuith): Fix this. |
| // We won't know the upload ID until the after the GDataUploader::UploadFile() |
| // call. |
| download->SetExternalData(&kUploadingKey, |
| - new UploadingExternalData(gdata_uploader_, upload_file_info->upload_id)); |
| + new UploadingExternalData(gdata_uploader_, upload_id)); |
| } |
| void GDataDownloadObserver::UpdateUpload(DownloadItem* download) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| - UploadingExternalData* external_data = GetUploadingExternalData(download); |
| - if (!external_data) { |
| + UploadingExternalData* upload_data = GetUploadingExternalData(download); |
| + if (!upload_data) { |
| DVLOG(1) << "No UploadingExternalData for download " << download->GetId(); |
| return; |
| } |
| - gdata_uploader_->UpdateUpload(external_data->upload_id(), download); |
| + gdata_uploader_->UpdateUpload(upload_data->upload_id(), download); |
| } |
| bool GDataDownloadObserver::ShouldUpload(DownloadItem* download) { |
| @@ -288,9 +290,9 @@ |
| GetUploadingExternalData(download) == NULL; |
| } |
| -UploadFileInfo* GDataDownloadObserver::CreateUploadFileInfo( |
| +scoped_ptr<UploadFileInfo> GDataDownloadObserver::CreateUploadFileInfo( |
| DownloadItem* download) { |
| - UploadFileInfo* upload_file_info = new UploadFileInfo(); |
| + scoped_ptr<UploadFileInfo> upload_file_info(new UploadFileInfo()); |
| // GetFullPath will be a temporary location if we're streaming. |
| upload_file_info->file_path = download->GetFullPath(); |
| @@ -310,14 +312,15 @@ |
| upload_file_info->completion_callback = |
| base::Bind(&GDataDownloadObserver::OnUploadComplete, |
| - weak_ptr_factory_.GetWeakPtr(), download->GetId()); |
| + weak_ptr_factory_.GetWeakPtr(), |
| + download->GetId()); |
| - return upload_file_info; |
| + return upload_file_info.Pass(); |
| } |
| void GDataDownloadObserver::OnUploadComplete(int32 download_id, |
| base::PlatformFileError error, |
| - DocumentEntry* unused_entry) { |
| + UploadFileInfo* upload_file_info) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| DownloadMap::iterator iter = pending_downloads_.find(download_id); |
| if (iter == pending_downloads_.end()) |