| Index: chrome/browser/download/download_test_observer.cc
|
| ===================================================================
|
| --- chrome/browser/download/download_test_observer.cc (revision 150095)
|
| +++ chrome/browser/download/download_test_observer.cc (working copy)
|
| @@ -85,15 +85,17 @@
|
| wait_count_);
|
| }
|
|
|
| -void DownloadTestObserver::OnDownloadDestroyed(DownloadItem* download) {
|
| +void DownloadTestObserver::OnDownloadUpdated(DownloadItem* download) {
|
| + // The REMOVING state indicates that the download is being destroyed.
|
| // Stop observing. Do not do anything with it, as it is about to be gone.
|
| - DownloadSet::iterator it = downloads_observed_.find(download);
|
| - ASSERT_TRUE(it != downloads_observed_.end());
|
| - downloads_observed_.erase(it);
|
| - download->RemoveObserver(this);
|
| -}
|
| + if (download->GetState() == DownloadItem::REMOVING) {
|
| + DownloadSet::iterator it = downloads_observed_.find(download);
|
| + ASSERT_TRUE(it != downloads_observed_.end());
|
| + downloads_observed_.erase(it);
|
| + download->RemoveObserver(this);
|
| + return;
|
| + }
|
|
|
| -void DownloadTestObserver::OnDownloadUpdated(DownloadItem* download) {
|
| // Real UI code gets the user's response after returning from the observer.
|
| if (download->GetSafetyState() == DownloadItem::DANGEROUS &&
|
| !ContainsKey(dangerous_downloads_seen_, download->GetId())) {
|
| @@ -266,15 +268,17 @@
|
| CheckDownloadsInProgress(true);
|
| }
|
|
|
| -void DownloadTestFlushObserver::OnDownloadDestroyed(DownloadItem* download) {
|
| +void DownloadTestFlushObserver::OnDownloadUpdated(DownloadItem* download) {
|
| + // The REMOVING state indicates that the download is being destroyed.
|
| // Stop observing. Do not do anything with it, as it is about to be gone.
|
| - DownloadSet::iterator it = downloads_observed_.find(download);
|
| - ASSERT_TRUE(it != downloads_observed_.end());
|
| - downloads_observed_.erase(it);
|
| - download->RemoveObserver(this);
|
| -}
|
| + if (download->GetState() == DownloadItem::REMOVING) {
|
| + DownloadSet::iterator it = downloads_observed_.find(download);
|
| + ASSERT_TRUE(it != downloads_observed_.end());
|
| + downloads_observed_.erase(it);
|
| + download->RemoveObserver(this);
|
| + return;
|
| + }
|
|
|
| -void DownloadTestFlushObserver::OnDownloadUpdated(DownloadItem* download) {
|
| // No change in DownloadItem set on manager.
|
| CheckDownloadsInProgress(false);
|
| }
|
|
|