summaryrefslogtreecommitdiffstats
path: root/chrome/browser/download
diff options
context:
space:
mode:
authoravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-04 20:40:16 +0000
committeravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-04 20:40:16 +0000
commit1ded8cdc42869e312e55e7f14b6017d545b282d2 (patch)
tree5a56731622df2a27190736c899149377587cc5af /chrome/browser/download
parentf24cf43009e6c9873591fcafa60f1913b5436273 (diff)
downloadchromium_src-1ded8cdc42869e312e55e7f14b6017d545b282d2.zip
chromium_src-1ded8cdc42869e312e55e7f14b6017d545b282d2.tar.gz
chromium_src-1ded8cdc42869e312e55e7f14b6017d545b282d2.tar.bz2
Reverts r4177, reimplements a fix for bug 3417. Adding UpdateObservers to DownloadItem::Finished is wrong, as it causes a duplicate notification to fire when a download is complete.
BUG=http://crbug.com/3417 TEST=bug does not regress Review URL: http://codereview.chromium.org/464043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33848 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/download')
-rw-r--r--chrome/browser/download/download_manager.cc1
-rw-r--r--chrome/browser/download/save_package.cc3
2 files changed, 3 insertions, 1 deletions
diff --git a/chrome/browser/download/download_manager.cc b/chrome/browser/download/download_manager.cc
index 1d40bec..af7c9d5 100644
--- a/chrome/browser/download/download_manager.cc
+++ b/chrome/browser/download/download_manager.cc
@@ -242,7 +242,6 @@ void DownloadItem::Cancel(bool update_history) {
void DownloadItem::Finished(int64 size) {
state_ = COMPLETE;
UpdateSize(size);
- UpdateObservers();
StopProgressTimer();
}
diff --git a/chrome/browser/download/save_package.cc b/chrome/browser/download/save_package.cc
index e4df35a..f01ac86 100644
--- a/chrome/browser/download/save_package.cc
+++ b/chrome/browser/download/save_package.cc
@@ -651,6 +651,9 @@ void SavePackage::Finish() {
save_ids));
download_->Finished(all_save_items_count_);
+ // Notify download observers that we are complete (the call to Finished() set
+ // the state to complete but did not notify).
+ download_->UpdateObservers();
NotificationService::current()->Notify(
NotificationType::SAVE_PACKAGE_SUCCESSFULLY_FINISHED,