Index: chrome/browser/chromeos/gdata/gdata_download_observer.cc |
=================================================================== |
--- chrome/browser/chromeos/gdata/gdata_download_observer.cc (revision 129387) |
+++ chrome/browser/chromeos/gdata/gdata_download_observer.cc (working copy) |
@@ -88,14 +88,17 @@ |
} |
} |
-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) { |
+ DCHECK(gdata_uploader); |
+ DCHECK(!gdata_tmp_download_path.empty()); |
gdata_uploader_ = gdata_uploader; |
download_manager_ = download_manager; |
if (download_manager_) |
download_manager_->AddObserver(this); |
+ gdata_tmp_download_path_ = gdata_tmp_download_path; |
} |
// static |
@@ -184,12 +187,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]); |
} |
@@ -260,25 +263,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) { |
@@ -293,9 +297,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(); |
@@ -315,14 +319,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()) { |