Index: chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java |
index 6335d3f50a38e9a4e0c582956c82a2d79af5484d..0378313903b0f6879d988f36d56d026f27bcbd90 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java |
@@ -1120,6 +1120,7 @@ public class DownloadManagerService extends BroadcastReceiver implements |
boolean isNotificationDismissed) { |
nativeCancelDownload(getNativeDownloadManagerService(), downloadGuid, isOffTheRecord, |
isNotificationDismissed); |
+ removeDownloadProgress(downloadGuid); |
recordDownloadFinishedUMA(DOWNLOAD_STATUS_CANCELLED, downloadGuid, 0); |
} |
@@ -1149,6 +1150,7 @@ public class DownloadManagerService extends BroadcastReceiver implements |
*/ |
public void removeDownload(String downloadGuid, boolean isOffTheRecord) { |
nativeRemoveDownload(getNativeDownloadManagerService(), downloadGuid, isOffTheRecord); |
+ removeDownloadProgress(downloadGuid); |
} |
/** |
@@ -1166,7 +1168,7 @@ public class DownloadManagerService extends BroadcastReceiver implements |
void onResumptionFailed(String downloadGuid) { |
mDownloadNotifier.notifyDownloadFailed( |
new DownloadInfo.Builder().setDownloadGuid(downloadGuid).build()); |
- mDownloadProgressMap.remove(downloadGuid); |
+ removeDownloadProgress(downloadGuid); |
recordDownloadResumption(UMA_DOWNLOAD_RESUMPTION_FAILED); |
recordDownloadFinishedUMA(DOWNLOAD_STATUS_FAILED, downloadGuid, 0); |
} |
@@ -1337,6 +1339,15 @@ public class DownloadManagerService extends BroadcastReceiver implements |
stopListenToConnectionChangeIfNotNeeded(); |
} |
+ /** |
+ * Helper method to remove a download from |mDownloadProgressMap|. |
+ * @param guid Id of the download item. |
+ */ |
+ private void removeDownloadProgress(String guid) { |
+ mDownloadProgressMap.remove(guid); |
+ removeAutoResumableDownload(guid); |
+ } |
+ |
@Override |
public void onConnectionTypeChanged(int connectionType) { |
if (mAutoResumableDownloadIds.isEmpty()) return; |