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

Unified Diff: content/browser/download/save_package.cc

Issue 10263019: DownloadManagerDelegate::ShouldCompleteDownload(callback) (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: merge Created 8 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/download/download_manager_impl_unittest.cc ('k') | content/public/browser/download_item.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/download/save_package.cc
diff --git a/content/browser/download/save_package.cc b/content/browser/download/save_package.cc
index f2f782c38be9c6de417c73323b8115297d4365bf..ea06d960a9080cfae1fd09cf54a6caebcfa9837e 100644
--- a/content/browser/download/save_package.cc
+++ b/content/browser/download/save_package.cc
@@ -337,11 +337,9 @@ void SavePackage::OnMHTMLGenerated(const FilePath& path, int64 size) {
// GDataDownloadObserver::ShouldUpload() to return true.
// ShouldCompleteDownload() may depend on the gdata uploader to finish.
download_->OnAllDataSaved(size, DownloadItem::kEmptyFileHash);
- // GDataDownloadObserver is waiting for the upload to complete. When that
- // happens, it will call download_->MaybeCompleteDownload(), which will call
- // through our OnDownloadUpdated() allowing us to Finish().
- // OnDownloadUpdated() may have been called in OnAllDataSaved(), so |this| may
- // be deleted at this point.
+ if (download_manager_->delegate()->ShouldCompleteDownload(
+ download_, base::Bind(&SavePackage::Finish, this)))
+ Finish();
}
// On POSIX, the length of |pure_file_name| + |file_name_ext| is further
@@ -1358,20 +1356,6 @@ void SavePackage::OnDownloadUpdated(DownloadItem* download) {
if (download_->GetState() == DownloadItem::REMOVING) {
StopObservation();
}
-
- // MHTML saves may need to wait for GData to finish uploading.
- if ((save_type_ == content::SAVE_PAGE_TYPE_AS_MHTML) &&
- download_->AllDataSaved() &&
- !download_->IsComplete() &&
- !mhtml_finishing_ &&
- download_manager_->delegate()->ShouldCompleteDownload(download_)) {
- // Post a task to avoid re-entering OnDownloadUpdated. Set a flag to
- // prevent double-calling Finish() in case another OnDownloadUpdated happens
- // before Finish() runs.
- mhtml_finishing_ = true;
- BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
- base::Bind(&SavePackage::Finish, this));
- }
}
void SavePackage::FinalizeDownloadEntry() {
« no previous file with comments | « content/browser/download/download_manager_impl_unittest.cc ('k') | content/public/browser/download_item.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698