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 5dc5aa17b59f3220bc75a47090b8335bd226c7f9..08b163d32be5e9d454e59d1227a04c4afda6faca 100644 |
--- a/content/browser/download/download_manager_impl.cc |
+++ b/content/browser/download/download_manager_impl.cc |
@@ -389,9 +389,11 @@ DownloadItem* DownloadManagerImpl::StartDownload( |
} else { |
DownloadMap::iterator item_iterator = downloads_.find(id.local()); |
// Trying to resume an interrupted download. |
- if (item_iterator == downloads_.end()) { |
+ if (item_iterator == downloads_.end() || |
+ item_iterator->second->IsCancelled()) { |
// If the download is no longer known to the DownloadManager, then it was |
- // removed after it was resumed. Ignore. |
+ // removed after it was resumed. Ignore. If the download is cancelled |
+ // while resuming, then also ignore the request. |
info->request_handle.CancelRequest(); |
return NULL; |
} |