Chromium Code Reviews| Index: content/browser/download/download_manager_impl.cc |
| diff --git a/content/browser/download/download_manager_impl.cc b/content/browser/download/download_manager_impl.cc |
| index 9bdb48aa7bfbe2382d1e3b34056dbf0f6c79d308..6b18616064bdd43b0cfd8c61eb98e17207abd395 100644 |
| --- a/content/browser/download/download_manager_impl.cc |
| +++ b/content/browser/download/download_manager_impl.cc |
| @@ -444,11 +444,18 @@ DownloadItem* DownloadManagerImpl::CreateSavePackageDownloadItem( |
| const FilePath& main_file_path, |
| const GURL& page_url, |
| bool is_otr, |
| + const std::string& mime_type, |
| DownloadItem::Observer* observer) { |
| net::BoundNetLog bound_net_log = |
| net::BoundNetLog::Make(net_log_, net::NetLog::SOURCE_DOWNLOAD); |
| DownloadItem* download = new DownloadItemImpl( |
| - this, main_file_path, page_url, is_otr, GetNextId(), bound_net_log); |
| + this, |
| + main_file_path, |
| + page_url, |
| + is_otr, |
| + GetNextId(), |
| + mime_type, |
| + bound_net_log); |
| download->AddObserver(observer); |
| @@ -618,6 +625,16 @@ bool DownloadManagerImpl::IsDownloadReadyForCompletion(DownloadItem* download) { |
| return true; |
| } |
| +// When SavePackage downloads MHTML to GData (see |
| +// SavePackageFilePickerChromeOS), GData calls MaybeCompleteDownload() like it |
| +// does for non-SavePackage downloads, but SavePackage downloads never satisfy |
| +// IsDownloadReadyForCompletion(). GDataDownloadObserver manually calls |
| +// DownloadItem::UpdateObservers() when the upload completes so that SavePackage |
| +// notices that the upload has completed and runs its normal Finish() pathway. |
| +// MaybeCompleteDownload() is never the mechanism by which SavePackage completes |
| +// downloads. SavePackage always uses its own Finish() to mark downloads |
| +// complete. |
|
Randy Smith (Not in Mondays)
2012/04/27 18:24:04
Is there a way to do this via callback so that we
benjhayden
2012/04/28 19:09:03
SavePackage could pass base::Bind(&SavePackage::Ma
|
| + |
| void DownloadManagerImpl::MaybeCompleteDownload(DownloadItem* download) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| VLOG(20) << __FUNCTION__ << "()" << " download = " |